simdeck 0.1.4 → 0.1.5

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 (807) hide show
  1. package/README.md +34 -14
  2. package/build/simdeck-bin +0 -0
  3. package/client/dist/assets/index-D2-CFde1.css +1 -0
  4. package/client/dist/assets/index-E1gIgaOR.js +9 -0
  5. package/client/dist/chrome-devtools-ui/Images/3d-center.svg +1 -0
  6. package/client/dist/chrome-devtools-ui/Images/3d-pan.svg +1 -0
  7. package/client/dist/chrome-devtools-ui/Images/3d-rotate.svg +1 -0
  8. package/client/dist/chrome-devtools-ui/Images/Images.js +296 -0
  9. package/client/dist/chrome-devtools-ui/Images/accelerometer-back.svg +1 -0
  10. package/client/dist/chrome-devtools-ui/Images/accelerometer-bottom.png +0 -0
  11. package/client/dist/chrome-devtools-ui/Images/accelerometer-front.svg +1 -0
  12. package/client/dist/chrome-devtools-ui/Images/accelerometer-left.png +0 -0
  13. package/client/dist/chrome-devtools-ui/Images/accelerometer-right.png +0 -0
  14. package/client/dist/chrome-devtools-ui/Images/accelerometer-top.png +0 -0
  15. package/client/dist/chrome-devtools-ui/Images/account-tree.svg +1 -0
  16. package/client/dist/chrome-devtools-ui/Images/align-content-center.svg +1 -0
  17. package/client/dist/chrome-devtools-ui/Images/align-content-end.svg +1 -0
  18. package/client/dist/chrome-devtools-ui/Images/align-content-space-around.svg +1 -0
  19. package/client/dist/chrome-devtools-ui/Images/align-content-space-between.svg +1 -0
  20. package/client/dist/chrome-devtools-ui/Images/align-content-space-evenly.svg +1 -0
  21. package/client/dist/chrome-devtools-ui/Images/align-content-start.svg +1 -0
  22. package/client/dist/chrome-devtools-ui/Images/align-content-stretch.svg +1 -0
  23. package/client/dist/chrome-devtools-ui/Images/align-items-baseline.svg +1 -0
  24. package/client/dist/chrome-devtools-ui/Images/align-items-center.svg +1 -0
  25. package/client/dist/chrome-devtools-ui/Images/align-items-end.svg +1 -0
  26. package/client/dist/chrome-devtools-ui/Images/align-items-start.svg +1 -0
  27. package/client/dist/chrome-devtools-ui/Images/align-items-stretch.svg +1 -0
  28. package/client/dist/chrome-devtools-ui/Images/align-self-center.svg +1 -0
  29. package/client/dist/chrome-devtools-ui/Images/align-self-end.svg +1 -0
  30. package/client/dist/chrome-devtools-ui/Images/align-self-start.svg +1 -0
  31. package/client/dist/chrome-devtools-ui/Images/align-self-stretch.svg +1 -0
  32. package/client/dist/chrome-devtools-ui/Images/animation.svg +1 -0
  33. package/client/dist/chrome-devtools-ui/Images/arrow-back.svg +1 -0
  34. package/client/dist/chrome-devtools-ui/Images/arrow-collapse.svg +1 -0
  35. package/client/dist/chrome-devtools-ui/Images/arrow-down.svg +1 -0
  36. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-dark.svg +1 -0
  37. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-light.svg +1 -0
  38. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down.svg +1 -0
  39. package/client/dist/chrome-devtools-ui/Images/arrow-forward.svg +1 -0
  40. package/client/dist/chrome-devtools-ui/Images/arrow-right-circle.svg +1 -0
  41. package/client/dist/chrome-devtools-ui/Images/arrow-up-down-circle.svg +1 -0
  42. package/client/dist/chrome-devtools-ui/Images/arrow-up-down.svg +1 -0
  43. package/client/dist/chrome-devtools-ui/Images/arrow-up.svg +1 -0
  44. package/client/dist/chrome-devtools-ui/Images/bell.svg +1 -0
  45. package/client/dist/chrome-devtools-ui/Images/bezier-curve-filled.svg +1 -0
  46. package/client/dist/chrome-devtools-ui/Images/bin.svg +1 -0
  47. package/client/dist/chrome-devtools-ui/Images/bottom-panel-close.svg +1 -0
  48. package/client/dist/chrome-devtools-ui/Images/bottom-panel-open.svg +1 -0
  49. package/client/dist/chrome-devtools-ui/Images/brackets.svg +1 -0
  50. package/client/dist/chrome-devtools-ui/Images/breakpoint-circle.svg +1 -0
  51. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed-filled.svg +1 -0
  52. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed.svg +1 -0
  53. package/client/dist/chrome-devtools-ui/Images/brush-2.svg +1 -0
  54. package/client/dist/chrome-devtools-ui/Images/brush-filled.svg +1 -0
  55. package/client/dist/chrome-devtools-ui/Images/brush.svg +1 -0
  56. package/client/dist/chrome-devtools-ui/Images/bug.svg +1 -0
  57. package/client/dist/chrome-devtools-ui/Images/bundle.svg +1 -0
  58. package/client/dist/chrome-devtools-ui/Images/button-magic.svg +1 -0
  59. package/client/dist/chrome-devtools-ui/Images/calendar-today.svg +1 -0
  60. package/client/dist/chrome-devtools-ui/Images/center-focus-weak.svg +1 -0
  61. package/client/dist/chrome-devtools-ui/Images/check-circle.svg +1 -0
  62. package/client/dist/chrome-devtools-ui/Images/check-double.svg +1 -0
  63. package/client/dist/chrome-devtools-ui/Images/checker.svg +1 -0
  64. package/client/dist/chrome-devtools-ui/Images/checkmark.svg +1 -0
  65. package/client/dist/chrome-devtools-ui/Images/chevron-double-right.svg +1 -0
  66. package/client/dist/chrome-devtools-ui/Images/chevron-down.svg +1 -0
  67. package/client/dist/chrome-devtools-ui/Images/chevron-left-dot.svg +1 -0
  68. package/client/dist/chrome-devtools-ui/Images/chevron-left.svg +1 -0
  69. package/client/dist/chrome-devtools-ui/Images/chevron-right.svg +1 -0
  70. package/client/dist/chrome-devtools-ui/Images/chevron-up.svg +1 -0
  71. package/client/dist/chrome-devtools-ui/Images/chromeLeft.avif +0 -0
  72. package/client/dist/chrome-devtools-ui/Images/chromeMiddle.avif +0 -0
  73. package/client/dist/chrome-devtools-ui/Images/chromeRight.avif +0 -0
  74. package/client/dist/chrome-devtools-ui/Images/class.svg +1 -0
  75. package/client/dist/chrome-devtools-ui/Images/clear-list.svg +1 -0
  76. package/client/dist/chrome-devtools-ui/Images/clear.svg +1 -0
  77. package/client/dist/chrome-devtools-ui/Images/cloud.svg +1 -0
  78. package/client/dist/chrome-devtools-ui/Images/code-circle.svg +1 -0
  79. package/client/dist/chrome-devtools-ui/Images/code.svg +1 -0
  80. package/client/dist/chrome-devtools-ui/Images/colon.svg +1 -0
  81. package/client/dist/chrome-devtools-ui/Images/color-picker-filled.svg +1 -0
  82. package/client/dist/chrome-devtools-ui/Images/color-picker.svg +1 -0
  83. package/client/dist/chrome-devtools-ui/Images/compress.svg +1 -0
  84. package/client/dist/chrome-devtools-ui/Images/console-conditional-breakpoint.svg +1 -0
  85. package/client/dist/chrome-devtools-ui/Images/console-logpoint.svg +1 -0
  86. package/client/dist/chrome-devtools-ui/Images/cookie.svg +1 -0
  87. package/client/dist/chrome-devtools-ui/Images/cookie_off.svg +1 -0
  88. package/client/dist/chrome-devtools-ui/Images/copy.svg +1 -0
  89. package/client/dist/chrome-devtools-ui/Images/corporate-fare.svg +1 -0
  90. package/client/dist/chrome-devtools-ui/Images/credit-card.svg +1 -0
  91. package/client/dist/chrome-devtools-ui/Images/cross-circle-filled.svg +1 -0
  92. package/client/dist/chrome-devtools-ui/Images/cross-circle.svg +1 -0
  93. package/client/dist/chrome-devtools-ui/Images/cross.svg +1 -0
  94. package/client/dist/chrome-devtools-ui/Images/cssoverview_icons_2x.avif +0 -0
  95. package/client/dist/chrome-devtools-ui/Images/custom-typography.svg +1 -0
  96. package/client/dist/chrome-devtools-ui/Images/database.svg +1 -0
  97. package/client/dist/chrome-devtools-ui/Images/deployed.svg +1 -0
  98. package/client/dist/chrome-devtools-ui/Images/device-fold.svg +1 -0
  99. package/client/dist/chrome-devtools-ui/Images/devices.svg +1 -0
  100. package/client/dist/chrome-devtools-ui/Images/devtools-thumbnail.svg +1 -0
  101. package/client/dist/chrome-devtools-ui/Images/devtools-tips.svg +1 -0
  102. package/client/dist/chrome-devtools-ui/Images/devtools.svg +1 -0
  103. package/client/dist/chrome-devtools-ui/Images/difference.svg +1 -0
  104. package/client/dist/chrome-devtools-ui/Images/dock-bottom.svg +1 -0
  105. package/client/dist/chrome-devtools-ui/Images/dock-left.svg +1 -0
  106. package/client/dist/chrome-devtools-ui/Images/dock-right.svg +1 -0
  107. package/client/dist/chrome-devtools-ui/Images/dock-window.svg +1 -0
  108. package/client/dist/chrome-devtools-ui/Images/document.svg +1 -0
  109. package/client/dist/chrome-devtools-ui/Images/dog-paw.svg +1 -0
  110. package/client/dist/chrome-devtools-ui/Images/domain.svg +1 -0
  111. package/client/dist/chrome-devtools-ui/Images/dots-horizontal.svg +1 -0
  112. package/client/dist/chrome-devtools-ui/Images/dots-vertical.svg +1 -0
  113. package/client/dist/chrome-devtools-ui/Images/download.svg +1 -0
  114. package/client/dist/chrome-devtools-ui/Images/edit.svg +1 -0
  115. package/client/dist/chrome-devtools-ui/Images/empty.svg +1 -0
  116. package/client/dist/chrome-devtools-ui/Images/errorWave.svg +1 -0
  117. package/client/dist/chrome-devtools-ui/Images/exclamation.svg +1 -0
  118. package/client/dist/chrome-devtools-ui/Images/experiment-check.svg +1 -0
  119. package/client/dist/chrome-devtools-ui/Images/experiment.svg +1 -0
  120. package/client/dist/chrome-devtools-ui/Images/extension.svg +1 -0
  121. package/client/dist/chrome-devtools-ui/Images/eye.svg +1 -0
  122. package/client/dist/chrome-devtools-ui/Images/favicon.ico +0 -0
  123. package/client/dist/chrome-devtools-ui/Images/file-document.svg +1 -0
  124. package/client/dist/chrome-devtools-ui/Images/file-fetch-xhr.svg +1 -0
  125. package/client/dist/chrome-devtools-ui/Images/file-font.svg +1 -0
  126. package/client/dist/chrome-devtools-ui/Images/file-generic.svg +1 -0
  127. package/client/dist/chrome-devtools-ui/Images/file-image.svg +1 -0
  128. package/client/dist/chrome-devtools-ui/Images/file-json.svg +1 -0
  129. package/client/dist/chrome-devtools-ui/Images/file-manifest.svg +1 -0
  130. package/client/dist/chrome-devtools-ui/Images/file-media.svg +1 -0
  131. package/client/dist/chrome-devtools-ui/Images/file-script.svg +1 -0
  132. package/client/dist/chrome-devtools-ui/Images/file-snippet.svg +1 -0
  133. package/client/dist/chrome-devtools-ui/Images/file-stylesheet.svg +1 -0
  134. package/client/dist/chrome-devtools-ui/Images/file-wasm.svg +1 -0
  135. package/client/dist/chrome-devtools-ui/Images/file-websocket.svg +1 -0
  136. package/client/dist/chrome-devtools-ui/Images/filter-clear.svg +1 -0
  137. package/client/dist/chrome-devtools-ui/Images/filter-filled.svg +1 -0
  138. package/client/dist/chrome-devtools-ui/Images/filter.svg +1 -0
  139. package/client/dist/chrome-devtools-ui/Images/flex-direction.svg +1 -0
  140. package/client/dist/chrome-devtools-ui/Images/flex-no-wrap.svg +1 -0
  141. package/client/dist/chrome-devtools-ui/Images/flex-wrap.svg +1 -0
  142. package/client/dist/chrome-devtools-ui/Images/flow.svg +1 -0
  143. package/client/dist/chrome-devtools-ui/Images/fold-more.svg +1 -0
  144. package/client/dist/chrome-devtools-ui/Images/folder.svg +1 -0
  145. package/client/dist/chrome-devtools-ui/Images/frame-crossed.svg +1 -0
  146. package/client/dist/chrome-devtools-ui/Images/frame-icon.svg +1 -0
  147. package/client/dist/chrome-devtools-ui/Images/frame.svg +1 -0
  148. package/client/dist/chrome-devtools-ui/Images/gear-filled.svg +1 -0
  149. package/client/dist/chrome-devtools-ui/Images/gear.svg +1 -0
  150. package/client/dist/chrome-devtools-ui/Images/gears.svg +1 -0
  151. package/client/dist/chrome-devtools-ui/Images/global.svg +1 -0
  152. package/client/dist/chrome-devtools-ui/Images/google.svg +1 -0
  153. package/client/dist/chrome-devtools-ui/Images/goto-filled.svg +1 -0
  154. package/client/dist/chrome-devtools-ui/Images/grid-on.svg +1 -0
  155. package/client/dist/chrome-devtools-ui/Images/group.svg +1 -0
  156. package/client/dist/chrome-devtools-ui/Images/heap-snapshot.svg +1 -0
  157. package/client/dist/chrome-devtools-ui/Images/heap-snapshots.svg +1 -0
  158. package/client/dist/chrome-devtools-ui/Images/help.svg +1 -0
  159. package/client/dist/chrome-devtools-ui/Images/history.svg +1 -0
  160. package/client/dist/chrome-devtools-ui/Images/home.svg +1 -0
  161. package/client/dist/chrome-devtools-ui/Images/hover.svg +1 -0
  162. package/client/dist/chrome-devtools-ui/Images/iframe-crossed.svg +1 -0
  163. package/client/dist/chrome-devtools-ui/Images/iframe.svg +1 -0
  164. package/client/dist/chrome-devtools-ui/Images/import.svg +1 -0
  165. package/client/dist/chrome-devtools-ui/Images/indeterminate-question-box.svg +1 -0
  166. package/client/dist/chrome-devtools-ui/Images/info-filled.svg +1 -0
  167. package/client/dist/chrome-devtools-ui/Images/info.svg +1 -0
  168. package/client/dist/chrome-devtools-ui/Images/issue-cross-filled.svg +1 -0
  169. package/client/dist/chrome-devtools-ui/Images/issue-exclamation-filled.svg +1 -0
  170. package/client/dist/chrome-devtools-ui/Images/issue-questionmark-filled.svg +1 -0
  171. package/client/dist/chrome-devtools-ui/Images/issue-text-filled.svg +1 -0
  172. package/client/dist/chrome-devtools-ui/Images/justify-content-center.svg +1 -0
  173. package/client/dist/chrome-devtools-ui/Images/justify-content-end.svg +1 -0
  174. package/client/dist/chrome-devtools-ui/Images/justify-content-space-around.svg +1 -0
  175. package/client/dist/chrome-devtools-ui/Images/justify-content-space-between.svg +1 -0
  176. package/client/dist/chrome-devtools-ui/Images/justify-content-space-evenly.svg +1 -0
  177. package/client/dist/chrome-devtools-ui/Images/justify-content-start.svg +1 -0
  178. package/client/dist/chrome-devtools-ui/Images/justify-items-center.svg +1 -0
  179. package/client/dist/chrome-devtools-ui/Images/justify-items-end.svg +1 -0
  180. package/client/dist/chrome-devtools-ui/Images/justify-items-start.svg +1 -0
  181. package/client/dist/chrome-devtools-ui/Images/justify-items-stretch.svg +1 -0
  182. package/client/dist/chrome-devtools-ui/Images/keyboard-arrow-right.svg +1 -0
  183. package/client/dist/chrome-devtools-ui/Images/keyboard-full.svg +1 -0
  184. package/client/dist/chrome-devtools-ui/Images/keyboard-pen.svg +1 -0
  185. package/client/dist/chrome-devtools-ui/Images/keyboard.svg +1 -0
  186. package/client/dist/chrome-devtools-ui/Images/label.svg +1 -0
  187. package/client/dist/chrome-devtools-ui/Images/large-arrow-right-filled.svg +1 -0
  188. package/client/dist/chrome-devtools-ui/Images/layers-filled.svg +1 -0
  189. package/client/dist/chrome-devtools-ui/Images/layers.svg +1 -0
  190. package/client/dist/chrome-devtools-ui/Images/left-panel-close.svg +1 -0
  191. package/client/dist/chrome-devtools-ui/Images/left-panel-open.svg +1 -0
  192. package/client/dist/chrome-devtools-ui/Images/lightbulb-spark.svg +1 -0
  193. package/client/dist/chrome-devtools-ui/Images/lightbulb.svg +1 -0
  194. package/client/dist/chrome-devtools-ui/Images/lighthouse_logo.svg +1 -0
  195. package/client/dist/chrome-devtools-ui/Images/list.svg +1 -0
  196. package/client/dist/chrome-devtools-ui/Images/location-on.svg +1 -0
  197. package/client/dist/chrome-devtools-ui/Images/lock.svg +1 -0
  198. package/client/dist/chrome-devtools-ui/Images/match-case.svg +1 -0
  199. package/client/dist/chrome-devtools-ui/Images/match-whole-word.svg +1 -0
  200. package/client/dist/chrome-devtools-ui/Images/memory.svg +1 -0
  201. package/client/dist/chrome-devtools-ui/Images/minus.svg +1 -0
  202. package/client/dist/chrome-devtools-ui/Images/mop.svg +1 -0
  203. package/client/dist/chrome-devtools-ui/Images/mouse.svg +1 -0
  204. package/client/dist/chrome-devtools-ui/Images/navigationControls.png +0 -0
  205. package/client/dist/chrome-devtools-ui/Images/navigationControls_2x.png +0 -0
  206. package/client/dist/chrome-devtools-ui/Images/network-settings.svg +1 -0
  207. package/client/dist/chrome-devtools-ui/Images/node-stack-icon.svg +1 -0
  208. package/client/dist/chrome-devtools-ui/Images/nodeIcon.avif +0 -0
  209. package/client/dist/chrome-devtools-ui/Images/open-externally.svg +1 -0
  210. package/client/dist/chrome-devtools-ui/Images/override.svg +1 -0
  211. package/client/dist/chrome-devtools-ui/Images/palette.svg +1 -0
  212. package/client/dist/chrome-devtools-ui/Images/pause-circle.svg +1 -0
  213. package/client/dist/chrome-devtools-ui/Images/pause.svg +1 -0
  214. package/client/dist/chrome-devtools-ui/Images/pen-spark.svg +1 -0
  215. package/client/dist/chrome-devtools-ui/Images/performance-panel-delete-annotation.svg +1 -0
  216. package/client/dist/chrome-devtools-ui/Images/performance-panel-diagram.svg +1 -0
  217. package/client/dist/chrome-devtools-ui/Images/performance-panel-entry-label.svg +1 -0
  218. package/client/dist/chrome-devtools-ui/Images/performance-panel-time-range.svg +1 -0
  219. package/client/dist/chrome-devtools-ui/Images/performance.svg +1 -0
  220. package/client/dist/chrome-devtools-ui/Images/person.svg +1 -0
  221. package/client/dist/chrome-devtools-ui/Images/photo-camera.svg +1 -0
  222. package/client/dist/chrome-devtools-ui/Images/play.svg +1 -0
  223. package/client/dist/chrome-devtools-ui/Images/plus.svg +1 -0
  224. package/client/dist/chrome-devtools-ui/Images/policy.svg +1 -0
  225. package/client/dist/chrome-devtools-ui/Images/popoverArrows.png +0 -0
  226. package/client/dist/chrome-devtools-ui/Images/popup.svg +1 -0
  227. package/client/dist/chrome-devtools-ui/Images/preview_feature_video_thumbnail.svg +1 -0
  228. package/client/dist/chrome-devtools-ui/Images/profile.svg +1 -0
  229. package/client/dist/chrome-devtools-ui/Images/psychiatry.svg +1 -0
  230. package/client/dist/chrome-devtools-ui/Images/react_native/learn-debugging-basics.jpg +0 -0
  231. package/client/dist/chrome-devtools-ui/Images/react_native/learn-native-debugging.jpg +0 -0
  232. package/client/dist/chrome-devtools-ui/Images/react_native/learn-react-native-devtools.jpg +0 -0
  233. package/client/dist/chrome-devtools-ui/Images/react_native/welcomeIcon.png +0 -0
  234. package/client/dist/chrome-devtools-ui/Images/record-start.svg +1 -0
  235. package/client/dist/chrome-devtools-ui/Images/record-stop.svg +1 -0
  236. package/client/dist/chrome-devtools-ui/Images/redo.svg +1 -0
  237. package/client/dist/chrome-devtools-ui/Images/refresh.svg +1 -0
  238. package/client/dist/chrome-devtools-ui/Images/regular-expression.svg +1 -0
  239. package/client/dist/chrome-devtools-ui/Images/replace.svg +1 -0
  240. package/client/dist/chrome-devtools-ui/Images/replay.svg +1 -0
  241. package/client/dist/chrome-devtools-ui/Images/report.svg +1 -0
  242. package/client/dist/chrome-devtools-ui/Images/resizeDiagonal.svg +1 -0
  243. package/client/dist/chrome-devtools-ui/Images/resizeHorizontal.svg +1 -0
  244. package/client/dist/chrome-devtools-ui/Images/resizeVertical.svg +1 -0
  245. package/client/dist/chrome-devtools-ui/Images/resume.svg +1 -0
  246. package/client/dist/chrome-devtools-ui/Images/review.svg +1 -0
  247. package/client/dist/chrome-devtools-ui/Images/right-panel-close.svg +1 -0
  248. package/client/dist/chrome-devtools-ui/Images/right-panel-open.svg +1 -0
  249. package/client/dist/chrome-devtools-ui/Images/scissors.svg +1 -0
  250. package/client/dist/chrome-devtools-ui/Images/screen-rotation.svg +1 -0
  251. package/client/dist/chrome-devtools-ui/Images/search.svg +1 -0
  252. package/client/dist/chrome-devtools-ui/Images/select-element.svg +1 -0
  253. package/client/dist/chrome-devtools-ui/Images/send.svg +1 -0
  254. package/client/dist/chrome-devtools-ui/Images/shadow.svg +1 -0
  255. package/client/dist/chrome-devtools-ui/Images/small-status-dot.svg +1 -0
  256. package/client/dist/chrome-devtools-ui/Images/smart-assistant.svg +1 -0
  257. package/client/dist/chrome-devtools-ui/Images/snippet.svg +1 -0
  258. package/client/dist/chrome-devtools-ui/Images/spark-info.svg +1 -0
  259. package/client/dist/chrome-devtools-ui/Images/star.svg +1 -0
  260. package/client/dist/chrome-devtools-ui/Images/step-into.svg +1 -0
  261. package/client/dist/chrome-devtools-ui/Images/step-out.svg +1 -0
  262. package/client/dist/chrome-devtools-ui/Images/step-over.svg +1 -0
  263. package/client/dist/chrome-devtools-ui/Images/step.svg +1 -0
  264. package/client/dist/chrome-devtools-ui/Images/stop.svg +1 -0
  265. package/client/dist/chrome-devtools-ui/Images/symbol.svg +1 -0
  266. package/client/dist/chrome-devtools-ui/Images/sync.svg +1 -0
  267. package/client/dist/chrome-devtools-ui/Images/table.svg +1 -0
  268. package/client/dist/chrome-devtools-ui/Images/terminal.svg +1 -0
  269. package/client/dist/chrome-devtools-ui/Images/thumb-down-filled.svg +1 -0
  270. package/client/dist/chrome-devtools-ui/Images/thumb-down.svg +1 -0
  271. package/client/dist/chrome-devtools-ui/Images/thumb-up-filled.svg +1 -0
  272. package/client/dist/chrome-devtools-ui/Images/thumb-up.svg +1 -0
  273. package/client/dist/chrome-devtools-ui/Images/tonality.svg +1 -0
  274. package/client/dist/chrome-devtools-ui/Images/toolbarResizerVertical.png +0 -0
  275. package/client/dist/chrome-devtools-ui/Images/top-panel-close.svg +1 -0
  276. package/client/dist/chrome-devtools-ui/Images/top-panel-open.svg +1 -0
  277. package/client/dist/chrome-devtools-ui/Images/touch-app.svg +1 -0
  278. package/client/dist/chrome-devtools-ui/Images/touchCursor.png +0 -0
  279. package/client/dist/chrome-devtools-ui/Images/touchCursor_2x.png +0 -0
  280. package/client/dist/chrome-devtools-ui/Images/triangle-bottom-right.svg +1 -0
  281. package/client/dist/chrome-devtools-ui/Images/triangle-down.svg +1 -0
  282. package/client/dist/chrome-devtools-ui/Images/triangle-left.svg +1 -0
  283. package/client/dist/chrome-devtools-ui/Images/triangle-right.svg +1 -0
  284. package/client/dist/chrome-devtools-ui/Images/triangle-up.svg +1 -0
  285. package/client/dist/chrome-devtools-ui/Images/tune.svg +1 -0
  286. package/client/dist/chrome-devtools-ui/Images/undo.svg +1 -0
  287. package/client/dist/chrome-devtools-ui/Images/warning-filled.svg +1 -0
  288. package/client/dist/chrome-devtools-ui/Images/warning.svg +1 -0
  289. package/client/dist/chrome-devtools-ui/Images/watch.svg +1 -0
  290. package/client/dist/chrome-devtools-ui/Images/whatsnew.svg +1 -0
  291. package/client/dist/chrome-devtools-ui/Images/width.svg +1 -0
  292. package/client/dist/chrome-devtools-ui/Images/zoom-in.svg +1 -0
  293. package/client/dist/chrome-devtools-ui/Tests.js +1700 -0
  294. package/client/dist/chrome-devtools-ui/application_tokens.css +407 -0
  295. package/client/dist/chrome-devtools-ui/core/common/common.js +1 -0
  296. package/client/dist/chrome-devtools-ui/core/dom_extension/dom_extension.js +1 -0
  297. package/client/dist/chrome-devtools-ui/core/host/host.js +1 -0
  298. package/client/dist/chrome-devtools-ui/core/i18n/i18n.js +1 -0
  299. package/client/dist/chrome-devtools-ui/core/i18n/locales/en-US.json +1 -0
  300. package/client/dist/chrome-devtools-ui/core/i18n/locales/zh.json +1 -0
  301. package/client/dist/chrome-devtools-ui/core/platform/platform.js +1 -0
  302. package/client/dist/chrome-devtools-ui/core/protocol_client/protocol_client.js +1 -0
  303. package/client/dist/chrome-devtools-ui/core/rn_experiments/rn_experiments.js +1 -0
  304. package/client/dist/chrome-devtools-ui/core/root/root.js +1 -0
  305. package/client/dist/chrome-devtools-ui/core/sdk/sdk-meta.js +1 -0
  306. package/client/dist/chrome-devtools-ui/core/sdk/sdk.js +1 -0
  307. package/client/dist/chrome-devtools-ui/design_system_tokens.css +782 -0
  308. package/client/dist/chrome-devtools-ui/device_mode_emulation_frame.html +24 -0
  309. package/client/dist/chrome-devtools-ui/devtools_app.html +24 -0
  310. package/client/dist/chrome-devtools-ui/devtools_compatibility.js +1741 -0
  311. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
  312. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
  313. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
  314. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
  315. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
  316. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
  317. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
  318. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
  319. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
  320. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
  321. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
  322. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
  323. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
  324. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
  325. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
  326. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
  327. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
  328. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
  329. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
  330. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
  331. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
  332. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
  333. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
  334. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
  335. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
  336. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
  337. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
  338. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
  339. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
  340. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
  341. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
  342. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
  343. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-landscape.avif +0 -0
  344. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-portrait.avif +0 -0
  345. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
  346. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
  347. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
  348. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
  349. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
  350. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
  351. package/client/dist/chrome-devtools-ui/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
  352. package/client/dist/chrome-devtools-ui/entrypoints/devtools_app/devtools_app.js +1 -0
  353. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/FormatterActions.js +1 -0
  354. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
  355. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker.js +1 -0
  356. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  357. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  358. package/client/dist/chrome-devtools-ui/entrypoints/inspector/inspector.js +1 -0
  359. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main-meta.js +1 -0
  360. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main.js +1 -0
  361. package/client/dist/chrome-devtools-ui/entrypoints/js_app/js_app.js +1 -0
  362. package/client/dist/chrome-devtools-ui/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
  363. package/client/dist/chrome-devtools-ui/entrypoints/main/main-meta.js +1 -0
  364. package/client/dist/chrome-devtools-ui/entrypoints/main/main.js +48 -0
  365. package/client/dist/chrome-devtools-ui/entrypoints/ndb_app/ndb_app.js +1 -0
  366. package/client/dist/chrome-devtools-ui/entrypoints/node_app/node_app.js +1 -0
  367. package/client/dist/chrome-devtools-ui/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.js +1 -0
  368. package/client/dist/chrome-devtools-ui/entrypoints/rn_fusebox/rn_fusebox.js +24 -0
  369. package/client/dist/chrome-devtools-ui/entrypoints/shell/shell.js +1 -0
  370. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  371. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
  372. package/client/dist/chrome-devtools-ui/entrypoints/worker_app/worker_app.js +1 -0
  373. package/client/dist/chrome-devtools-ui/inspector.html +24 -0
  374. package/client/dist/chrome-devtools-ui/integration_test_runner.html +40 -0
  375. package/client/dist/chrome-devtools-ui/js_app.html +24 -0
  376. package/client/dist/chrome-devtools-ui/legacy_test_runner/legacy_test_runner.js +13 -0
  377. package/client/dist/chrome-devtools-ui/legacy_test_runner/test_runner/test_runner.js +1 -0
  378. package/client/dist/chrome-devtools-ui/models/ai_assistance/ai_assistance.js +1 -0
  379. package/client/dist/chrome-devtools-ui/models/autofill_manager/autofill_manager.js +1 -0
  380. package/client/dist/chrome-devtools-ui/models/bindings/bindings.js +1 -0
  381. package/client/dist/chrome-devtools-ui/models/breakpoints/breakpoints.js +1 -0
  382. package/client/dist/chrome-devtools-ui/models/cpu_profile/cpu_profile.js +1 -0
  383. package/client/dist/chrome-devtools-ui/models/crux-manager/crux-manager.js +1 -0
  384. package/client/dist/chrome-devtools-ui/models/emulation/emulation.js +1 -0
  385. package/client/dist/chrome-devtools-ui/models/extensions/extensions.js +1 -0
  386. package/client/dist/chrome-devtools-ui/models/formatter/formatter.js +1 -0
  387. package/client/dist/chrome-devtools-ui/models/har/har.js +1 -0
  388. package/client/dist/chrome-devtools-ui/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
  389. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  390. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  391. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  392. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  393. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  394. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  395. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  396. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  397. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  398. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  399. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  400. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  401. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  402. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  403. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  404. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  405. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  406. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  407. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  408. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  409. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  410. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  411. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  412. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  413. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  414. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  415. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  416. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  417. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  418. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  419. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  420. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  421. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  422. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  423. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  424. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  425. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  426. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  427. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  428. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  429. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  430. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  431. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  432. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  433. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  434. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  435. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  436. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  437. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  438. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  439. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  440. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  441. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  442. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  443. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  444. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  445. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  446. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  447. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  448. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  449. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  450. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  451. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  452. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  453. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  454. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  455. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  456. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  457. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  458. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  459. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  460. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  461. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  462. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  463. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  464. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  465. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  466. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/deprecation.md +3 -0
  467. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  468. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  469. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  470. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  471. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  472. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  473. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  474. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  475. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  476. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  477. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  478. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  479. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  480. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  481. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  482. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  483. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  484. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  485. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  486. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  487. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  488. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  489. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  490. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  491. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  492. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  493. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  494. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  495. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  496. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
  497. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  498. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  499. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  500. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  501. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  502. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  503. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  504. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  505. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
  506. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  507. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/heavyAd.md +10 -0
  508. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/mixedContent.md +5 -0
  509. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  510. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  511. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  512. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  513. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  514. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  515. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  516. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  517. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  518. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  519. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  520. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  521. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  522. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  523. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  524. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  525. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  526. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  527. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  528. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  529. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  530. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  531. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  532. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  533. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  534. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  535. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  536. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  537. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  538. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  539. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  540. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  541. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  542. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  543. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  544. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  545. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  546. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  547. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  548. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  549. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  550. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  551. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  552. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  553. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  554. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  555. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  556. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  557. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  558. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  559. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  560. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +12 -0
  561. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  562. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  563. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  564. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  565. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  566. package/client/dist/chrome-devtools-ui/models/issues_manager/issues_manager.js +1 -0
  567. package/client/dist/chrome-devtools-ui/models/javascript_metadata/javascript_metadata.js +1 -0
  568. package/client/dist/chrome-devtools-ui/models/live-metrics/live-metrics.js +1 -0
  569. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/spec/spec.js +1 -0
  570. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
  571. package/client/dist/chrome-devtools-ui/models/logs/logs-meta.js +1 -0
  572. package/client/dist/chrome-devtools-ui/models/logs/logs.js +1 -0
  573. package/client/dist/chrome-devtools-ui/models/persistence/persistence-meta.js +1 -0
  574. package/client/dist/chrome-devtools-ui/models/persistence/persistence.js +1 -0
  575. package/client/dist/chrome-devtools-ui/models/project_settings/project_settings.js +1 -0
  576. package/client/dist/chrome-devtools-ui/models/react_native/react_native.js +1 -0
  577. package/client/dist/chrome-devtools-ui/models/source_map_scopes/source_map_scopes.js +1 -0
  578. package/client/dist/chrome-devtools-ui/models/text_utils/text_utils.js +1 -0
  579. package/client/dist/chrome-devtools-ui/models/trace/extras/extras.js +1 -0
  580. package/client/dist/chrome-devtools-ui/models/trace/handlers/handlers.js +1 -0
  581. package/client/dist/chrome-devtools-ui/models/trace/helpers/helpers.js +1 -0
  582. package/client/dist/chrome-devtools-ui/models/trace/insights/insights.js +1 -0
  583. package/client/dist/chrome-devtools-ui/models/trace/lantern/core/core.js +1 -0
  584. package/client/dist/chrome-devtools-ui/models/trace/lantern/graph/graph.js +1 -0
  585. package/client/dist/chrome-devtools-ui/models/trace/lantern/lantern.js +1 -0
  586. package/client/dist/chrome-devtools-ui/models/trace/lantern/metrics/metrics.js +1 -0
  587. package/client/dist/chrome-devtools-ui/models/trace/lantern/simulation/simulation.js +1 -0
  588. package/client/dist/chrome-devtools-ui/models/trace/lantern/types/types.js +1 -0
  589. package/client/dist/chrome-devtools-ui/models/trace/trace.js +1 -0
  590. package/client/dist/chrome-devtools-ui/models/trace/types/types.js +1 -0
  591. package/client/dist/chrome-devtools-ui/models/workspace/workspace.js +1 -0
  592. package/client/dist/chrome-devtools-ui/models/workspace_diff/workspace_diff.js +1 -0
  593. package/client/dist/chrome-devtools-ui/ndb_app.html +24 -0
  594. package/client/dist/chrome-devtools-ui/node_app.html +24 -0
  595. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility-meta.js +1 -0
  596. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility.js +1 -0
  597. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance-meta.js +1 -0
  598. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance.js +512 -0
  599. package/client/dist/chrome-devtools-ui/panels/animation/animation-meta.js +1 -0
  600. package/client/dist/chrome-devtools-ui/panels/animation/animation.js +1 -0
  601. package/client/dist/chrome-devtools-ui/panels/application/application-meta.js +1 -0
  602. package/client/dist/chrome-devtools-ui/panels/application/application.js +107 -0
  603. package/client/dist/chrome-devtools-ui/panels/application/components/components.js +765 -0
  604. package/client/dist/chrome-devtools-ui/panels/application/preloading/components/components.js +362 -0
  605. package/client/dist/chrome-devtools-ui/panels/application/preloading/helper/helper.js +1 -0
  606. package/client/dist/chrome-devtools-ui/panels/autofill/autofill-meta.js +1 -0
  607. package/client/dist/chrome-devtools-ui/panels/autofill/autofill.js +107 -0
  608. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger-meta.js +1 -0
  609. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger.js +1 -0
  610. package/client/dist/chrome-devtools-ui/panels/changes/changes-meta.js +1 -0
  611. package/client/dist/chrome-devtools-ui/panels/changes/changes.js +31 -0
  612. package/client/dist/chrome-devtools-ui/panels/common/common.js +45 -0
  613. package/client/dist/chrome-devtools-ui/panels/console/console-meta.js +1 -0
  614. package/client/dist/chrome-devtools-ui/panels/console/console.js +6 -0
  615. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters-meta.js +1 -0
  616. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters.js +1 -0
  617. package/client/dist/chrome-devtools-ui/panels/coverage/coverage-meta.js +1 -0
  618. package/client/dist/chrome-devtools-ui/panels/coverage/coverage.js +1 -0
  619. package/client/dist/chrome-devtools-ui/panels/css_overview/components/components.js +23 -0
  620. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview-meta.js +1 -0
  621. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview.js +148 -0
  622. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources-meta.js +1 -0
  623. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources.js +48 -0
  624. package/client/dist/chrome-devtools-ui/panels/elements/components/components.js +250 -0
  625. package/client/dist/chrome-devtools-ui/panels/elements/elements-meta.js +1 -0
  626. package/client/dist/chrome-devtools-ui/panels/elements/elements.js +67 -0
  627. package/client/dist/chrome-devtools-ui/panels/emulation/components/components.js +39 -0
  628. package/client/dist/chrome-devtools-ui/panels/emulation/emulation-meta.js +1 -0
  629. package/client/dist/chrome-devtools-ui/panels/emulation/emulation.js +1 -0
  630. package/client/dist/chrome-devtools-ui/panels/event_listeners/event_listeners.js +1 -0
  631. package/client/dist/chrome-devtools-ui/panels/explain/explain-meta.js +1 -0
  632. package/client/dist/chrome-devtools-ui/panels/explain/explain.js +231 -0
  633. package/client/dist/chrome-devtools-ui/panels/issues/components/components.js +14 -0
  634. package/client/dist/chrome-devtools-ui/panels/issues/issues-meta.js +1 -0
  635. package/client/dist/chrome-devtools-ui/panels/issues/issues.js +1 -0
  636. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline-meta.js +1 -0
  637. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline.js +2 -0
  638. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer-meta.js +1 -0
  639. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer.js +1 -0
  640. package/client/dist/chrome-devtools-ui/panels/layers/layers-meta.js +1 -0
  641. package/client/dist/chrome-devtools-ui/panels/layers/layers.js +1 -0
  642. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse-meta.js +1 -0
  643. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse.js +65 -0
  644. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/components/components.js +179 -0
  645. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
  646. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector.js +1 -0
  647. package/client/dist/chrome-devtools-ui/panels/media/media-meta.js +1 -0
  648. package/client/dist/chrome-devtools-ui/panels/media/media.js +25 -0
  649. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
  650. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling.js +1 -0
  651. package/client/dist/chrome-devtools-ui/panels/network/components/components.js +346 -0
  652. package/client/dist/chrome-devtools-ui/panels/network/forward/forward.js +1 -0
  653. package/client/dist/chrome-devtools-ui/panels/network/network-meta.js +1 -0
  654. package/client/dist/chrome-devtools-ui/panels/network/network.js +1 -0
  655. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor-meta.js +1 -0
  656. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor.js +1 -0
  657. package/client/dist/chrome-devtools-ui/panels/profiler/profiler-meta.js +1 -0
  658. package/client/dist/chrome-devtools-ui/panels/profiler/profiler.js +8 -0
  659. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
  660. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor.js +293 -0
  661. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools.js +1 -0
  662. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_components-meta.js +1 -0
  663. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_profiler-meta.js +1 -0
  664. package/client/dist/chrome-devtools-ui/panels/recorder/components/components.js +686 -0
  665. package/client/dist/chrome-devtools-ui/panels/recorder/controllers/controllers.js +1 -0
  666. package/client/dist/chrome-devtools-ui/panels/recorder/converters/converters.js +1 -0
  667. package/client/dist/chrome-devtools-ui/panels/recorder/extensions/extensions.js +1 -0
  668. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.generated.js +1 -0
  669. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.js +1 -0
  670. package/client/dist/chrome-devtools-ui/panels/recorder/models/models.js +1 -0
  671. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-actions/recorder-actions.js +3 -0
  672. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-meta.js +1 -0
  673. package/client/dist/chrome-devtools-ui/panels/recorder/recorder.js +126 -0
  674. package/client/dist/chrome-devtools-ui/panels/recorder/util/util.js +1 -0
  675. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome-meta.js +1 -0
  676. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome.js +62 -0
  677. package/client/dist/chrome-devtools-ui/panels/screencast/screencast-meta.js +1 -0
  678. package/client/dist/chrome-devtools-ui/panels/screencast/screencast.js +1 -0
  679. package/client/dist/chrome-devtools-ui/panels/search/search.js +1 -0
  680. package/client/dist/chrome-devtools-ui/panels/security/security-meta.js +1 -0
  681. package/client/dist/chrome-devtools-ui/panels/security/security.js +178 -0
  682. package/client/dist/chrome-devtools-ui/panels/sensors/sensors-meta.js +1 -0
  683. package/client/dist/chrome-devtools-ui/panels/sensors/sensors.js +1 -0
  684. package/client/dist/chrome-devtools-ui/panels/settings/components/components.js +22 -0
  685. package/client/dist/chrome-devtools-ui/panels/settings/emulation/components/components.js +221 -0
  686. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation-meta.js +1 -0
  687. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation.js +1 -0
  688. package/client/dist/chrome-devtools-ui/panels/settings/emulation/utils/utils.js +1 -0
  689. package/client/dist/chrome-devtools-ui/panels/settings/settings-meta.js +1 -0
  690. package/client/dist/chrome-devtools-ui/panels/settings/settings.js +91 -0
  691. package/client/dist/chrome-devtools-ui/panels/snippets/snippets.js +1 -0
  692. package/client/dist/chrome-devtools-ui/panels/sources/components/components.js +162 -0
  693. package/client/dist/chrome-devtools-ui/panels/sources/sources-meta.js +1 -0
  694. package/client/dist/chrome-devtools-ui/panels/sources/sources.js +2 -0
  695. package/client/dist/chrome-devtools-ui/panels/timeline/components/components.js +1063 -0
  696. package/client/dist/chrome-devtools-ui/panels/timeline/components/insights/insights.js +262 -0
  697. package/client/dist/chrome-devtools-ui/panels/timeline/extensions/extensions.js +1 -0
  698. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/components/components.js +190 -0
  699. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/overlays.js +1 -0
  700. package/client/dist/chrome-devtools-ui/panels/timeline/timeline-meta.js +1 -0
  701. package/client/dist/chrome-devtools-ui/panels/timeline/timeline.js +43 -0
  702. package/client/dist/chrome-devtools-ui/panels/timeline/utils/utils.js +1 -0
  703. package/client/dist/chrome-devtools-ui/panels/utils/utils.js +1 -0
  704. package/client/dist/chrome-devtools-ui/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  705. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio-meta.js +1 -0
  706. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio.js +19 -0
  707. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn-meta.js +1 -0
  708. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn.js +1 -0
  709. package/client/dist/chrome-devtools-ui/panels/whats_new/resources/WNDT.md +6 -0
  710. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new-meta.js +1 -0
  711. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new.js +32 -0
  712. package/client/dist/chrome-devtools-ui/rehydrated_devtools_app.html +24 -0
  713. package/client/dist/chrome-devtools-ui/rn_fusebox.html +24 -0
  714. package/client/dist/chrome-devtools-ui/services/puppeteer/puppeteer.js +1 -0
  715. package/client/dist/chrome-devtools-ui/services/trace_bounds/trace_bounds.js +1 -0
  716. package/client/dist/chrome-devtools-ui/services/tracing/tracing.js +1 -0
  717. package/client/dist/chrome-devtools-ui/services/window_bounds/window_bounds.js +1 -0
  718. package/client/dist/chrome-devtools-ui/third_party/acorn/acorn.js +1 -0
  719. package/client/dist/chrome-devtools-ui/third_party/chromium/client-variations/client-variations.js +1 -0
  720. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/angular.js +2 -0
  721. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/codemirror.js +2 -0
  722. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/cpp.js +2 -0
  723. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/java.js +2 -0
  724. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/legacy.js +2 -0
  725. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/less.js +2 -0
  726. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/markdown.js +2 -0
  727. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/php.js +2 -0
  728. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/python.js +2 -0
  729. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/sass.js +2 -0
  730. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/svelte.js +2 -0
  731. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/vue.js +2 -0
  732. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/wast.js +2 -0
  733. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/xml.js +2 -0
  734. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/codemirror.next.js +2 -0
  735. package/client/dist/chrome-devtools-ui/third_party/csp_evaluator/csp_evaluator.js +194 -0
  736. package/client/dist/chrome-devtools-ui/third_party/diff/diff.js +1 -0
  737. package/client/dist/chrome-devtools-ui/third_party/i18n/i18n.js +1 -0
  738. package/client/dist/chrome-devtools-ui/third_party/intl-messageformat/intl-messageformat.js +15 -0
  739. package/client/dist/chrome-devtools-ui/third_party/json5/json5.js +1 -0
  740. package/client/dist/chrome-devtools-ui/third_party/legacy-javascript/legacy-javascript.js +7 -0
  741. package/client/dist/chrome-devtools-ui/third_party/lighthouse/lighthouse-dt-bundle.js +3023 -0
  742. package/client/dist/chrome-devtools-ui/third_party/lighthouse/report/report.js +39 -0
  743. package/client/dist/chrome-devtools-ui/third_party/lit/lit.js +121 -0
  744. package/client/dist/chrome-devtools-ui/third_party/marked/marked.js +1 -0
  745. package/client/dist/chrome-devtools-ui/third_party/puppeteer/puppeteer.js +373 -0
  746. package/client/dist/chrome-devtools-ui/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
  747. package/client/dist/chrome-devtools-ui/third_party/react-devtools/react-devtools.js +41 -0
  748. package/client/dist/chrome-devtools-ui/third_party/third-party-web/third-party-web.js +1 -0
  749. package/client/dist/chrome-devtools-ui/third_party/wasmparser/wasmparser.js +1 -0
  750. package/client/dist/chrome-devtools-ui/third_party/web-vitals/web-vitals.js +1 -0
  751. package/client/dist/chrome-devtools-ui/ui/components/adorners/adorners.js +1 -0
  752. package/client/dist/chrome-devtools-ui/ui/components/buttons/buttons.js +17 -0
  753. package/client/dist/chrome-devtools-ui/ui/components/cards/cards.js +10 -0
  754. package/client/dist/chrome-devtools-ui/ui/components/chrome_link/chrome_link.js +6 -0
  755. package/client/dist/chrome-devtools-ui/ui/components/code_highlighter/code_highlighter.js +1 -0
  756. package/client/dist/chrome-devtools-ui/ui/components/dialogs/dialogs.js +61 -0
  757. package/client/dist/chrome-devtools-ui/ui/components/diff_view/diff_view.js +8 -0
  758. package/client/dist/chrome-devtools-ui/ui/components/expandable_list/expandable_list.js +17 -0
  759. package/client/dist/chrome-devtools-ui/ui/components/floating_button/floating_button.js +1 -0
  760. package/client/dist/chrome-devtools-ui/ui/components/helpers/helpers.js +1 -0
  761. package/client/dist/chrome-devtools-ui/ui/components/highlighting/highlighting.js +1 -0
  762. package/client/dist/chrome-devtools-ui/ui/components/icon_button/icon_button.js +13 -0
  763. package/client/dist/chrome-devtools-ui/ui/components/input/input.js +1 -0
  764. package/client/dist/chrome-devtools-ui/ui/components/issue_counter/issue_counter.js +10 -0
  765. package/client/dist/chrome-devtools-ui/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
  766. package/client/dist/chrome-devtools-ui/ui/components/linkifier/linkifier.js +1 -0
  767. package/client/dist/chrome-devtools-ui/ui/components/markdown_view/markdown_view.js +51 -0
  768. package/client/dist/chrome-devtools-ui/ui/components/menus/menus.js +71 -0
  769. package/client/dist/chrome-devtools-ui/ui/components/node_text/node_text.js +3 -0
  770. package/client/dist/chrome-devtools-ui/ui/components/panel_feedback/panel_feedback.js +37 -0
  771. package/client/dist/chrome-devtools-ui/ui/components/panel_introduction_steps/panel_introduction_steps.js +9 -0
  772. package/client/dist/chrome-devtools-ui/ui/components/render_coordinator/render_coordinator.js +1 -0
  773. package/client/dist/chrome-devtools-ui/ui/components/report_view/report_view.js +21 -0
  774. package/client/dist/chrome-devtools-ui/ui/components/request_link_icon/request_link_icon.js +8 -0
  775. package/client/dist/chrome-devtools-ui/ui/components/settings/settings.js +20 -0
  776. package/client/dist/chrome-devtools-ui/ui/components/spinners/spinners.js +16 -0
  777. package/client/dist/chrome-devtools-ui/ui/components/srgb_overlay/srgb_overlay.js +6 -0
  778. package/client/dist/chrome-devtools-ui/ui/components/suggestion_input/suggestion_input.js +29 -0
  779. package/client/dist/chrome-devtools-ui/ui/components/survey_link/survey_link.js +7 -0
  780. package/client/dist/chrome-devtools-ui/ui/components/switch/switch.js +10 -0
  781. package/client/dist/chrome-devtools-ui/ui/components/text_editor/text_editor.js +1 -0
  782. package/client/dist/chrome-devtools-ui/ui/components/text_prompt/text_prompt.js +4 -0
  783. package/client/dist/chrome-devtools-ui/ui/components/tooltips/tooltips.js +7 -0
  784. package/client/dist/chrome-devtools-ui/ui/components/tree_outline/tree_outline.js +32 -0
  785. package/client/dist/chrome-devtools-ui/ui/legacy/components/color_picker/color_picker.js +1 -0
  786. package/client/dist/chrome-devtools-ui/ui/legacy/components/cookie_table/cookie_table.js +85 -0
  787. package/client/dist/chrome-devtools-ui/ui/legacy/components/data_grid/data_grid.js +1 -0
  788. package/client/dist/chrome-devtools-ui/ui/legacy/components/inline_editor/inline_editor.js +58 -0
  789. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
  790. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui.js +7 -0
  791. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
  792. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui.js +60 -0
  793. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
  794. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open.js +1 -0
  795. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
  796. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame.js +1 -0
  797. package/client/dist/chrome-devtools-ui/ui/legacy/components/utils/utils.js +1 -0
  798. package/client/dist/chrome-devtools-ui/ui/legacy/legacy.js +59 -0
  799. package/client/dist/chrome-devtools-ui/ui/legacy/theme_support/theme_support.js +1 -0
  800. package/client/dist/chrome-devtools-ui/ui/lit/lit.js +1 -0
  801. package/client/dist/chrome-devtools-ui/ui/visual_logging/visual_logging.js +1 -0
  802. package/client/dist/chrome-devtools-ui/worker_app.html +24 -0
  803. package/client/dist/index.html +3 -3
  804. package/package.json +4 -1
  805. package/packages/simdeck-test/dist/index.d.ts +7 -1
  806. package/client/dist/assets/index-BHTf_1bs.js +0 -9
  807. package/client/dist/assets/index-PP2opq5o.css +0 -1
@@ -0,0 +1,512 @@
1
+ import*as e from"../../ui/legacy/legacy.js";import*as t from"../../core/common/common.js";import*as s from"../../core/host/host.js";import*as n from"../../core/i18n/i18n.js";import*as i from"../../core/root/root.js";import*as o from"../../core/sdk/sdk.js";import*as a from"../../models/ai_assistance/ai_assistance.js";import*as r from"../../models/workspace/workspace.js";import"../../ui/components/buttons/buttons.js";import*as l from"../../ui/lit/lit.js";import{Directives as c,nothing as d,html as h,render as g}from"../../ui/lit/lit.js";import*as u from"../../ui/visual_logging/visual_logging.js";import*as p from"../elements/elements.js";import*as v from"../network/forward/forward.js";import*as m from"../network/network.js";import*as f from"../sources/sources.js";import*as y from"../timeline/timeline.js";import*as b from"../timeline/utils/utils.js";import"../../ui/components/spinners/spinners.js";import*as w from"../../third_party/marked/marked.js";import*as C from"../../ui/components/markdown_view/markdown_view.js";import"../../ui/components/tooltips/tooltips.js";import*as k from"../../models/persistence/persistence.js";import*as x from"../../models/workspace_diff/workspace_diff.js";import*as S from"../changes/changes.js";import*as A from"../../ui/components/input/input.js";var I={cssText:`.toolbar-container{display:flex;background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider);flex:0 0 auto;justify-content:space-between}.chat-container{display:flex;flex-direction:column;width:100%;height:100%;align-items:center;overflow:hidden}.toolbar-feedback-link{color:var(--sys-color-primary);margin:0 var(--sys-size-3);height:auto}\n/*# sourceURL=${import.meta.resolve("././aiAssistancePanel.css")} */\n`};const{classMap:T}=c,$="Unsaved changes",E="Applying to page tree…",R="Apply to page tree",z="Cancel",L="Discard",M="Save to workspace",F="Changes saved to workspace",O="Use code snippets with caution",P="The source code of the inspected page and its assets, and any data the inspected page can access is sent to Google to generate code suggestions.",j="The source code of the inspected page and its assets, and any data the inspected page can access is sent to Google to generate code suggestions. This data will not be used to improve Google’s AI models.",D="Learn more",N="View data sent to Google",U="(opens in a new tab)",q="Changes couldn’t be applied to the page tree.",B="Export patch file",_="Changes exported as patch file",V=n.i18n.lockedString;var H;!function(e){e.INITIAL="initial",e.LOADING="loading",e.SUCCESS="success",e.ERROR="error",e.EXPORTED_AS_PATCH="exportedAsPatch",e.SAVED_TO_WORKSPACE="savedToWorkspace"}(H||(H={}));let W=class extends e.Widget.Widget{changeSummary="";changeManager;#e;#t={};#s;#n;#i;#o;#a=H.INITIAL;#r=x.WorkspaceDiff.workspaceDiff();#l=k.Persistence.PersistenceImpl.instance();constructor(t,n,o){super(!1,!1,t),this.#s=o?.aidaClient??new s.AidaClient.AidaClient,this.#o=i.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue===i.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING,this.#e=n??((t,s,n)=>{function i(){return t.sources?h`<x-link
2
+ class="link sources-link"
3
+ title="${N} ${U}"
4
+ href="data:text/plain,${encodeURIComponent(t.sources)}"
5
+ jslog=${u.link("files-used-in-patching").track({click:!0})}>
6
+ ${N}
7
+ </x-link>`:d}(t.changeSummary||t.patchSuggestionState!==H.INITIAL)&&(s.tooltipRef=s.tooltipRef??c.createRef(),g(h`
8
+ <details class=${T({"change-summary":!0,exported:t.patchSuggestionState===H.EXPORTED_AS_PATCH||t.patchSuggestionState===H.SAVED_TO_WORKSPACE})}>
9
+ <summary>
10
+ ${t.patchSuggestionState===H.EXPORTED_AS_PATCH||t.patchSuggestionState===H.SAVED_TO_WORKSPACE?h`
11
+ <devtools-icon class="green-bright-icon summary-badge" .name=${"check-circle"}></devtools-icon>
12
+ <span class="header-text">
13
+ ${t.patchSuggestionState===H.EXPORTED_AS_PATCH?V(_):V(F)}
14
+ </span>
15
+ `:t.patchSuggestionState===H.SUCCESS?h`
16
+ <devtools-icon class="on-tonal-icon summary-badge" .name=${"difference"}></devtools-icon>
17
+ <span class="header-text">
18
+ ${V("File changes in page")}
19
+ </span>
20
+ <devtools-icon
21
+ class="arrow"
22
+ .name=${"chevron-down"}
23
+ ></devtools-icon>
24
+ `:h`
25
+ <devtools-icon class="on-tonal-icon summary-badge" .name=${"pen-spark"}></devtools-icon>
26
+ <span class="header-text">
27
+ ${V($)}
28
+ </span>
29
+ <devtools-icon
30
+ class="arrow"
31
+ .name=${"chevron-down"}
32
+ ></devtools-icon>
33
+ `}
34
+ </summary>
35
+ ${!t.changeSummary&&t.patchSuggestionState===H.INITIAL||t.patchSuggestionState===H.EXPORTED_AS_PATCH||t.patchSuggestionState===H.SAVED_TO_WORKSPACE?d:t.patchSuggestionState===H.SUCCESS?h`<devtools-widget .widgetConfig=${e.Widget.widgetConfig(S.CombinedDiffView.CombinedDiffView,{workspaceDiff:t.workspaceDiff})}></devtools-widget>`:h`<devtools-code-block
36
+ .code=${t.changeSummary??""}
37
+ .codeLang=${"css"}
38
+ .displayNotice=${!0}
39
+ ></devtools-code-block>
40
+ ${t.patchSuggestionState===H.ERROR?h`<div class="error-container">
41
+ <devtools-icon .name=${"cross-circle-filled"}></devtools-icon>${V(q)} ${i()}
42
+ </div>`:d}`}
43
+ ${t.patchSuggestionState===H.EXPORTED_AS_PATCH||t.patchSuggestionState===H.SAVED_TO_WORKSPACE?d:t.patchSuggestionState===H.SUCCESS?h`
44
+ <div class="footer">
45
+ <x-link class="link disclaimer-link" href="https://support.google.com/legal/answer/13505487" jslog=${u.link("code-disclaimer").track({click:!0})}>
46
+ ${V(O)}
47
+ </x-link>
48
+ ${i()}
49
+ <div class="save-or-discard-buttons">
50
+ <devtools-button
51
+ @click=${t.onDiscard}
52
+ .jslogContext=${"patch-widget.discard"}
53
+ .variant=${"outlined"}>
54
+ ${V(L)}
55
+ </devtools-button>
56
+ ${t.onSaveToWorkspace?h`
57
+ <devtools-button
58
+ @click=${t.onSaveToWorkspace}
59
+ .jslogContext=${"patch-widget.save-to-workspace"}
60
+ .variant=${"primary"}>
61
+ ${V(M)}
62
+ </devtools-button>
63
+ `:d}
64
+ <devtools-button
65
+ @click=${t.onExportPatchFile}
66
+ .jslogContext=${"patch-widget.export-patch-file"}
67
+ .variant=${"primary"}>
68
+ ${V(B)}
69
+ </devtools-button>
70
+ </div>
71
+ </div>
72
+ `:h`
73
+ <div class="footer">
74
+ <div class="apply-to-page-tree-container">
75
+ ${t.patchSuggestionState===H.LOADING?h`
76
+ <div class="loading-text-container">
77
+ <devtools-spinner></devtools-spinner>
78
+ <span>
79
+ ${V(E)}
80
+ </span>
81
+ </div>
82
+ `:h`
83
+ <devtools-button
84
+ @click=${t.onApplyToPageTree}
85
+ .jslogContext=${"apply-to-page-tree"}
86
+ .variant=${"outlined"}>
87
+ ${V(R)}
88
+ </devtools-button>
89
+ `}
90
+ ${t.patchSuggestionState===H.LOADING?h`<devtools-button
91
+ @click=${t.onCancel}
92
+ .jslogContext=${"cancel"}
93
+ .variant=${"outlined"}>
94
+ ${V(z)}
95
+ </devtools-button>`:d}
96
+ <devtools-button
97
+ aria-details="info-tooltip"
98
+ .iconName=${"info"}
99
+ .variant=${"icon"}
100
+ ></devtools-button>
101
+ <devtools-tooltip variant="rich" id="info-tooltip" ${c.ref(s.tooltipRef)}>
102
+ <div class="info-tooltip-container">
103
+ ${t.disclaimerTooltipText}
104
+ <button
105
+ class="link tooltip-link"
106
+ role="link"
107
+ jslog=${u.link("open-ai-settings").track({click:!0})}
108
+ @click=${t.onLearnMoreTooltipClick}
109
+ >${V(D)}</button>
110
+ </div>
111
+ </devtools-tooltip>
112
+ </div>
113
+ </div>`}
114
+ </details>
115
+ `,n,{host:n}))}),this.requestUpdate()}#c(){this.#t.tooltipRef?.value?.hidePopover(),e.ViewManager.ViewManager.instance().showView("chrome-ai")}performUpdate(){this.#e({workspaceDiff:this.#r,changeSummary:this.changeSummary,patchSuggestionState:this.#a,sources:this.#i,disclaimerTooltipText:this.#o?V(j):V(P),onLearnMoreTooltipClick:this.#c.bind(this),onApplyToPageTree:this.#d.bind(this),onCancel:()=>{this.#n?.abort()},onDiscard:this.#h.bind(this),onSaveToWorkspace:this.#g()?this.#u.bind(this):void 0,onExportPatchFile:this.#p.bind(this)},this.#t,this.contentElement)}wasShown(){super.wasShown(),G()&&(window.aiAssistanceTestPatchPrompt=async e=>await this.#v(e))}async#d(){if(!G())return;const e=this.changeSummary;if(!e)throw new Error("Change summary does not exist");this.#a=H.LOADING,this.requestUpdate();const{response:t,processedFiles:s}=await this.#v(e);"answer"===t?.type?(await(this.changeManager?.stashChanges()),this.#a=H.SUCCESS):"error"===t?.type&&"abort"===t.error?this.#a=H.INITIAL:this.#a=H.ERROR,this.#i=`Filenames in page.\nFiles:\n${s.map((e=>`* ${e}`)).join("\n")}`,this.requestUpdate()}#h(){this.#r.modifiedUISourceCodes().forEach((e=>{e.resetWorkingCopy()})),this.#a=H.INITIAL,this.#i=void 0,this.changeManager?.popStashedChanges(),this.requestUpdate()}#g(){if(this.#a!==H.SUCCESS)return!1;const e=this.#r.modifiedUISourceCodes().filter((e=>"inspector://"!==e.origin()));return e.length>0&&e.every((e=>this.#l.binding(e)))}#u(){this.#r.modifiedUISourceCodes().forEach((e=>{const t=this.#l.binding(e);t&&t.fileSystem.commitWorkingCopy()})),this.#a=H.SAVED_TO_WORKSPACE,this.changeManager?.dropStashedChanges(),this.requestUpdate()}#p(){this.#a=H.EXPORTED_AS_PATCH,this.requestUpdate()}async#v(e){this.#n=new AbortController;const t=new a.PatchAgent({aidaClient:this.#s,serverSideLoggingEnabled:!1}),{responses:s,processedFiles:n}=await t.applyChanges(e,{signal:this.#n.signal});return{response:s.at(-1),processedFiles:n}}};function G(){return Boolean(i.Runtime.hostConfig.devToolsFreestyler?.patching)}var K=Object.freeze({__proto__:null,get PatchSuggestionState(){return H},PatchWidget:W,isAiAssistancePatchingEnabled:G}),X={cssText:`*{box-sizing:border-box;margin:0;padding:0}:host{width:100%;height:100%;user-select:text;display:flex;flex-direction:column;background-color:var(--sys-color-cdt-base-container)}.chat-ui{width:100%;height:100%;max-height:100%;display:flex;flex-direction:column}.input-form{display:flex;flex-direction:column;padding:var(--sys-size-5) var(--sys-size-5) 0 var(--sys-size-5);max-width:var(--sys-size-36);background-color:var(--sys-color-cdt-base-container);width:100%;position:sticky;z-index:9999;bottom:0;box-shadow:0 1px var(--sys-color-cdt-base-container);@container (width > 688px){--half-scrollbar-width:calc((100cqw - 100%) / 2);margin-left:var(--half-scrollbar-width);margin-right:calc(-1 * var(--half-scrollbar-width))}@container (height < 224px){position:static}& .input-form-shadow-container{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:var(--sys-size-4);& .input-form-shadow{height:100%;box-shadow:0 -3px 2px -2px var(--app-color-ai-assistance-input-divider);animation:reveal;opacity:0%;animation-timeline:--scroll-timeline}}}.chat-readonly-container{display:flex;width:100%;max-width:var(--sys-size-36);justify-content:center;align-items:center;background-color:var(--sys-color-surface3);font:var(--sys-typescale-body4-regular);padding:var(--sys-size-5) 0;border-radius:var(--sys-shape-corner-medium-small);margin-bottom:var(--sys-size-5);color:var(--sys-color-on-surface-subtle)}.chat-input-container{margin:var(--sys-size-4) 0;width:100%;display:flex;position:relative;flex-direction:column;border:1px solid var(--sys-color-neutral-outline);border-radius:var(--sys-shape-corner-small);&:focus-within{outline:1px solid var(--sys-color-primary);border-color:var(--sys-color-primary)}&.disabled{background-color:var(--sys-color-state-disabled-container);border-color:transparent}.image-input-container{margin:var(--sys-size-3) var(--sys-size-5);max-width:100%;width:fit-content;position:relative;devtools-button{position:absolute;top:var(--sys-size-1);right:-4px;border-radius:var(--sys-shape-corner-full);border:1px solid var(--sys-color-neutral-outline);background-color:var(--sys-color-cdt-base-container)}img{margin:var(--sys-size-4) 0;max-height:var(--sys-size-18);max-width:100%;border:1px solid var(--sys-color-neutral-outline);border-radius:var(--sys-shape-corner-small)}.loading{margin:var(--sys-size-4) 0;display:inline-flex;justify-content:center;align-items:center;height:var(--sys-size-18);width:var(--sys-size-19);background-color:var(--sys-color-surface3);border-radius:var(--sys-shape-corner-small);border:1px solid var(--sys-color-neutral-outline);devtools-spinner{color:var(--sys-color-state-disabled)}}}}.chat-input{--right-padding:calc(var(--sys-size-3) + 26px);scrollbar-width:none;field-sizing:content;resize:none;width:100%;max-height:84px;border:0;border-radius:var(--sys-shape-corner-small);font:var(--sys-typescale-body4-regular);line-height:18px;min-height:var(--sys-size-11);padding:var(--sys-size-4) var(--right-padding) var(--sys-size-4) var(--sys-size-4);color:var(--sys-color-on-surface);background-color:var(--sys-color-cdt-base-container);&::placeholder{opacity:60%}&:focus-visible{outline:0}&:disabled{color:var(--sys-color-state-disabled);background-color:transparent;border-color:transparent;&::placeholder{color:var(--sys-color-on-surface-subtle);opacity:100%}}&.two-big-buttons{--right-padding:172px}&.screenshot-button{--right-padding:calc(2 * var(--sys-size-3) + 2 * 26px)}}.chat-input-buttons{position:absolute;right:0;bottom:0;display:flex;flex-direction:row}.chat-input-button{padding-bottom:2px;padding-right:var(--sys-size-3)}.chat-inline-button{padding-left:3px}.chat-cancel-context-button{padding-bottom:3px;padding-right:var(--sys-size-3)}.disclaimer{display:flex;justify-content:center;border-top:var(--sys-size-1) solid var(--sys-color-divider);.disclaimer-text{max-width:var(--sys-size-38);color:var(--sys-color-on-surface-subtle);font:var(--sys-typescale-body5-regular);text-wrap:pretty;padding:var(--sys-size-2) var(--sys-size-5)}}.messages-container{flex-grow:1;width:100%;max-width:var(--sys-size-36);@container (width > 688px){--half-scrollbar-width:calc((100cqw - 100%) / 2);margin-left:var(--half-scrollbar-width);margin-right:calc(-1 * var(--half-scrollbar-width))}}.chat-message{user-select:text;cursor:initial;display:flex;flex-direction:column;gap:var(--sys-size-5);width:100%;padding:var(--sys-size-7) var(--sys-size-5);font-size:12px;word-break:normal;overflow-wrap:anywhere;border-bottom:var(--sys-size-1) solid var(--sys-color-divider);&:last-of-type{border-bottom:0}.message-info{display:flex;align-items:center;height:var(--sys-size-11);gap:var(--sys-size-4);font:var(--sys-typescale-body4-bold);img{border:0;border-radius:var(--sys-shape-corner-full);display:block;height:var(--sys-size-9);width:var(--sys-size-9)}h2{font:var(--sys-typescale-body4-bold)}}.actions{display:flex;flex-direction:column;gap:var(--sys-size-8);max-width:100%}.aborted{color:var(--sys-color-on-surface-subtle)}.image-link{width:fit-content;border-radius:var(--sys-shape-corner-small);outline-offset:var(--sys-size-2);img{max-height:var(--sys-size-20);max-width:100%;border-radius:var(--sys-shape-corner-small);border:1px solid var(--sys-color-neutral-outline);width:fit-content;vertical-align:bottom}}.unavailable-image{margin:var(--sys-size-4) 0;display:inline-flex;justify-content:center;align-items:center;height:var(--sys-size-17);width:var(--sys-size-18);background-color:var(--sys-color-surface3);border-radius:var(--sys-shape-corner-small);border:1px solid var(--sys-color-neutral-outline);devtools-icon{color:var(--sys-color-state-disabled)}}}.select-element{display:flex;gap:var(--sys-size-3);align-items:center;width:100%;.resource-link,\n .resource-task{cursor:pointer;padding:var(--sys-size-2) 3px;font:var(--sys-typescale-body4-size);border:var(--sys-size-1) solid var(--sys-color-divider);border-radius:var(--sys-shape-corner-extra-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:var(--sys-size-32);&.allow-overflow{overflow:visible}&:focus-visible{outline:2px solid var(--sys-color-state-focus-ring)}.icon,\n devtools-file-source-icon{display:inline-flex;vertical-align:top;margin-right:var(--sys-size-3);width:var(--sys-size-9);height:var(--sys-size-9)}.network-override-marker{position:relative;float:left}.network-override-marker::before{content:var(--image-file-empty);width:var(--sys-size-4);height:var(--sys-size-4);border-radius:50%;outline:var(--sys-size-1) solid var(--icon-gap-focus-selected);left:11px;position:absolute;top:13px;z-index:1;background-color:var(--sys-color-purple-bright)}.image.icon{display:inline-flex;justify-content:center;align-items:center;margin-right:var(--sys-size-3);img{max-width:var(--sys-size-8);max-height:var(--sys-size-8)}}}.resource-link.not-selected,\n .resource-task.not-selected{color:var(--sys-color-state-disabled);border-color:var(--sys-color-neutral-outline)}}.indicator{color:var(--sys-color-green-bright)}.summary{display:grid;grid-template-columns:auto 1fr auto;padding:var(--sys-size-3);line-height:var(--sys-size-9);cursor:default;gap:var(--sys-size-3);justify-content:center;align-items:center;.title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font:var(--sys-typescale-body4-regular);.paused{font:var(--sys-typescale-body4-bold)}}}.step-code{display:flex;flex-direction:column;gap:var(--sys-size-2)}.js-code-output{devtools-code-block{--code-block-max-code-height:50px}}.context-details{devtools-code-block{--code-block-max-code-height:80px}}.step{width:fit-content;background-color:var(--sys-color-surface3);border-radius:var(--sys-size-6);position:relative;&.empty{pointer-events:none;.arrow{display:none}}&:not(&[open]):hover::after{content:'';height:100%;width:100%;border-radius:inherit;position:absolute;top:0;left:0;pointer-events:none;background-color:var(--sys-color-state-hover-on-subtle)}&.paused{.indicator{color:var(--sys-color-on-surface-subtle)}}&.canceled{.summary{color:var(--sys-color-state-disabled);text-decoration:line-through}.indicator{color:var(--sys-color-state-disabled)}}devtools-markdown-view{--code-background-color:var(--sys-color-surface1)}devtools-icon{vertical-align:bottom}devtools-spinner{width:var(--sys-size-9);height:var(--sys-size-9);padding:var(--sys-size-2)}&[open]{width:auto;.summary .title{white-space:normal;overflow:unset}.summary .arrow{transform:rotate(180deg)}}summary::marker{content:''}summary{border-radius:var(--sys-size-6)}.step-details{padding:0 var(--sys-size-5) var(--sys-size-4) var(--sys-size-12);display:flex;flex-direction:column;gap:var(--sys-size-6);devtools-code-block{--code-block-background-color:var(--sys-color-surface1)}}}.input-header{display:inline-flex;align-items:flex-end;justify-content:space-between;margin-bottom:2px;line-height:20px;gap:var(--sys-size-8);position:relative;& .feedback-icon{width:var(--sys-size-8);height:var(--sys-size-8)}& .header-link-container{display:inline-flex;align-items:center;gap:var(--sys-size-2);flex-shrink:0}& .header-link-container:first-of-type{flex-shrink:1;min-width:0}}.link{color:var(--text-link);text-decoration:underline;cursor:pointer}button.link{border:none;background:none;font:inherit}.select-an-element-text{margin-left:2px}main{overflow:hidden auto;display:flex;flex-direction:column;align-items:center;height:100%;container-type:size;scrollbar-width:thin;transform:translateZ(1px);scroll-timeline:--scroll-timeline y}.empty-state-container{flex-grow:1;display:grid;align-items:center;justify-content:center;font:var(--sys-typescale-headline4);gap:var(--sys-size-8);padding:var(--sys-size-3);max-width:var(--sys-size-33);@container (width > 688px){--half-scrollbar-width:calc((100cqw - 100%) / 2);margin-left:var(--half-scrollbar-width);margin-right:calc(-1 * var(--half-scrollbar-width))}.header{display:flex;flex-direction:column;width:100%;align-items:center;justify-content:center;align-self:end;gap:var(--sys-size-5);.icon{display:flex;justify-content:center;align-items:center;height:var(--sys-size-14);width:var(--sys-size-14);border-radius:var(--sys-shape-corner-small);background:linear-gradient(135deg,var(--sys-color-gradient-primary),var(--sys-color-gradient-tertiary))}h1{font:var(--sys-typescale-headline4)}p{text-align:center;font:var(--sys-typescale-body4-regular)}}.empty-state-content{display:flex;flex-direction:column;gap:var(--sys-size-5);align-items:center;justify-content:center;align-self:start}}.feature-card{display:flex;padding:var(--sys-size-4) var(--sys-size-6);gap:10px;background-color:var(--sys-color-surface2);border-radius:var(--sys-shape-corner-medium-small);width:100%;align-items:center;.feature-card-icon{min-width:var(--sys-size-12);min-height:var(--sys-size-12);display:flex;justify-content:center;align-items:center;background-color:var(--sys-color-tonal-container);border-radius:var(--sys-shape-corner-full);devtools-icon{width:18px;height:18px}}.feature-card-content{h3{font:var(--sys-typescale-body3-medium)}p{font:var(--sys-typescale-body4-regular);line-height:18px}}}.disabled-view{display:flex;max-width:var(--sys-size-34);border-radius:var(--sys-shape-corner-small);box-shadow:var(--sys-elevation-level3);background-color:var(--app-color-card-background);font:var(--sys-typescale-body4-regular);text-wrap:pretty;padding:var(--sys-size-6) var(--sys-size-8);margin:var(--sys-size-4) 0;line-height:var(--sys-size-9);.disabled-view-icon-container{border-radius:var(--sys-shape-corner-extra-small);width:var(--sys-size-9);height:var(--sys-size-9);background:linear-gradient(135deg,var(--sys-color-gradient-primary),var(--sys-color-gradient-tertiary));margin-right:var(--sys-size-5);devtools-icon{margin:var(--sys-size-2)}}}.error-step{color:var(--sys-color-error)}.side-effect-confirmation{display:flex;flex-direction:column;gap:var(--sys-size-5);padding-bottom:var(--sys-size-4)}.side-effect-buttons-container{display:flex;gap:var(--sys-size-4)}.change-summary{background-color:var(--sys-color-surface3);border-radius:var(--sys-shape-corner-medium-small);position:relative;margin:0 var(--sys-size-5);padding:0 var(--sys-size-5);&.exported{pointer-events:none}summary{display:flex;align-items:center;gap:var(--sys-size-3);height:var(--sys-size-14);padding-left:var(--sys-size-3);devtools-spinner{width:var(--sys-size-6);height:var(--sys-size-6);margin-left:var(--sys-size-3);margin-right:var(--sys-size-3)}& devtools-icon.summary-badge{width:var(--sys-size-8);height:var(--sys-size-8)}& .green-bright-icon{color:var(--sys-color-green-bright)}& .on-tonal-icon{color:var(--sys-color-on-tonal-container)}& .header-text{font:var(--sys-typescale-body4);color:var(--sys-color-on-surface)}& .arrow{margin-left:auto}&::marker{content:''}}&:not(&[open]):hover::after{content:'';height:100%;width:100%;border-radius:inherit;position:absolute;top:0;left:0;pointer-events:none;background-color:var(--sys-color-state-hover-on-subtle)}&[open]:not(.exported){&::details-content{height:fit-content;padding:var(--sys-size-2) 0;border-radius:inherit}summary .arrow{transform:rotate(180deg)}}devtools-code-block{margin-bottom:var(--sys-size-5);--code-block-background-color:var(--sys-color-surface1)}.error-container{display:flex;align-items:center;gap:var(--sys-size-3);color:var(--sys-color-error);devtools-icon{color:var(--sys-color-error)}}.footer{display:flex;flex-direction:row;justify-content:space-between;margin:var(--sys-size-5) 0 var(--sys-size-5) var(--sys-size-2);gap:var(--sys-size-6);.disclaimer-link{align-self:center}.sources-link{flex-grow:1;align-self:center}.info-tooltip-container{max-width:var(--sys-size-28);.tooltip-link{display:block;margin-top:var(--sys-size-4);color:var(--sys-color-primary)}}.loading-text-container{margin-right:var(--sys-size-3);display:flex;justify-content:center;align-items:center;gap:var(--sys-size-3)}.apply-to-page-tree-container{display:flex;align-items:center;gap:var(--sys-size-3);margin-left:auto;devtools-icon{width:18px;height:18px;margin-left:var(--sys-size-2)}}}}@keyframes reveal{0%,\n 99%{opacity:100%}100%{opacity:0%}}\n/*# sourceURL=${import.meta.resolve("././components/chatView.css")} */\n`};class Y extends C.MarkdownView.MarkdownInsightRenderer{templateForToken(e){if("code"===e.type){const t=e.text.split("\n");"css"===t[0]?.trim()&&(e.lang="css",e.text=t.slice(1).join("\n"))}return super.templateForToken(e)}}var Q=`.ai-assistance-feedback-row{font-family:var(--default-font-family);width:100%;display:flex;gap:var(--sys-size-8);justify-content:space-between;align-items:center;margin-block:calc(-1 * var(--sys-size-3));.rate-buttons{display:flex;align-items:center;gap:var(--sys-size-2);padding:var(--sys-size-4) 0}.vertical-separator{height:16px;width:1px;vertical-align:top;margin:0 var(--sys-size-2);background:var(--sys-color-divider);display:inline-block}.suggestions-container{overflow:hidden;position:relative;display:flex;.suggestions-scroll-container{display:flex;overflow:auto hidden;scrollbar-width:none;gap:var(--sys-size-3);padding:var(--sys-size-3)}.scroll-button-container{position:absolute;top:0;height:100%;display:flex;align-items:center;width:var(--sys-size-15);z-index:999}.scroll-button-container.hidden{display:none}.scroll-button-container.left{left:0;background:linear-gradient(90deg,var(--sys-color-cdt-base-container) 0%,var(--sys-color-cdt-base-container) 50%,transparent)}.scroll-button-container.right{right:0;background:linear-gradient(90deg,transparent,var(--sys-color-cdt-base-container) 50%);justify-content:flex-end}}}.feedback-form{display:flex;flex-direction:column;gap:var(--sys-size-5);margin-top:var(--sys-size-4);background-color:var(--sys-color-surface3);padding:var(--sys-size-6);border-radius:var(--sys-shape-corner-medium-small);max-width:var(--sys-size-32);.feedback-input{height:var(--sys-size-11);padding:0 var(--sys-size-5);background-color:var(--sys-color-surface3);width:auto}.feedback-input::placeholder{color:var(--sys-color-on-surface-subtle);font:var(--sys-typescale-body4-regular)}.feedback-header{display:flex;justify-content:space-between;align-items:center}.feedback-title{margin:0;font:var(--sys-typescale-body3-medium)}.feedback-disclaimer{padding:0 var(--sys-size-4)}}\n/*# sourceURL=${import.meta.resolve("././components/userActionRow.css")} */\n`;const{html:Z,Directives:{ref:J}}=l,ee="Good response",te="Bad response",se="Provide additional feedback",ne="Submitted feedback will also include your conversation",ie="Submit",oe="Why did you choose this rating? (optional)",ae="Close",re="Report legal issue",le="Scroll to next suggestions",ce="Scroll to previous suggestions",de=n.i18n.lockedString,he=(e,t,s)=>{l.render(Z`
116
+ <style>${A.textInputStylesRaw.cssText}</style>
117
+ <style>${Q}</style>
118
+ <div class="ai-assistance-feedback-row">
119
+ <div class="rate-buttons">
120
+ ${e.showRateButtons?Z`
121
+ <devtools-button
122
+ .data=${{variant:"icon",size:"SMALL",iconName:"thumb-up",toggledIconName:"thumb-up-filled",toggled:"POSITIVE"===e.currentRating,toggleType:"primary-toggle",title:de(ee),jslogContext:"thumbs-up"}}
123
+ @click=${()=>e.onRatingClick("POSITIVE")}
124
+ ></devtools-button>
125
+ <devtools-button
126
+ .data=${{variant:"icon",size:"SMALL",iconName:"thumb-down",toggledIconName:"thumb-down-filled",toggled:"NEGATIVE"===e.currentRating,toggleType:"primary-toggle",title:de(te),jslogContext:"thumbs-down"}}
127
+ @click=${()=>e.onRatingClick("NEGATIVE")}
128
+ ></devtools-button>
129
+ <div class="vertical-separator"></div>
130
+ `:l.nothing}
131
+ <devtools-button
132
+ .data=${{variant:"icon",size:"SMALL",title:de(re),iconName:"report",jslogContext:"report"}}
133
+ @click=${e.onReportClick}
134
+ ></devtools-button>
135
+ </div>
136
+ ${e.suggestions?Z`<div class="suggestions-container">
137
+ <div class="scroll-button-container left hidden" ${J((e=>{t.suggestionsLeftScrollButtonContainer=e}))}>
138
+ <devtools-button
139
+ class='scroll-button'
140
+ .data=${{variant:"icon",size:"SMALL",iconName:"chevron-left",title:de(ce),jslogContext:"chevron-left"}}
141
+ @click=${()=>e.scrollSuggestionsScrollContainer("left")}
142
+ ></devtools-button>
143
+ </div>
144
+ <div class="suggestions-scroll-container" @scroll=${e.onSuggestionsScrollOrResize} ${J((e=>{t.suggestionsScrollContainer=e}))}>
145
+ ${e.suggestions.map((t=>Z`<devtools-button
146
+ class='suggestion'
147
+ .data=${{variant:"outlined",title:t,jslogContext:"suggestion"}}
148
+ @click=${()=>e.onSuggestionClick(t)}
149
+ >${t}</devtools-button>`))}
150
+ </div>
151
+ <div class="scroll-button-container right hidden" ${J((e=>{t.suggestionsRightScrollButtonContainer=e}))}>
152
+ <devtools-button
153
+ class='scroll-button'
154
+ .data=${{variant:"icon",size:"SMALL",iconName:"chevron-right",title:de(le),jslogContext:"chevron-right"}}
155
+ @click=${()=>e.scrollSuggestionsScrollContainer("right")}
156
+ ></devtools-button>
157
+ </div>
158
+ </div>`:l.nothing}
159
+ </div>
160
+ ${e.isShowingFeedbackForm?Z`
161
+ <form class="feedback-form" @submit=${e.onSubmit}>
162
+ <div class="feedback-header">
163
+ <h4 class="feedback-title">${de(oe)}</h4>
164
+ <devtools-button
165
+ aria-label=${de(ae)}
166
+ @click=${e.onClose}
167
+ .data=${{variant:"icon",iconName:"cross",size:"SMALL",title:de(ae),jslogContext:"close"}}
168
+ ></devtools-button>
169
+ </div>
170
+ <input
171
+ type="text"
172
+ class="devtools-text-input feedback-input"
173
+ @input=${t=>e.onInputChange(t.target.value)}
174
+ placeholder=${de(se)}
175
+ jslog=${u.textField("feedback").track({keydown:"Enter"})}
176
+ >
177
+ <span class="feedback-disclaimer">${de(ne)}</span>
178
+ <div>
179
+ <devtools-button
180
+ aria-label=${de(ie)}
181
+ .data=${{type:"submit",disabled:e.isSubmitButtonDisabled,variant:"outlined",size:"SMALL",title:de(ie),jslogContext:"send"}}
182
+ >${de(ie)}</devtools-button>
183
+ </div>
184
+ </div>
185
+ </form>
186
+ `:l.nothing}
187
+ `,s,{host:s})};let ge=class extends e.Widget.Widget{showRateButtons=!1;onFeedbackSubmit=()=>{};suggestions;onSuggestionClick=()=>{};canShowFeedbackForm=!1;#m=new ResizeObserver((()=>this.#f()));#y=new t.Throttler.Throttler(50);#b="";#w;#C=!1;#k=!0;view;#t={};constructor(e,t){super(!1,!1,e),this.view=t??he}wasShown(){super.wasShown(),this.performUpdate(),this.#x(),this.#t.suggestionsScrollContainer&&this.#m.observe(this.#t.suggestionsScrollContainer)}performUpdate(){this.view({onSuggestionClick:this.onSuggestionClick,onRatingClick:this.#S.bind(this),onReportClick:()=>e.UIUtils.openInNewTab("https://support.google.com/legal/troubleshooter/1114905?hl=en#ts=1115658%2C13380504"),scrollSuggestionsScrollContainer:this.#A.bind(this),onSuggestionsScrollOrResize:this.#f.bind(this),onSubmit:this.#I.bind(this),onClose:this.#T.bind(this),onInputChange:this.#$.bind(this),isSubmitButtonDisabled:this.#k,showRateButtons:this.showRateButtons,suggestions:this.suggestions,currentRating:this.#w,isShowingFeedbackForm:this.#C},this.#t,this.contentElement)}#$(e){this.#b=e;const t=!e;t!==this.#k&&(this.#k=t,this.performUpdate())}#x=()=>{const e=this.#t.suggestionsScrollContainer,t=this.#t.suggestionsLeftScrollButtonContainer,s=this.#t.suggestionsRightScrollButtonContainer;if(!e||!t||!s)return;const n=e.scrollLeft>1,i=e.scrollLeft+e.offsetWidth+1<e.scrollWidth;t.classList.toggle("hidden",!n),s.classList.toggle("hidden",!i)};disconnectedCallback(){this.#m.disconnect()}#f(){this.#y.schedule((()=>(this.#x(),Promise.resolve())))}#A(e){const t=this.#t.suggestionsScrollContainer;t&&t.scroll({top:0,left:"left"===e?t.scrollLeft-t.clientWidth:t.scrollLeft+t.clientWidth,behavior:"smooth"})}#S(e){if(this.#w===e)return this.#w=void 0,this.#C=!1,this.#k=!0,this.onFeedbackSubmit("SENTIMENT_UNSPECIFIED"),void this.performUpdate();this.#w=e,this.#C=this.canShowFeedbackForm,this.onFeedbackSubmit(e),this.performUpdate()}#T(){this.#C=!1,this.#k=!0,this.performUpdate()}#I(e){e.preventDefault();const t=this.#b;this.#w&&t&&(this.onFeedbackSubmit(this.#w,t),this.#C=!1,this.#k=!0,this.performUpdate())}};var ue=Object.freeze({__proto__:null,DEFAULT_VIEW:he,UserActionRow:ge});const pe=new CSSStyleSheet;pe.replaceSync(X.cssText);const{html:ve,Directives:{ifDefined:me,ref:fe}}=l,ye={notLoggedIn:"This feature is only available when you are signed into Chrome with your Google account",offline:"Check your internet connection and try again",settingsLink:"AI assistance in Settings",turnOnForStyles:"Turn on {PH1} to get help with understanding CSS styles",turnOnForStylesAndRequests:"Turn on {PH1} to get help with styles and network requests",turnOnForStylesRequestsAndFiles:"Turn on {PH1} to get help with styles, network requests, and files",turnOnForStylesRequestsPerformanceAndFiles:"Turn on {PH1} to get help with styles, network requests, performance, and files",learnAbout:"Learn about AI in DevTools",notAvailableInIncognitoMode:"AI assistance is not available in Incognito mode or Guest mode"},be="Send",we="Start new chat",Ce="Cancel",ke="Select an element",xe="No element selected",Se="How can I help you?",Ae="Explore AI assistance",Ie="Something unforeseen happened and I can no longer continue. Try your request again and see if that resolves the issue. If this keeps happening, update Chrome to the latest version.",Te="Seems like I am stuck with the investigation. It would be better if you start over.",$e="You stopped this response",Ee="This code may modify page content. Continue?",Re="Continue",ze="Cancel",Le="AI",Me="You",Fe="Investigating",Oe="Paused",Pe="Code executed",je="Code to execute",De="Data returned",Ne="Completed",Ue="Canceled",qe="You're viewing a past conversation.",Be="Take screenshot",_e="Remove image input",Ve="Image input sent to the model",He="Account avatar",We="Open image in a new tab",Ge="Image unavailable",Ke=n.i18n.registerUIStrings("panels/ai_assistance/components/ChatView.ts",ye),Xe=n.i18n.getLocalizedString.bind(void 0,Ke),Ye=n.i18n.lockedString,Qe="image/jpeg";class Ze extends HTMLElement{#E=this.attachShadow({mode:"open"});#R=new Y;#z;#L;#M;#F=l.Directives.createRef();#O=new ResizeObserver((()=>this.#P()));#j=!0;constructor(e){super(),this.#L=e}set props(e){this.#R=new Y,this.#L=e,this.#D()}connectedCallback(){this.#E.adoptedStyleSheets=[pe],this.#D(),this.#M&&this.#O.observe(this.#M)}disconnectedCallback(){this.#O.disconnect()}focusTextInput(){const e=this.#E.querySelector(".chat-input");e&&e.focus()}restoreScrollPosition(){void 0!==this.#z&&this.#F?.value&&(this.#F.value.scrollTop=this.#z)}scrollToBottom(){this.#F?.value&&(this.#F.value.scrollTop=this.#F.value.scrollHeight)}#P(){this.#j&&this.#F?.value&&this.#j&&(this.#F.value.scrollTop=this.#F.value.scrollHeight)}#N(e){const t=this.#E.querySelector(".chat-input");t&&(t.value=e,this.#L.onTextInputChange(e))}#U(e){this.#M=e,e?this.#O.observe(e):(this.#j=!0,this.#O.disconnect())}#q=e=>{e.target&&e.target instanceof HTMLElement&&(this.#z=e.target.scrollTop,this.#j=e.target.scrollTop+e.target.clientHeight+1>e.target.scrollHeight)};#I=e=>{if(e.preventDefault(),this.#L.imageInput?.isLoading)return;const t=this.#E.querySelector(".chat-input");if(!t?.value)return;const s=!this.#L.imageInput?.isLoading&&this.#L.imageInput?.data?{inlineData:{data:this.#L.imageInput.data,mimeType:Qe}}:void 0;this.#L.onTextSubmit(t.value,s),t.value=""};#B=e=>{if(e.target&&e.target instanceof HTMLTextAreaElement&&"Enter"===e.key&&!e.shiftKey){if(e.preventDefault(),!e.target?.value||this.#L.imageInput?.isLoading)return;const t=!this.#L.imageInput?.isLoading&&this.#L.imageInput?.data?{inlineData:{data:this.#L.imageInput.data,mimeType:Qe}}:void 0;this.#L.onTextSubmit(e.target.value,t),e.target.value=""}};#_=e=>{e.preventDefault(),this.#L.isLoading&&this.#L.onCancelClick()};#V=e=>{this.#N(e),this.focusTextInput(),s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceDynamicSuggestionClicked)};#D(){l.render(ve`
188
+ <div class="chat-ui">
189
+ <main @scroll=${this.#q} ${fe(this.#F)}>
190
+ ${function({state:t,aidaAvailability:s,messages:o,isLoading:r,isReadOnly:c,canShowFeedbackForm:d,isTextInputDisabled:h,suggestions:g,userInfo:p,markdownRenderer:v,conversationType:m,changeSummary:f,changeManager:y,onSuggestionClick:b,onFeedbackSubmit:w,onMessageContainerRef:C}){if("consent-view"===t)return et(function(){const t=document.createElement("button");let s;t.textContent=Xe(ye.settingsLink),t.classList.add("link"),e.ARIAUtils.markAsLink(t),t.addEventListener("click",(()=>{e.ViewManager.ViewManager.instance().showView("chrome-ai")})),t.setAttribute("jslog",`${u.action("open-ai-settings").track({click:!0})}`);const o=i.Runtime.hostConfig;if(o.isOffTheRecord)return ve`${Xe(ye.notAvailableInIncognitoMode)}`;s=o.devToolsAiAssistancePerformanceAgent?.enabled?n.i18n.getFormatLocalizedString(Ke,ye.turnOnForStylesRequestsPerformanceAndFiles,{PH1:t}):o.devToolsAiAssistanceFileAgent?.enabled?n.i18n.getFormatLocalizedString(Ke,ye.turnOnForStylesRequestsAndFiles,{PH1:t}):o.devToolsAiAssistanceNetworkAgent?.enabled?n.i18n.getFormatLocalizedString(Ke,ye.turnOnForStylesAndRequests,{PH1:t}):n.i18n.getFormatLocalizedString(Ke,ye.turnOnForStyles,{PH1:t});return ve`${s}`}());if("available"!==s)return et(function(e){switch(e){case"no-account-email":case"sync-is-paused":return ve`${Xe(ye.notLoggedIn)}`;case"no-internet":return ve`${Xe(ye.offline)}`}}(s));if(!m)return function(){const t=i.Runtime.hostConfig,s=[...t.devToolsFreestyler?.enabled?[{icon:"brush-2",heading:"CSS styles",content:ve`Open <button class="link" role="link" jslog=${u.link("open-elements-panel").track({click:!0})} @click=${()=>{e.ViewManager.ViewManager.instance().showView("elements")}}>Elements</button> to ask about CSS styles`}]:[],...t.devToolsAiAssistanceNetworkAgent?.enabled?[{icon:"arrow-up-down",heading:"Network",content:ve`Open <button class="link" role="link" jslog=${u.link("open-network-panel").track({click:!0})} @click=${()=>{e.ViewManager.ViewManager.instance().showView("network")}}>Network</button> to ask about a request's details`}]:[],...t.devToolsAiAssistanceFileAgent?.enabled?[{icon:"document",heading:"Files",content:ve`Open <button class="link" role="link" jslog=${u.link("open-sources-panel").track({click:!0})} @click=${()=>{e.ViewManager.ViewManager.instance().showView("sources")}}>Sources</button> to ask about a file's content`}]:[],...t.devToolsAiAssistancePerformanceAgent?.enabled?[{icon:"performance",heading:"Performance",content:ve`Open <button class="link" role="link" jslog=${u.link("open-performance-panel").track({click:!0})} @click=${()=>{e.ViewManager.ViewManager.instance().showView("timeline")}}>Performance</button> to ask about a trace item`}]:[]];return ve`
191
+ <div class="empty-state-container">
192
+ <div class="header">
193
+ <div class="icon">
194
+ <devtools-icon
195
+ name="smart-assistant"
196
+ ></devtools-icon>
197
+ </div>
198
+ <h1>${Ye(Ae)}</h1>
199
+ <p>To chat about an item, right-click and select <strong>Ask AI</strong></p>
200
+ </div>
201
+ <div class="empty-state-content">
202
+ ${s.map((e=>ve`
203
+ <div class="feature-card">
204
+ <div class="feature-card-icon">
205
+ <devtools-icon name=${e.icon}></devtools-icon>
206
+ </div>
207
+ <div class="feature-card-content">
208
+ <h3>${e.heading}</h3>
209
+ <p>${e.content}</p>
210
+ </div>
211
+ </div>
212
+ `))}
213
+ </div>
214
+ </div>`}();if(o.length>0)return function({messages:t,isLoading:s,isReadOnly:n,canShowFeedbackForm:i,userInfo:o,markdownRenderer:r,changeSummary:c,changeManager:d,onSuggestionClick:h,onFeedbackSubmit:g,onMessageContainerRef:p}){function v(){return s?l.nothing:ve`<devtools-widget
215
+ .widgetConfig=${e.Widget.widgetConfig(W,{changeSummary:c,changeManager:d})}
216
+ ></devtools-widget>`}return ve`
217
+ <div class="messages-container" ${fe(p)}>
218
+ ${t.map(((t,c,d)=>function({message:t,isLoading:s,isReadOnly:n,canShowFeedbackForm:i,isLast:o,userInfo:r,markdownRenderer:c,onSuggestionClick:d,onFeedbackSubmit:h}){if("user"===t.entity){const e=r.accountFullName||Ye(Me),s=r.accountImage?ve`<img src="data:image/png;base64, ${r.accountImage}" alt=${He} />`:ve`<devtools-icon
219
+ .name=${"profile"}
220
+ ></devtools-icon>`,n=t.imageInput&&"inlineData"in t.imageInput?function(e){if(e.data===a.NOT_FOUND_IMAGE_DATA)return ve`<div class="unavailable-image" title=${Ge}>
221
+ <devtools-icon name='file-image'></devtools-icon>
222
+ </div>`;const t=`data:image/jpeg;base64,${e.data}`;return ve`<x-link
223
+ class="image-link" title=${We}
224
+ href=${t}
225
+ >
226
+ <img src=${t} alt=${Ve} />
227
+ </x-link>`}(t.imageInput.inlineData):l.nothing;return ve`<section
228
+ class="chat-message query"
229
+ jslog=${u.section("question")}
230
+ >
231
+ <div class="message-info">
232
+ ${s}
233
+ <div class="message-name">
234
+ <h2>${e}</h2>
235
+ </div>
236
+ </div>
237
+ ${n}
238
+ <div class="message-content">${Je(t.text,c)}</div>
239
+ </section>`}return ve`
240
+ <section
241
+ class="chat-message answer"
242
+ jslog=${u.section("answer")}
243
+ >
244
+ <div class="message-info">
245
+ <devtools-icon name="smart-assistant"></devtools-icon>
246
+ <div class="message-name">
247
+ <h2>${Ye(Le)}</h2>
248
+ </div>
249
+ </div>
250
+ ${l.Directives.repeat(t.steps,((e,t)=>t),(e=>function({step:e,isLoading:t,markdownRenderer:s,isLast:n}){const i=l.Directives.classMap({step:!0,empty:!e.thought&&!e.code&&!e.contextDetails,paused:Boolean(e.sideEffect),canceled:Boolean(e.canceled)});return ve`
251
+ <details class=${i}
252
+ jslog=${u.section("step")}
253
+ .open=${Boolean(e.sideEffect)}>
254
+ <summary>
255
+ <div class="summary">
256
+ ${function({step:e,isLoading:t,isLast:s}){if(t&&s&&!e.sideEffect)return ve`<devtools-spinner></devtools-spinner>`;let n="checkmark",i=Ye(Ne),o="button";s&&e.sideEffect?(o=void 0,i=void 0,n="pause-circle"):e.canceled&&(i=Ye(Ue),n="cross");return ve`<devtools-icon
257
+ class="indicator"
258
+ role=${me(o)}
259
+ aria-label=${me(i)}
260
+ .name=${n}
261
+ ></devtools-icon>`}({step:e,isLoading:t,isLast:n})}
262
+ ${function(e){const t=e.sideEffect?ve`<span class="paused">${Ye(Oe)}: </span>`:l.nothing,s=e.title??`${Ye(Fe)}…`;return ve`<span class="title">${t}${s}</span>`}(e)}
263
+ <devtools-icon
264
+ class="arrow"
265
+ .name=${"chevron-down"}
266
+ ></devtools-icon>
267
+ </div>
268
+ </summary>
269
+ ${function({step:e,markdownRenderer:t,isLast:s}){const n=s&&e.sideEffect?function(e){if(!e.sideEffect)return l.nothing;return ve`<div
270
+ class="side-effect-confirmation"
271
+ jslog=${u.section("side-effect-confirmation")}
272
+ >
273
+ <p>${Ye(Ee)}</p>
274
+ <div class="side-effect-buttons-container">
275
+ <devtools-button
276
+ .data=${{variant:"outlined",jslogContext:"decline-execute-code"}}
277
+ @click=${()=>e.sideEffect?.onAnswer(!1)}
278
+ >${Ye(ze)}</devtools-button>
279
+ <devtools-button
280
+ .data=${{variant:"primary",jslogContext:"accept-execute-code",iconName:"play"}}
281
+ @click=${()=>e.sideEffect?.onAnswer(!0)}
282
+ >${Ye(Re)}</devtools-button>
283
+ </div>
284
+ </div>`}(e):l.nothing,i=e.thought?ve`<p>${Je(e.thought,t)}</p>`:l.nothing,o=e.contextDetails?ve`${l.Directives.repeat(e.contextDetails,(e=>ve`<div class="context-details">
285
+ <devtools-code-block
286
+ .code=${e.text}
287
+ .codeLang=${e.codeLang||""}
288
+ .displayNotice=${!1}
289
+ .header=${e.title}
290
+ .showCopyButton=${!0}
291
+ ></devtools-code-block>
292
+ </div>`))}`:l.nothing;return ve`<div class="step-details">
293
+ ${i}
294
+ ${function(e){if(!e.code&&!e.output)return l.nothing;const t=e.output&&!e.canceled?Ye(Pe):Ye(je),s=e.code?ve`<div class="action-result">
295
+ <devtools-code-block
296
+ .code=${e.code.trim()}
297
+ .codeLang=${"js"}
298
+ .displayNotice=${!Boolean(e.output)}
299
+ .header=${t}
300
+ .showCopyButton=${!0}
301
+ ></devtools-code-block>
302
+ </div>`:l.nothing,n=e.output?ve`<div class="js-code-output">
303
+ <devtools-code-block
304
+ .code=${e.output}
305
+ .codeLang=${"js"}
306
+ .displayNotice=${!0}
307
+ .header=${Ye(De)}
308
+ .showCopyButton=${!1}
309
+ ></devtools-code-block>
310
+ </div>`:l.nothing;return ve`<div class="step-code">${s}${n}</div>`}(e)}
311
+ ${n}
312
+ ${o}
313
+ </div>`}({step:e,markdownRenderer:s,isLast:n})}
314
+ </details>`}({step:e,isLoading:s,markdownRenderer:c,isLast:[...t.steps.values()].at(-1)===e&&o})))}
315
+ ${t.answer?ve`<p>${Je(t.answer,c,{animate:!n&&s&&o})}</p>`:l.nothing}
316
+ ${function(e){if(e.error){let t;switch(e.error){case"unknown":case"block":t=Ie;break;case"max-steps":t=Te;break;case"abort":return ve`<p class="aborted" jslog=${u.section("aborted")}>${Ye($e)}</p>`}return ve`<p class="error" jslog=${u.section("error")}>${Ye(t)}</p>`}return l.nothing}(t)}
317
+ ${o&&s?l.nothing:ve`<devtools-widget class="actions" .widgetConfig=${e.Widget.widgetConfig(ge,{showRateButtons:void 0!==t.rpcId,onFeedbackSubmit:(e,s)=>{t.rpcId&&h(t.rpcId,e,s)},suggestions:o?t.suggestions:void 0,onSuggestionClick:d,canShowFeedbackForm:i})}></devtools-widget>`}
318
+ </section>
319
+ `}({message:t,isLoading:s,isReadOnly:n,canShowFeedbackForm:i,isLast:d.at(-1)===t,userInfo:o,markdownRenderer:r,onSuggestionClick:h,onFeedbackSubmit:g})))}
320
+ ${v()}
321
+ </div>
322
+ `}({messages:o,isLoading:r,isReadOnly:c,canShowFeedbackForm:d,userInfo:p,markdownRenderer:v,changeSummary:f,changeManager:y,onSuggestionClick:b,onFeedbackSubmit:w,onMessageContainerRef:C});return function({isTextInputDisabled:e,suggestions:t,onSuggestionClick:s}){return ve`<div class="empty-state-container">
323
+ <div class="header">
324
+ <div class="icon">
325
+ <devtools-icon
326
+ name="smart-assistant"
327
+ ></devtools-icon>
328
+ </div>
329
+ <h1>${Ye(Se)}</h1>
330
+ </div>
331
+ <div class="empty-state-content">
332
+ ${t.map((t=>ve`<devtools-button
333
+ class="suggestion"
334
+ @click=${()=>s(t)}
335
+ .data=${{variant:"outlined",size:"REGULAR",title:t,jslogContext:"suggestion",disabled:e}}
336
+ >${t}</devtools-button>`))}
337
+ </div>
338
+ </div>`}({isTextInputDisabled:h,suggestions:g,onSuggestionClick:b})}({state:this.#L.state,aidaAvailability:this.#L.aidaAvailability,messages:this.#L.messages,isLoading:this.#L.isLoading,isReadOnly:this.#L.isReadOnly,canShowFeedbackForm:this.#L.canShowFeedbackForm,isTextInputDisabled:this.#L.isTextInputDisabled,suggestions:this.#L.emptyStateSuggestions,userInfo:this.#L.userInfo,markdownRenderer:this.#R,conversationType:this.#L.conversationType,changeSummary:this.#L.changeSummary,changeManager:this.#L.changeManager,onSuggestionClick:this.#V,onFeedbackSubmit:this.#L.onFeedbackSubmit,onMessageContainerRef:this.#U})}
339
+ ${this.#L.isReadOnly?function({onNewConversation:e,conversationType:t}){if(!t)return l.nothing;return ve`<div
340
+ class="chat-readonly-container"
341
+ jslog=${u.section("read-only")}
342
+ >
343
+ <span>${Ye(qe)}</span>
344
+ <devtools-button
345
+ aria-label=${Ye(we)}
346
+ class="chat-inline-button"
347
+ @click=${e}
348
+ .data=${{variant:"text",title:Ye(we),jslogContext:"start-new-chat"}}
349
+ >${Ye(we)}</devtools-button>
350
+ </div>`}({conversationType:this.#L.conversationType,onNewConversation:this.#L.onNewConversation}):function({isLoading:e,blockedByCrossOrigin:t,isTextInputDisabled:s,inputPlaceholder:n,state:i,selectedContext:o,inspectElementToggled:a,multimodalInputEnabled:r,conversationType:c,imageInput:d,isTextInputEmpty:h,onContextClick:g,onInspectElementClick:p,onSubmit:v,onTextAreaKeyDown:m,onCancel:f,onNewConversation:y,onTakeScreenshot:b,onRemoveImageInput:w,onTextInputChange:C}){if(!c)return l.nothing;const k=l.Directives.classMap({"chat-input":!0,"two-big-buttons":t,"screenshot-button":Boolean(r)&&!t}),x=l.Directives.classMap({"chat-input-container":!0,disabled:s});return ve`
351
+ <form class="input-form" @submit=${v}>
352
+ <div class="input-form-shadow-container">
353
+ <div class="input-form-shadow"></div>
354
+ </div>
355
+ ${"consent-view"!==i?ve`
356
+ <div class="input-header">
357
+ <div class="header-link-container">
358
+ ${function({selectedContext:e,inspectElementToggled:t,conversationType:s,onContextClick:n,onInspectElementClick:i}){if(!s)return l.nothing;const o="freestyler"===s,a=l.Directives.classMap({"not-selected":!e,"resource-link":!0,"allow-overflow":o});if(!e&&!o)return l.nothing;const r=e?.getIcon()??l.nothing,c=e=>{"Enter"!==e.key&&" "!==e.key||n()};return ve`<div class="select-element">
359
+ ${o?ve`
360
+ <devtools-button
361
+ .data=${{variant:"icon_toggle",size:"REGULAR",iconName:"select-element",toggledIconName:"select-element",toggleType:"primary-toggle",toggled:t,title:Ye(ke),jslogContext:"select-element"}}
362
+ @click=${i}
363
+ ></devtools-button>
364
+ `:l.nothing}
365
+ <div
366
+ role=button
367
+ class=${a}
368
+ tabindex=${o?"-1":"0"}
369
+ @click=${n}
370
+ @keydown=${c}
371
+ >
372
+ ${r}${e?.getTitle()??ve`<span>${Ye(xe)}</span>`}
373
+ </div>
374
+ </div>`}({selectedContext:o,inspectElementToggled:a,conversationType:c,onContextClick:g,onInspectElementClick:p})}
375
+ </div>
376
+ </div>
377
+ `:l.nothing}
378
+ <div class=${x}>
379
+ ${function({multimodalInputEnabled:e,imageInput:t,onRemoveImageInput:s}){if(!e||!t)return l.nothing;const n=ve`<devtools-button
380
+ aria-label=${Ye(_e)}
381
+ @click=${s}
382
+ .data=${{variant:"icon",size:"MICRO",iconName:"cross",title:Ye(_e)}}
383
+ ></devtools-button>`;if(t.isLoading)return ve`<div class="image-input-container">
384
+ ${n}
385
+ <div class="loading">
386
+ <devtools-spinner></devtools-spinner>
387
+ </div>
388
+ </div>`;return ve`
389
+ <div class="image-input-container">
390
+ ${n}
391
+ <img src="data:image/jpeg;base64, ${t.data}" alt="Screenshot input" />
392
+ </div>`}({multimodalInputEnabled:r,imageInput:d,onRemoveImageInput:w})}
393
+ <textarea class=${k}
394
+ .disabled=${s}
395
+ wrap="hard"
396
+ maxlength="10000"
397
+ @keydown=${m}
398
+ @input=${e=>C(e.target.value)}
399
+ placeholder=${n}
400
+ jslog=${u.textField("query").track({keydown:"Enter"})}
401
+ ></textarea>
402
+ <div class="chat-input-buttons">
403
+ ${function({multimodalInputEnabled:e,blockedByCrossOrigin:t,isTextInputDisabled:s,imageInput:n,onTakeScreenshot:i}){if(!e||t)return l.nothing;return ve`<devtools-button
404
+ class="chat-input-button"
405
+ aria-label=${Ye(Be)}
406
+ @click=${i}
407
+ .data=${{variant:"icon",size:"REGULAR",disabled:s||n?.isLoading,iconName:"photo-camera",title:Ye(Be),jslogContext:"take-screenshot"}}
408
+ ></devtools-button>`}({multimodalInputEnabled:r,blockedByCrossOrigin:t,isTextInputDisabled:s,imageInput:d,onTakeScreenshot:b})}
409
+ ${function({isLoading:e,blockedByCrossOrigin:t,isTextInputDisabled:s,isTextInputEmpty:n,imageInput:i,onCancel:o,onNewConversation:a}){if(e)return ve`<devtools-button
410
+ class="chat-input-button"
411
+ aria-label=${Ye(Ce)}
412
+ @click=${o}
413
+ .data=${{variant:"icon",size:"REGULAR",iconName:"record-stop",title:Ye(Ce),jslogContext:"stop"}}
414
+ ></devtools-button>`;if(t)return ve`
415
+ <devtools-button
416
+ class="chat-input-button"
417
+ aria-label=${Ye(we)}
418
+ @click=${a}
419
+ .data=${{variant:"primary",size:"REGULAR",title:Ye(we),jslogContext:"start-new-chat"}}
420
+ >${Ye(we)}</devtools-button>
421
+ `;return ve`<devtools-button
422
+ class="chat-input-button"
423
+ aria-label=${Ye(be)}
424
+ .data=${{type:"submit",variant:"icon",size:"REGULAR",disabled:s||n||i?.isLoading,iconName:"send",title:Ye(be),jslogContext:"send"}}
425
+ ></devtools-button>`}({isLoading:e,blockedByCrossOrigin:t,isTextInputDisabled:s,isTextInputEmpty:h,imageInput:d,onCancel:f,onNewConversation:y})}
426
+ </div>
427
+ </div>
428
+ </form>`}({isLoading:this.#L.isLoading,blockedByCrossOrigin:this.#L.blockedByCrossOrigin,isTextInputDisabled:this.#L.isTextInputDisabled,inputPlaceholder:this.#L.inputPlaceholder,state:this.#L.state,selectedContext:this.#L.selectedContext,inspectElementToggled:this.#L.inspectElementToggled,multimodalInputEnabled:this.#L.multimodalInputEnabled,conversationType:this.#L.conversationType,imageInput:this.#L.imageInput,isTextInputEmpty:this.#L.isTextInputEmpty,onContextClick:this.#L.onContextClick,onInspectElementClick:this.#L.onInspectElementClick,onSubmit:this.#I,onTextAreaKeyDown:this.#B,onCancel:this.#_,onNewConversation:this.#L.onNewConversation,onTakeScreenshot:this.#L.onTakeScreenshot,onRemoveImageInput:this.#L.onRemoveImageInput,onTextInputChange:this.#L.onTextInputChange})}
429
+ </main>
430
+ <footer class="disclaimer" jslog=${u.section("footer")}>
431
+ <p class="disclaimer-text">
432
+ ${this.#L.disclaimerText}
433
+ <button
434
+ class="link"
435
+ role="link"
436
+ jslog=${u.link("open-ai-settings").track({click:!0})}
437
+ @click=${()=>{e.ViewManager.ViewManager.instance().showView("chrome-ai")}}
438
+ >${Xe(ye.learnAbout)}</button>
439
+ </p>
440
+ </footer>
441
+ </div>
442
+ `,this.#E,{host:this})}}function Je(e,t,{animate:s,ref:n}={}){let i=[];try{i=w.Marked.lexer(e);for(const e of i)t.renderToken(e)}catch{return ve`${e}`}return ve`<devtools-markdown-view
443
+ .data=${{tokens:i,renderer:t,animationEnabled:s}}
444
+ ${n?fe(n):l.nothing}>
445
+ </devtools-markdown-view>`}function et(e){return ve`
446
+ <div class="empty-state-container">
447
+ <div class="disabled-view">
448
+ <div class="disabled-view-icon-container">
449
+ <devtools-icon .data=${{iconName:"smart-assistant",width:"var(--sys-size-8)",height:"var(--sys-size-8)"}}>
450
+ </devtools-icon>
451
+ </div>
452
+ <div>
453
+ ${e}
454
+ </div>
455
+ </div>
456
+ </div>
457
+ `}customElements.define("devtools-ai-chat-view",Ze);const{html:tt}=l,st={newChat:"New chat",help:"Help",settings:"Settings",sendFeedback:"Send feedback",newChatCreated:"New chat created",chatDeleted:"Chat deleted",history:"History",deleteChat:"Delete local chat",clearChatHistory:"Clear local chats",noPastConversations:"No past conversations",followTheSteps:"Follow the steps above to ask a question",inputDisclaimerForEmptyState:"This is an experimental AI feature and won't always get it right."},nt="Answer loading",it="Answer ready",ot="To talk about data from another origin, start a new chat",at="Ask a question about the selected element",rt="Ask a question about the selected network request",lt="Ask a question about the selected file",ct="Ask a question about the selected item and its call tree",dt="Select an element to ask a question",ht="Select a network request to ask a question",gt="Select a file to ask a question",ut="Select an item to ask a question",pt="Ask a question about the selected performance insight",vt="Select a performance insight to ask a question",mt="Chat messages and any data the inspected page can access via Web APIs are sent to Google and may be seen by human reviewers to improve this feature. This is an experimental AI feature and won’t always get it right.",ft="Chat messages and any data the inspected page can access via Web APIs are sent to Google. The content you submit and that is generated by this feature will not be used to improve Google’s AI models. This is an experimental AI feature and won’t always get it right.",yt="Chat messages and the selected network request are sent to Google and may be seen by human reviewers to improve this feature. This is an experimental AI feature and won’t always get it right.",bt="Chat messages and the selected network request are sent to Google. The content you submit and that is generated by this feature will not be used to improve Google’s AI models. This is an experimental AI feature and won’t always get it right.",wt="Chat messages and the selected file are sent to Google and may be seen by human reviewers to improve this feature. This is an experimental AI feature and won't always get it right.",Ct="Chat messages and the selected file are sent to Google. The content you submit and that is generated by this feature will not be used to improve Google’s AI models. This is an experimental AI feature and won’t always get it right.",kt="Chat messages and trace data from your performance trace are sent to Google and may be seen by human reviewers to improve this feature. This is an experimental AI feature and won't always get it right.",xt="Chat messages and data from your performance trace are sent to Google. The content you submit and that is generated by this feature will not be used to improve Google’s AI models. This is an experimental AI feature and won’t always get it right.",St=n.i18n.registerUIStrings("panels/ai_assistance/AiAssistancePanel.ts",st),At=n.i18n.getLocalizedString.bind(void 0,St),It=n.i18n.lockedString;function Tt(e){return e&&e.nodeType()===Node.ELEMENT_NODE?e:null}function $t(e,t){if(e){const t=e.getSuggestions();if(t)return t}if(!t)return[];switch(t){case"freestyler":return["What can you help me with?","Why isn’t this element visible?","How do I center this element?"];case"drjones-file":return["What does this script do?","Is the script optimized for performance?","Does the script handle user input safely?"];case"drjones-network-request":return["Why is this network request taking so long?","Are there any security headers present?","Why is the request failing?"];case"drjones-performance":return["Identify performance issues in this call tree","Where is most of the time being spent in this call tree?","How can I reduce the time of this call tree?"];case"performance-insight":return["Help me optimize my LCP","Help me optimize my INP","For now"]}}function Et(e,t,s){l.render(tt`
458
+ ${function(e){return tt`
459
+ <div class="toolbar-container" role="toolbar" .jslogContext=${u.toolbar()}>
460
+ <devtools-toolbar class="freestyler-left-toolbar" role="presentation">
461
+ <devtools-button
462
+ title=${At(st.newChat)}
463
+ aria-label=${At(st.newChat)}
464
+ .iconName=${"plus"}
465
+ .jslogContext=${"freestyler.new-chat"}
466
+ .variant=${"toolbar"}
467
+ @click=${e.onNewChatClick}></devtools-button>
468
+ <div class="toolbar-divider"></div>
469
+ <devtools-button
470
+ title=${At(st.history)}
471
+ aria-label=${At(st.history)}
472
+ .iconName=${"history"}
473
+ .jslogContext=${"freestyler.history"}
474
+ .variant=${"toolbar"}
475
+ @click=${e.onHistoryClick}></devtools-button>
476
+ ${e.isDeleteHistoryButtonVisible?tt`<devtools-button
477
+ title=${At(st.deleteChat)}
478
+ aria-label=${At(st.deleteChat)}
479
+ .iconName=${"bin"}
480
+ .jslogContext=${"freestyler.delete"}
481
+ .variant=${"toolbar"}
482
+ @click=${e.onDeleteClick}></devtools-button>`:l.nothing}
483
+ </devtools-toolbar>
484
+ <devtools-toolbar class="freestyler-right-toolbar" role="presentation">
485
+ <x-link
486
+ class="toolbar-feedback-link devtools-link"
487
+ title=${st.sendFeedback}
488
+ href=${"https://crbug.com/364805393"}
489
+ jslog=${u.link().track({click:!0,keydown:"Enter|Space"}).context("freestyler.send-feedback")}
490
+ >${st.sendFeedback}</x-link>
491
+ <div class="toolbar-divider"></div>
492
+ <devtools-button
493
+ title=${At(st.help)}
494
+ aria-label=${At(st.help)}
495
+ .iconName=${"help"}
496
+ .jslogContext=${"freestyler.help"}
497
+ .variant=${"toolbar"}
498
+ @click=${e.onHelpClick}></devtools-button>
499
+ <devtools-button
500
+ title=${At(st.settings)}
501
+ aria-label=${At(st.settings)}
502
+ .iconName=${"gear"}
503
+ .jslogContext=${"freestyler.settings"}
504
+ .variant=${"toolbar"}
505
+ @click=${e.onSettingsClick}></devtools-button>
506
+ </devtools-toolbar>
507
+ </div>
508
+ `}(e)}
509
+ <div class="chat-container">
510
+ <devtools-ai-chat-view .props=${e} ${l.Directives.ref((e=>{e&&e instanceof Ze&&(t.chatView=e)}))}></devtools-ai-chat-view>
511
+ </div>
512
+ `,s,{host:e})}function Rt(e){return e?new a.NodeContext(e):null}let zt;class Lt extends e.Panel.Panel{view;static panelName="freestyler";#H;#s;#t={};#W=function(){return!i.Runtime.hostConfig.aidaAvailability?.disallowLogging}();#G;#K=new a.ChangeManager;#X=new t.Mutex.Mutex;#Y;#Q;#Z=[];#J=null;#ee=null;#te=null;#se=null;#ne=null;#ie=[];#oe=!1;#ae=!1;#re=null;#le;#ce;#de;#he=!0;constructor(t=Et,{aidaClient:s,aidaAvailability:n,syncInfo:i}){super(Lt.panelName),this.view=t,this.registerRequiredCSS(I),this.#G=this.#ge(),this.#H=e.ActionRegistry.ActionRegistry.instance().getAction("elements.toggle-element-search"),this.#s=s,this.#le=n,this.#ce={accountImage:i.accountImage,accountFullName:i.accountFullName},this.#Z=a.AiHistoryStorage.instance().getHistory().map((e=>new a.Conversation(e.type,e.history,e.id,!0)))}#ue(){const e=!0===i.Runtime.hostConfig.aidaAvailability?.blockedByAge;return this.#G?.getIfNotDisabled()&&!e?"chat-view":"consent-view"}#ge(){try{return t.Settings.moduleSetting("ai-assistance-enabled")}catch{return}}#pe(e){const t={aidaClient:this.#s,serverSideLoggingEnabled:this.#W};let s;switch(e){case"freestyler":s=new a.StylingAgent({...t,changeManager:this.#K}),Boolean(i.Runtime.hostConfig.devToolsFreestyler?.functionCalling)&&(s=new a.StylingAgentWithFunctionCalling({...t,changeManager:this.#K}));break;case"drjones-network-request":s=new a.NetworkAgent(t);break;case"drjones-file":s=new a.FileAgent(t);break;case"drjones-performance":s=new a.PerformanceAgent(t);break;case"performance-insight":s=new a.PerformanceInsightsAgent(t)}return s}static async instance(e={forceNew:null}){const{forceNew:t}=e;if(!zt||t){const e=new s.AidaClient.AidaClient,t=new Promise((e=>s.InspectorFrontendHost.InspectorFrontendHostInstance.getSyncInformation(e))),[n,i]=await Promise.all([s.AidaClient.AidaClient.checkAccessPreconditions(),t]);zt=new Lt(Et,{aidaClient:e,aidaAvailability:n,syncInfo:i})}return zt}#ve(){if(this.#Y&&this.#Q&&!this.#Q.isEmpty||this.#ae)return;const{hostConfig:t}=i.Runtime,s=Boolean(e.Context.Context.instance().flavor(p.ElementsPanel.ElementsPanel)),n=Boolean(e.Context.Context.instance().flavor(m.NetworkPanel.NetworkPanel)),o=Boolean(e.Context.Context.instance().flavor(f.SourcesPanel.SourcesPanel)),a=Boolean(e.Context.Context.instance().flavor(y.TimelinePanel.TimelinePanel)),r=Boolean(e.Context.Context.instance().flavor(y.TimelinePanel.SelectedInsight));let l;if(s&&t.devToolsFreestyler?.enabled?l="freestyler":n&&t.devToolsAiAssistanceNetworkAgent?.enabled?l="drjones-network-request":o&&t.devToolsAiAssistanceFileAgent?.enabled?l="drjones-file":a&&t.devToolsAiAssistancePerformanceAgent?.enabled&&t.devToolsAiAssistancePerformanceAgent?.insightsEnabled&&r?l="performance-insight":a&&t.devToolsAiAssistancePerformanceAgent?.enabled&&(l="drjones-performance"),this.#Y?.type===l)return;const c=l?this.#pe(l):void 0;this.#me(c)}#me(e){const t=e instanceof a.AiAgent?e:void 0,s=e instanceof a.Conversation?e:void 0;this.#Y!==t&&(this.#fe(),this.#ie=[],this.#ae=!1,this.#Q?.archiveConversation(),this.#Y=t,t&&(this.#Q=new a.Conversation(function(e){switch(e){case"freestyler":return"freestyler";case"drjones-network-request":return"drjones-network-request";case"drjones-file":return"drjones-file";case"drjones-performance":return"drjones-performance";case"performance-insight":return"performance-insight";case"patch":throw new Error("PATCH AiAssistanceModel.AgentType does not have a corresponding AiAssistanceModels.ConversationType.")}}(t.type),[],t.id,!1),this.#Z.push(this.#Q))),t||(this.#Q=void 0,this.#ie=[],s&&(this.#Q=s)),this.#Y||this.#Q||this.#ve(),this.#ye(),this.requestUpdate()}wasShown(){var t,n,i,l;super.wasShown(),this.#t.chatView?.restoreScrollPosition(),this.#t.chatView?.focusTextInput(),this.#be(),this.#ee=Rt(Tt(e.Context.Context.instance().flavor(o.DOMModel.DOMNode))),this.#ne=(t=e.Context.Context.instance().flavor(o.NetworkRequest.NetworkRequest))?new a.RequestContext(t):null,this.#te=(n=e.Context.Context.instance().flavor(b.AICallTree.AICallTree))?new a.CallTreeContext(n):null,this.#se=(i=e.Context.Context.instance().flavor(b.InsightAIContext.ActiveInsight))?new a.InsightContext(i):null,this.#J=(l=e.Context.Context.instance().flavor(r.UISourceCode.UISourceCode))?new a.FileContext(l):null,this.#me(this.#Y),this.#G?.addChangeListener(this.requestUpdate,this),s.AidaClient.HostConfigTracker.instance().addEventListener("aidaAvailabilityChanged",this.#be),this.#H.addEventListener("Toggled",this.requestUpdate,this),e.Context.Context.instance().addFlavorChangeListener(o.DOMModel.DOMNode,this.#we),e.Context.Context.instance().addFlavorChangeListener(o.NetworkRequest.NetworkRequest,this.#Ce),e.Context.Context.instance().addFlavorChangeListener(b.AICallTree.AICallTree,this.#ke),e.Context.Context.instance().addFlavorChangeListener(r.UISourceCode.UISourceCode,this.#xe),e.Context.Context.instance().addFlavorChangeListener(b.InsightAIContext.ActiveInsight,this.#Se),e.Context.Context.instance().addFlavorChangeListener(p.ElementsPanel.ElementsPanel,this.#ve,this),e.Context.Context.instance().addFlavorChangeListener(m.NetworkPanel.NetworkPanel,this.#ve,this),e.Context.Context.instance().addFlavorChangeListener(f.SourcesPanel.SourcesPanel,this.#ve,this),e.Context.Context.instance().addFlavorChangeListener(y.TimelinePanel.TimelinePanel,this.#ve,this),o.TargetManager.TargetManager.instance().addModelListener(o.DOMModel.DOMModel,o.DOMModel.Events.AttrModified,this.#Ae,this),o.TargetManager.TargetManager.instance().addModelListener(o.DOMModel.DOMModel,o.DOMModel.Events.AttrRemoved,this.#Ae,this),o.TargetManager.TargetManager.instance().addModelListener(o.ResourceTreeModel.ResourceTreeModel,o.ResourceTreeModel.Events.PrimaryPageChanged,this.#Ie,this),s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistancePanelOpened)}willHide(){this.#G?.removeChangeListener(this.requestUpdate,this),s.AidaClient.HostConfigTracker.instance().removeEventListener("aidaAvailabilityChanged",this.#be),this.#H.removeEventListener("Toggled",this.requestUpdate,this),e.Context.Context.instance().removeFlavorChangeListener(o.DOMModel.DOMNode,this.#we),e.Context.Context.instance().removeFlavorChangeListener(o.NetworkRequest.NetworkRequest,this.#Ce),e.Context.Context.instance().removeFlavorChangeListener(b.AICallTree.AICallTree,this.#ke),e.Context.Context.instance().removeFlavorChangeListener(b.InsightAIContext.ActiveInsight,this.#Se),e.Context.Context.instance().removeFlavorChangeListener(r.UISourceCode.UISourceCode,this.#xe),e.Context.Context.instance().removeFlavorChangeListener(p.ElementsPanel.ElementsPanel,this.#ve,this),e.Context.Context.instance().removeFlavorChangeListener(m.NetworkPanel.NetworkPanel,this.#ve,this),e.Context.Context.instance().removeFlavorChangeListener(f.SourcesPanel.SourcesPanel,this.#ve,this),e.Context.Context.instance().removeFlavorChangeListener(y.TimelinePanel.TimelinePanel,this.#ve,this),o.TargetManager.TargetManager.instance().removeModelListener(o.DOMModel.DOMModel,o.DOMModel.Events.AttrModified,this.#Ae,this),o.TargetManager.TargetManager.instance().removeModelListener(o.DOMModel.DOMModel,o.DOMModel.Events.AttrRemoved,this.#Ae,this),o.TargetManager.TargetManager.instance().removeModelListener(o.ResourceTreeModel.ResourceTreeModel,o.ResourceTreeModel.Events.PrimaryPageChanged,this.#Ie,this)}#be=async()=>{const e=await s.AidaClient.AidaClient.checkAccessPreconditions();if(e!==this.#le){this.#le=e;const t=await new Promise((e=>s.InspectorFrontendHost.InspectorFrontendHostInstance.getSyncInformation(e)));this.#ce={accountImage:t.accountImage,accountFullName:t.accountFullName},this.requestUpdate()}};#we=e=>{this.#ee?.getItem()!==e.data&&(this.#ee=Rt(Tt(e.data)),this.#me(this.#Y))};#Ae=e=>{this.#ee?.getItem()===e.data.node&&("class"!==e.data.name&&"id"!==e.data.name||this.requestUpdate())};#Ce=e=>{this.#ne?.getItem()!==e.data&&(this.#ne=Boolean(e.data)?new a.RequestContext(e.data):null,this.#me(this.#Y))};#ke=e=>{this.#te?.getItem()!==e.data&&(this.#te=Boolean(e.data)?new a.CallTreeContext(e.data):null,this.#me(this.#Y))};#Se=e=>{this.#se?.getItem()!==e.data&&(this.#se=Boolean(e.data)?new a.InsightContext(e.data):null,this.#me(this.#Y))};#xe=e=>{const t=e.data;t&&this.#J?.getItem()!==t&&(this.#J=new a.FileContext(e.data),this.#me(this.#Y))};#Ie(){this.#de&&(this.#de=void 0,this.requestUpdate())}#Te(){if(G()&&this.#Y&&!this.#Q?.isReadOnly)return this.#K.formatChangesForPatching(this.#Y.id,!0)}async performUpdate(){this.view({state:this.#ue(),blockedByCrossOrigin:this.#oe,aidaAvailability:this.#le,isLoading:this.#ae,messages:this.#ie,selectedContext:this.#re,conversationType:this.#Q?.type,isReadOnly:this.#Q?.isReadOnly??!1,changeSummary:this.#Te(),inspectElementToggled:this.#H.toggled(),userInfo:this.#ce,canShowFeedbackForm:this.#W,multimodalInputEnabled:Ft()&&"freestyler"===this.#Q?.type,imageInput:this.#de,isDeleteHistoryButtonVisible:Boolean(this.#Q&&!this.#Q.isEmpty),isTextInputDisabled:this.#$e(),emptyStateSuggestions:$t(this.#re,this.#Q?.type),inputPlaceholder:this.#Ee(),disclaimerText:this.#Re(),isTextInputEmpty:this.#he,changeManager:this.#K,onNewChatClick:this.#ze.bind(this),onHistoryClick:this.#Le.bind(this),onDeleteClick:this.#Me.bind(this),onHelpClick:()=>{e.UIUtils.openInNewTab("https://developer.chrome.com/docs/devtools/ai-assistance")},onSettingsClick:()=>{e.ViewManager.ViewManager.instance().showView("chrome-ai")},onTextSubmit:async(e,t)=>{this.#de=void 0,this.#he=!0,s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceQuerySubmitted),await this.#Fe(e,t)},onInspectElementClick:this.#Oe.bind(this),onFeedbackSubmit:this.#Pe.bind(this),onCancelClick:this.#fe.bind(this),onContextClick:this.#je.bind(this),onNewConversation:this.#ze.bind(this),onTakeScreenshot:Ft()?this.#De.bind(this):void 0,onRemoveImageInput:Ft()?this.#Ne.bind(this):void 0,onTextInputChange:this.#Ue.bind(this)},this.#t,this.contentElement)}#Oe(){this.#H.execute()}#$e(){const e=this.#G?.getIfNotDisabled(),t=!0===i.Runtime.hostConfig.aidaAvailability?.blockedByAge;if(!e||t)return!0;return!("available"===this.#le)||(!!this.#oe||(!this.#Q||!this.#re))}#Ee(){if("consent-view"===this.#ue()||!this.#Q)return At(st.followTheSteps);if(this.#oe)return It(ot);switch(this.#Q.type){case"freestyler":return this.#re?It(at):It(dt);case"drjones-file":return this.#re?It(lt):It(gt);case"drjones-network-request":return this.#re?It(rt):It(ht);case"drjones-performance":return this.#re?It(ct):It(ut);case"performance-insight":return this.#re?It(pt):It(vt)}}#Re(){if("consent-view"===this.#ue()||!this.#Q||this.#Q.isReadOnly)return At(st.inputDisclaimerForEmptyState);const e=i.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue===i.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING;switch(this.#Q.type){case"freestyler":return It(e?ft:mt);case"drjones-file":return It(e?Ct:wt);case"drjones-network-request":return It(e?bt:yt);case"drjones-performance":case"performance-insight":return It(e?xt:kt)}}#Pe(e,t,s){this.#s.registerClientEvent({corresponding_aida_rpc_global_id:e,disable_user_content_logging:!this.#W,do_conversation_client_event:{user_feedback:{sentiment:t,user_input:{comment:s}}}})}#je(){const e=this.#re;if(e instanceof a.RequestContext){const s=v.UIRequestLocation.UIRequestLocation.tab(e.getItem(),"headers-component");return t.Revealer.reveal(s)}if(e instanceof a.FileContext)return t.Revealer.reveal(e.getItem().uiLocation(0,0));if(e instanceof a.CallTreeContext){const s=e.getItem(),n=s.selectedNode?.event??s.rootNode.event,i=new o.TraceObject.RevealableEvent(n);return t.Revealer.reveal(i)}}handleAction(e){if(this.#ae)return void this.#t.chatView?.focusTextInput();let t;switch(e){case"freestyler.elements-floating-button":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromElementsPanelFloatingButton),t="freestyler";break;case"freestyler.element-panel-context":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromElementsPanel),t="freestyler";break;case"drjones.network-floating-button":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromNetworkPanelFloatingButton),t="drjones-network-request";break;case"drjones.network-panel-context":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromNetworkPanel),t="drjones-network-request";break;case"drjones.performance-panel-context":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromPerformancePanel),t="drjones-performance";break;case"drjones.performance-insight-context":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromPerformanceInsight),t="performance-insight";break;case"drjones.sources-floating-button":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromSourcesPanelFloatingButton),t="drjones-file";break;case"drjones.sources-panel-context":s.userMetrics.actionTaken(s.UserMetrics.Action.AiAssistanceOpenedFromSourcesPanel),t="drjones-file"}if(!t)return;let n=this.#Y;this.#Q&&this.#Y&&this.#Q.type===t&&!this.#Q?.isEmpty&&"drjones-performance"!==t||(n=this.#pe(t)),this.#me(n),this.#t.chatView?.focusTextInput()}#Le(t){const s=t.target,n=s?.getBoundingClientRect(),i=new e.ContextMenu.ContextMenu(t,{useSoftMenu:!0,x:n?.left,y:n?.bottom});for(const e of[...this.#Z].reverse()){if(e.isEmpty)continue;const t=e.title;t&&i.defaultSection().appendCheckboxItem(t,(()=>{this.#qe(e)}),{checked:this.#Q===e})}const o=0===i.defaultSection().items.length;o&&i.defaultSection().appendItem(At(st.noPastConversations),(()=>{}),{disabled:!0}),i.footerSection().appendItem(At(st.clearChatHistory),(()=>{this.#Be()}),{disabled:o}),i.show()}#Be(){this.#Z=[],a.AiHistoryStorage.instance().deleteAll(),this.#me()}#Me(){this.#Q&&(this.#Z=this.#Z.filter((e=>e!==this.#Q)),a.AiHistoryStorage.instance().deleteHistoryEntry(this.#Q.id),this.#me(),e.ARIAUtils.alert(At(st.chatDeleted)))}async#qe(e){this.#Q!==e&&(this.#me(e),await this.#_e(e.history))}#ze(){this.#me(),e.ARIAUtils.alert(At(st.newChatCreated))}async#De(){const e=o.TargetManager.TargetManager.instance().primaryPageTarget();if(!e)throw new Error("Could not find main target");const t=e.model(o.ScreenCaptureModel.ScreenCaptureModel);if(!t)throw new Error("Could not find model");const s=setTimeout((()=>{this.#de={isLoading:!0},this.requestUpdate()}),100),n=await t.captureScreenshot("jpeg",100,"fromViewport");clearTimeout(s),n&&(this.#de={isLoading:!1,data:n},this.requestUpdate(),this.updateComplete.then((()=>{this.#t.chatView?.focusTextInput()})))}#Ne(){this.#de=void 0,this.requestUpdate(),this.updateComplete.then((()=>{this.#t.chatView?.focusTextInput()}))}#Ue(e){const t=!e;t!==this.#he&&(this.#he=t,this.requestUpdate())}#Ve=new AbortController;#fe(){this.#Ve.abort(),this.#Ve=new AbortController}#ye(e){if(!this.#Y)return void(this.#oe=!1);const t=e??this.#He();this.#re=t,this.#oe=!!t&&!t.isOriginAllowed(this.#Y.origin)}#He(){if(!this.#Q)return null;let e;switch(this.#Q.type){case"freestyler":e=this.#ee;break;case"drjones-file":e=this.#J;break;case"drjones-network-request":e=this.#ne;break;case"drjones-performance":e=this.#te;break;case"performance-insight":e=this.#se}return e}async#Fe(t,s){if(!this.#Y)return;this.#fe();const n=this.#Ve.signal,i=this.#He();if(i&&!i.isOriginAllowed(this.#Y.origin))throw new Error("cross-origin context data should not be included");const o=Ft()?s:void 0,a=o?crypto.randomUUID():void 0,r=this.#Y.run(t,{signal:n,selected:i},o,a);e.ARIAUtils.alert(It(nt)),await this.#_e(this.#We(r)),e.ARIAUtils.alert(It(it))}async*#We(e){const t=this.#Q;for await(const s of e)("answer"!==s.type||s.complete)&&t?.addHistoryItem(s),yield s}async#_e(e){const t=await this.#X.acquire();try{let s={entity:"model",steps:[]},n={isLoading:!0};function i(){s.steps.at(-1)!==n&&s.steps.push(n)}this.#ae=!0;for await(const o of e){switch(n.sideEffect=void 0,o.type){case"user-query":this.#ie.push({entity:"user",text:o.query,imageInput:o.imageInput}),s={entity:"model",steps:[]},this.#ie.push(s);break;case"querying":n={isLoading:!0},s.steps.length||s.steps.push(n);break;case"context":n.title=o.title,n.contextDetails=o.details,n.isLoading=!1,i();break;case"title":n.title=o.title,i();break;case"thought":n.isLoading=!1,n.thought=o.thought,i();break;case"suggestions":s.suggestions=o.suggestions;break;case"side-effect":n.isLoading=!1,n.code??=o.code,n.sideEffect={onAnswer:e=>{o.confirm(e),n.sideEffect=void 0,this.requestUpdate()}},i();break;case"action":n.isLoading=!1,n.code??=o.code,n.output??=o.output,n.canceled=o.canceled,i();break;case"answer":s.suggestions??=o.suggestions,s.answer=o.text,s.rpcId=o.rpcId,1===s.steps.length&&s.steps[0].isLoading&&s.steps.pop(),n.isLoading=!1;break;case"error":{s.error=o.error,s.rpcId=void 0;const a=s.steps.at(-1);a&&("abort"===o.error?a.canceled=!0:a.isLoading&&s.steps.pop()),"block"===o.error&&(s.answer=void 0)}}this.#Q?.isReadOnly||(this.requestUpdate(),"context"!==o.type&&"side-effect"!==o.type||this.#t.chatView?.scrollToBottom())}this.#ae=!1,this.requestUpdate()}finally{t()}}}class Mt{handleAction(t,s){switch(s){case"freestyler.elements-floating-button":case"freestyler.element-panel-context":case"drjones.network-floating-button":case"drjones.network-panel-context":case"drjones.performance-panel-context":case"drjones.performance-insight-context":case"drjones.sources-floating-button":case"drjones.sources-panel-context":return(async()=>{const t=e.ViewManager.ViewManager.instance().view(Lt.panelName);if(t){await e.ViewManager.ViewManager.instance().showView(Lt.panelName);(await t.widget()).handleAction(s)}})(),!0}return!1}}function Ft(){return Boolean(i.Runtime.hostConfig.devToolsFreestyler?.multimodal)}export{Mt as ActionDelegate,Lt as AiAssistancePanel,Ze as ChatView,Y as MarkdownRendererWithCodeBlock,K as PatchWidget,ue as UserActionRow};
@@ -0,0 +1 @@
1
+ import*as i from"../../core/common/common.js";import*as n from"../../core/i18n/i18n.js";import*as e from"../../core/sdk/sdk.js";import*as a from"../../ui/legacy/legacy.js";let o;const t={animations:"Animations",showAnimations:"Show Animations"},s=n.i18n.registerUIStrings("panels/animation/animation-meta.ts",t),m=n.i18n.getLazilyComputedLocalizedString.bind(void 0,s);async function r(){return o||(o=await import("./animation.js")),o}a.ViewManager.registerViewExtension({location:"drawer-view",id:"animations",title:m(t.animations),commandPrompt:m(t.showAnimations),persistence:"closeable",order:0,loadView:async()=>(await r()).AnimationTimeline.AnimationTimeline.instance()}),i.Revealer.registerRevealer({contextTypes:()=>[e.AnimationModel.AnimationGroup],destination:i.Revealer.RevealerDestination.SOURCES_PANEL,loadRevealer:async()=>new((await r()).AnimationTimeline.AnimationGroupRevealer)});