simdeck 0.1.3 → 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 +41 -17
  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-ICWevBP_.js +0 -9
  807. package/client/dist/assets/index-Y_Zqbt1r.css +0 -1
@@ -0,0 +1,221 @@
1
+ import"../../../../ui/legacy/legacy.js";import*as e from"../../../../core/i18n/i18n.js";import*as t from"../../../../core/platform/platform.js";import"../../../../ui/components/buttons/buttons.js";import*as a from"../../../../ui/components/input/input.js";import*as r from"../../../../ui/lit/lit.js";import*as n from"../../../../ui/visual_logging/visual_logging.js";import*as i from"../utils/utils.js";var s={cssText:`.root{color:var(--sys-color-on-surface);width:100%}.tree-title{font-weight:700;display:flex;align-items:center}.rotate-icon{transform:rotate(90deg)}.form-container{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:8px 10px;padding:0 10px}.full-row{grid-column:1/5}.half-row{grid-column:span 2}.mobile-checkbox-container{display:flex}.device-model-input{grid-column:1/4}.input-field{color:var(--sys-color-on-surface);padding:3px 6px;border-radius:2px;border:1px solid var(--sys-color-neutral-outline);background-color:var(--sys-color-cdt-base-container);font-size:inherit;height:18px}.input-field:focus{border:1px solid var(--sys-color-state-focus-ring);outline-width:0}.add-container{cursor:pointer;display:flex;align-items:center;gap:6px}.add-icon{margin-right:5px}.brand-row{display:flex;align-items:center;gap:10px;justify-content:space-between}.brand-row > input{width:100%}.info-icon{margin-left:5px;margin-right:1px}.link,\n.devtools-link{color:var(--sys-color-primary);text-decoration:underline;cursor:pointer;outline-offset:2px;font-weight:400}devtools-icon + .link{margin-inline-start:2px}.hide-container{display:none}.input-field-label-container{display:flex;flex-direction:column;gap:10px}@media (forced-colors: active){.input-field{border:1px solid}.tree-title[aria-disabled="true"]{color:GrayText}}\n/*# sourceURL=${import.meta.resolve("./userAgentClientHintsForm.css")} */\n`};const l=new CSSStyleSheet;l.replaceSync(s.cssText);const{html:o}=r,d={title:"User agent client hints",useragent:"User agent (Sec-CH-UA)",fullVersionList:"Full version list (Sec-CH-UA-Full-Version-List)",brandProperties:"User agent properties",brandName:"Brand",brandNameAriaLabel:"Brand {PH1}",significantBrandVersionPlaceholder:"Significant version (e.g. 87)",brandVersionPlaceholder:"Version (e.g. 87.0.4280.88)",brandVersionAriaLabel:"Version {PH1}",addBrand:"Add Brand",brandUserAgentDelete:"Delete brand from user agent section",brandFullVersionListDelete:"Delete brand from full version list",fullBrowserVersion:"Full browser version (Sec-CH-UA-Full-Browser-Version)",fullBrowserVersionPlaceholder:"Full browser version (e.g. 87.0.4280.88)",platformLabel:"Platform (Sec-CH-UA-Platform / Sec-CH-UA-Platform-Version)",platformProperties:"Platform properties",platformVersion:"Platform version",platformPlaceholder:"Platform (e.g. Android)",architecture:"Architecture (Sec-CH-UA-Arch)",architecturePlaceholder:"Architecture (e.g. x86)",deviceProperties:"Device properties",deviceModel:"Device model (Sec-CH-UA-Model)",mobileCheckboxLabel:"Mobile",update:"Update",notRepresentable:"Not representable as structured headers string.",userAgentClientHintsInfo:"User agent client hints are an alternative to the user agent string that identify the browser and the device in a more structured way with better privacy accounting.",addedBrand:"Added brand row",deletedBrand:"Deleted brand row",learnMore:"Learn more"},c=e.i18n.registerUIStrings("panels/settings/emulation/components/UserAgentClientHintsForm.ts",d),h=e.i18n.getLocalizedString.bind(void 0,c);class u extends Event{static eventName="clienthintschange";constructor(){super(u.eventName)}}class p extends Event{static eventName="clienthintssubmit";detail;constructor(e){super(p.eventName),this.detail={value:e}}}const b={brands:[{brand:"",version:""}],fullVersionList:[{brand:"",version:""}],fullVersion:"",platform:"",platformVersion:"",architecture:"",model:"",mobile:!1};class m extends HTMLElement{#e=this.attachShadow({mode:"open"});#t=!1;#a=!1;#r=b;#n=!1;#i=!1;#s="";connectedCallback(){this.#e.adoptedStyleSheets=[a.checkboxStyles,l]}set value(e){const{metaData:t=b,showMobileCheckbox:a=!1,showSubmitButton:r=!1}=e;this.#r={...this.#r,...t},this.#n=a,this.#i=r,this.#l()}get value(){return{metaData:this.#r}}set disabled(e){this.#a=e,this.#t=!1,this.#l()}get disabled(){return this.#a}#o=e=>{"Space"!==e.code&&"Enter"!==e.code&&"ArrowLeft"!==e.code&&"ArrowRight"!==e.code||(e.stopPropagation(),this.#d(e.code))};#d=e=>{this.#a||"ArrowLeft"===e&&!this.#t||"ArrowRight"===e&&this.#t||(this.#t=!this.#t,this.#l())};#c=(e,t,a)=>{const r=this.#r.brands?.map(((r,n)=>{if(n===t){const{brand:t,version:n}=r;return"brandName"===a?{brand:e,version:n}:{brand:t,version:e}}return r}));this.#r={...this.#r,brands:r},this.dispatchEvent(new u),this.#l()};#h=(e,t,a)=>{const r=this.#r.fullVersionList?.map(((r,n)=>{if(n===t){const{brand:t,version:n}=r;return"brandName"===a?{brand:e,version:n}:{brand:t,version:e}}return r}));this.#r={...this.#r,fullVersionList:r},this.dispatchEvent(new u),this.#l()};#u=e=>{const{brands:t=[]}=this.#r;t.splice(e,1),this.#r={...this.#r,brands:t},this.dispatchEvent(new u),this.#s=h(d.deletedBrand),this.#l();let a=this.shadowRoot?.getElementById(`ua-brand-${e+1}-input`);a||(a=this.shadowRoot?.getElementById("add-brand-button")),a?.focus()};#p=e=>{const{fullVersionList:t=[]}=this.#r;t.splice(e,1),this.#r={...this.#r,fullVersionList:t},this.dispatchEvent(new u),this.#s=h(d.deletedBrand),this.#l();let a=this.shadowRoot?.getElementById(`fvl-brand-${e+1}-input`);a||(a=this.shadowRoot?.getElementById("add-fvl-brand-button")),a?.focus()};#b=()=>{const{brands:e}=this.#r;this.#r={...this.#r,brands:[...Array.isArray(e)?e:[],{brand:"",version:""}]},this.dispatchEvent(new u),this.#s=h(d.addedBrand),this.#l();const t=this.shadowRoot?.querySelectorAll(".ua-brand-name-input");if(t){const e=Array.from(t).pop();e&&e.focus()}};#m=e=>{"Space"!==e.code&&"Enter"!==e.code||(e.preventDefault(),this.#b())};#g=()=>{const{fullVersionList:e}=this.#r;this.#r={...this.#r,fullVersionList:[...Array.isArray(e)?e:[],{brand:"",version:""}]},this.dispatchEvent(new u),this.#s=h(d.addedBrand),this.#l();const t=this.shadowRoot?.querySelectorAll(".fvl-brand-name-input");if(t){const e=Array.from(t).pop();e&&e.focus()}};#f=e=>{"Space"!==e.code&&"Enter"!==e.code||(e.preventDefault(),this.#g())};#v=(e,t)=>{e in this.#r&&(this.#r={...this.#r,[e]:t},this.#l()),this.dispatchEvent(new u)};#$=e=>{"Space"!==e.code&&"Enter"!==e.code||(e.preventDefault(),e.target.click())};#w=e=>{e.preventDefault(),this.#i&&(this.dispatchEvent(new p(this.#r)),this.#l())};#x(e,a,r,i){return o`
2
+ <label class="full-row label input-field-label-container">
3
+ ${e}
4
+ <input
5
+ class="input-field"
6
+ type="text"
7
+ @input=${e=>{const t=e.target.value;this.#v(i,t)}}
8
+ .value=${r}
9
+ placeholder=${a}
10
+ jslog=${n.textField().track({change:!0}).context(t.StringUtilities.toKebabCase(i))}
11
+ />
12
+ </label>
13
+ `}#D(){const{platform:e,platformVersion:t}=this.#r;return o`
14
+ <span class="full-row label">${h(d.platformLabel)}</span>
15
+ <div class="full-row brand-row" aria-label=${h(d.platformProperties)} role="group">
16
+ <input
17
+ class="input-field half-row"
18
+ type="text"
19
+ @input=${e=>{const t=e.target.value;this.#v("platform",t)}}
20
+ .value=${e}
21
+ placeholder=${h(d.platformPlaceholder)}
22
+ aria-label=${h(d.platformLabel)}
23
+ jslog=${n.textField("platform").track({change:!0})}
24
+ />
25
+ <input
26
+ class="input-field half-row"
27
+ type="text"
28
+ @input=${e=>{const t=e.target.value;this.#v("platformVersion",t)}}
29
+ .value=${t}
30
+ placeholder=${h(d.platformVersion)}
31
+ aria-label=${h(d.platformVersion)}
32
+ jslog=${n.textField("platform-version").track({change:!0})}
33
+ />
34
+ </div>
35
+ `}#A(){const{model:e,mobile:t}=this.#r,a=this.#n?o`
36
+ <label class="mobile-checkbox-container">
37
+ <input type="checkbox" @input=${e=>{const t=e.target.checked;this.#v("mobile",t)}} .checked=${t}
38
+ jslog=${n.toggle("mobile").track({click:!0})}
39
+ />
40
+ ${h(d.mobileCheckboxLabel)}
41
+ </label>
42
+ `:o``;return o`
43
+ <span class="full-row label">${h(d.deviceModel)}</span>
44
+ <div class="full-row brand-row" aria-label=${h(d.deviceProperties)} role="group">
45
+ <input
46
+ class="input-field ${this.#n?"device-model-input":"full-row"}"
47
+ type="text"
48
+ @input=${e=>{const t=e.target.value;this.#v("model",t)}}
49
+ .value=${e}
50
+ placeholder=${h(d.deviceModel)}
51
+ jslog=${n.textField("model").track({change:!0})}
52
+ />
53
+ ${a}
54
+ </div>
55
+ `}#k(){const{brands:e=[{brand:"",version:""}]}=this.#r,t=e.map(((e,t)=>{const{brand:a,version:r}=e,i=()=>{this.#u(t)};return o`
56
+ <div class="full-row brand-row" aria-label=${h(d.brandProperties)} role="group">
57
+ <input
58
+ class="input-field ua-brand-name-input"
59
+ type="text"
60
+ @input=${e=>{const a=e.target.value;this.#c(a,t,"brandName")}}
61
+ .value=${a}
62
+ id="ua-brand-${t+1}-input"
63
+ placeholder=${h(d.brandName)}
64
+ aria-label=${h(d.brandNameAriaLabel,{PH1:t+1})}
65
+ jslog=${n.textField("brand-name").track({change:!0})}
66
+ />
67
+ <input
68
+ class="input-field"
69
+ type="text"
70
+ @input=${e=>{const a=e.target.value;this.#c(a,t,"brandVersion")}}
71
+ .value=${r}
72
+ placeholder=${h(d.significantBrandVersionPlaceholder)}
73
+ aria-label=${h(d.brandVersionAriaLabel,{PH1:t+1})}
74
+ jslog=${n.textField("brand-version").track({change:!0})}
75
+ />
76
+ <devtools-icon
77
+ .data=${{color:"var(--icon-default)",iconName:"bin",width:"16px",height:"16px"}}
78
+ title=${h(d.brandUserAgentDelete)}
79
+ class="delete-icon"
80
+ tabindex="0"
81
+ role="button"
82
+ @click=${i}
83
+ @keypress=${e=>{"Space"!==e.code&&"Enter"!==e.code||(e.preventDefault(),i())}}
84
+ aria-label=${h(d.brandUserAgentDelete)}
85
+ >
86
+ </devtools-icon>
87
+ </div>
88
+ `}));return o`
89
+ <span class="full-row label">${h(d.useragent)}</span>
90
+ ${t}
91
+ <div
92
+ class="add-container full-row"
93
+ role="button"
94
+ tabindex="0"
95
+ id="add-brand-button"
96
+ aria-label=${h(d.addBrand)}
97
+ @click=${this.#b}
98
+ @keypress=${this.#m}
99
+ >
100
+ <devtools-icon
101
+ aria-hidden="true"
102
+ .data=${{color:"var(--icon-default)",iconName:"plus",width:"16px"}}
103
+ >
104
+ </devtools-icon>
105
+ ${h(d.addBrand)}
106
+ </div>
107
+ `}#y(){const{fullVersionList:e=[{brand:"",version:""}]}=this.#r,t=e.map(((e,t)=>{const{brand:a,version:r}=e,i=()=>{this.#p(t)};return o`
108
+ <div
109
+ class="full-row brand-row"
110
+ aria-label=${h(d.brandProperties)}
111
+ jslog=${n.section("full-version")}
112
+ role="group">
113
+ <input
114
+ class="input-field fvl-brand-name-input"
115
+ type="text"
116
+ @input=${e=>{const a=e.target.value;this.#h(a,t,"brandName")}}
117
+ .value=${a}
118
+ id="fvl-brand-${t+1}-input"
119
+ placeholder=${h(d.brandName)}
120
+ aria-label=${h(d.brandNameAriaLabel,{PH1:t+1})}
121
+ jslog=${n.textField("brand-name").track({change:!0})}
122
+ />
123
+ <input
124
+ class="input-field"
125
+ type="text"
126
+ @input=${e=>{const a=e.target.value;this.#h(a,t,"brandVersion")}}
127
+ .value=${r}
128
+ placeholder=${h(d.brandVersionPlaceholder)}
129
+ aria-label=${h(d.brandVersionAriaLabel,{PH1:t+1})}
130
+ jslog=${n.textField("brand-version").track({change:!0})}
131
+ />
132
+ <devtools-icon
133
+ .data=${{color:"var(--icon-default)",iconName:"bin",width:"16px",height:"16px"}}
134
+ title=${h(d.brandFullVersionListDelete)}
135
+ class="delete-icon"
136
+ tabindex="0"
137
+ role="button"
138
+ @click=${i}
139
+ @keypress=${e=>{"Space"!==e.code&&"Enter"!==e.code||(e.preventDefault(),i())}}
140
+ aria-label=${h(d.brandFullVersionListDelete)}
141
+ >
142
+ </devtools-icon>
143
+ </div>
144
+ `}));return o`
145
+ <span class="full-row label">${h(d.fullVersionList)}</span>
146
+ ${t}
147
+ <div
148
+ class="add-container full-row"
149
+ role="button"
150
+ tabindex="0"
151
+ id="add-fvl-brand-button"
152
+ aria-label=${h(d.addBrand)}
153
+ @click=${this.#g}
154
+ @keypress=${this.#f}
155
+ >
156
+ <devtools-icon
157
+ aria-hidden="true"
158
+ .data=${{color:"var(--icon-default)",iconName:"plus",width:"16px"}}
159
+ >
160
+ </devtools-icon>
161
+ ${h(d.addBrand)}
162
+ </div>
163
+ `}#l(){const{fullVersion:e,architecture:t}=this.#r,a=this.#k(),i=this.#y(),s=this.#x(h(d.fullBrowserVersion),h(d.fullBrowserVersionPlaceholder),e||"","fullVersion"),l=this.#D(),c=this.#x(h(d.architecture),h(d.architecturePlaceholder),t,"architecture"),u=this.#A(),p=this.#i?o`
164
+ <devtools-button
165
+ .variant=${"outlined"}
166
+ .type=${"submit"}
167
+ >
168
+ ${h(d.update)}
169
+ </devtools-button>
170
+ `:r.nothing,b=o`
171
+ <section class="root">
172
+ <div
173
+ class="tree-title"
174
+ role="button"
175
+ @click=${this.#d}
176
+ tabindex=${this.#a?"-1":"0"}
177
+ @keydown=${this.#o}
178
+ aria-expanded=${this.#t}
179
+ aria-controls="form-container"
180
+ aria-disabled=${this.#a}
181
+ aria-label=${h(d.title)}
182
+ jslog=${n.toggleSubpane().track({click:!0})}
183
+ >
184
+ <devtools-icon
185
+ class=${this.#t?"rotate-icon":""}
186
+ .data=${{color:"var(--icon-default)",iconName:"triangle-right",width:"14px"}}
187
+ ></devtools-icon>
188
+ ${h(d.title)}
189
+ <devtools-icon
190
+ .data=${{color:"var(--icon-default)",iconName:"info",width:"16px"}}
191
+ title=${h(d.userAgentClientHintsInfo)}
192
+ class='info-icon'
193
+ ></devtools-icon>
194
+ <x-link
195
+ tabindex=${this.#a?"-1":"0"}
196
+ href="https://web.dev/user-agent-client-hints/"
197
+ target="_blank"
198
+ class="link"
199
+ @keypress=${this.#$}
200
+ aria-label=${h(d.userAgentClientHintsInfo)}
201
+ jslog=${n.link("learn-more").track({click:!0})}
202
+ >
203
+ ${h(d.learnMore)}
204
+ </x-link>
205
+ </div>
206
+ <form
207
+ id="form-container"
208
+ class="form-container ${this.#t?"":"hide-container"}"
209
+ @submit=${this.#w}
210
+ >
211
+ ${a}
212
+ ${i}
213
+ ${s}
214
+ ${l}
215
+ ${c}
216
+ ${u}
217
+ ${p}
218
+ </form>
219
+ <div aria-live="polite" aria-label=${this.#s}></div>
220
+ </section>
221
+ `;r.render(b,this.#e,{host:this})}validate=()=>{for(const[e,t]of Object.entries(this.#r))if("brands"===e||"fullVersionList"===e){const e=this.#r.brands?.every((({brand:e,version:t})=>{const a=i.UserAgentMetadata.validateAsStructuredHeadersString(e,h(d.notRepresentable)),r=i.UserAgentMetadata.validateAsStructuredHeadersString(t,h(d.notRepresentable));return a.valid&&r.valid}));if(!e)return{valid:!1,errorMessage:h(d.notRepresentable)}}else{const e=i.UserAgentMetadata.validateAsStructuredHeadersString(t,h(d.notRepresentable));if(!e.valid)return e}return{valid:!0}}}customElements.define("devtools-user-agent-client-hints-form",m);var g=Object.freeze({__proto__:null,ClientHintsChangeEvent:u,ClientHintsSubmitEvent:p,UserAgentClientHintsForm:m});export{g as UserAgentClientHintsForm};
@@ -0,0 +1 @@
1
+ import*as e from"../../../core/i18n/i18n.js";import*as i from"../../../ui/legacy/legacy.js";const t={devices:"Devices",showDevices:"Show Devices"},s=e.i18n.registerUIStrings("panels/settings/emulation/emulation-meta.ts",t),n=e.i18n.getLazilyComputedLocalizedString.bind(void 0,s);let a;i.ViewManager.registerViewExtension({location:"settings-view",commandPrompt:n(t.showDevices),title:n(t.devices),order:30,loadView:async()=>new((await async function(){return a||(a=await import("./emulation.js")),a}()).DevicesSettingsTab.DevicesSettingsTab),id:"devices",settings:["standard-emulated-device-list","custom-emulated-device-list"],iconName:"devices"});
@@ -0,0 +1 @@
1
+ import"../../../ui/components/cards/cards.js";import*as e from"../../../core/i18n/i18n.js";import*as t from"../../../models/emulation/emulation.js";import*as i from"../../../ui/legacy/legacy.js";import*as s from"../../../ui/visual_logging/visual_logging.js";import*as d from"./components/components.js";var a={cssText:`.device-card-content{padding-left:0;padding-right:0}.list{&:has(div){border:none}}#custom-device-add-button{padding:var(--sys-size-5) var(--sys-size-6)}.devices-settings-tab .devices-button-row{flex:none;display:flex;devtools-button{margin:4px 0 0 5px}}.devices-settings-tab .devices-list{width:min(350px,100%);margin-top:10px}.devices-list-item{padding:var(--sys-size-3) var(--sys-size-6);height:var(--sys-size-13);display:flex;align-items:center;flex:auto 1 1;overflow:hidden;color:var(--sys-color-on-surface);user-select:none;white-space:nowrap;text-overflow:ellipsis}.devices-list-checkbox{height:12px;width:12px;margin:2px 5px 2px 2px;flex:none;pointer-events:none}.device-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.devices-edit-fields{flex:auto;display:flex;flex-direction:column;align-items:stretch;padding-left:4px;margin-bottom:5px}.devices-edit-fields b{margin-top:8px;margin-bottom:0}.devices-edit-client-hints-heading{display:flex;flex-direction:row;align-items:center;margin-bottom:5px}li .devices-edit-client-hints-heading{margin-bottom:0}.devices-edit-client-hints-heading b{margin-inline-end:2px}.devices-edit-client-hints-heading .help-icon{margin-left:2px;margin-right:2px;vertical-align:middle}.devices-edit-client-hints-heading a:focus{box-shadow:var(--sys-color-state-focus-ring)}.devices-edit-fields input{flex:auto;margin:8px 5px 0}li.devices-edit-client-hints-field{left:-12px}.devices-edit-client-hints-field input{flex:auto;margin:8px 5px 0}.devices-edit-fields .device-edit-fixed{flex:0 0 140px}.devices-edit-fields select{margin:8px 5px 0}\n/*# sourceURL=${import.meta.resolve("./devicesSettingsTab.css")} */\n`};const c={customDevices:"Custom devices",defaultDevices:"Default devices",addCustomDevice:"Add custom device",device:"Device",deviceName:"Device Name",width:"Width",height:"Height",devicePixelRatio:"Device pixel ratio",userAgentString:"User agent string",userAgentType:"User agent type",deviceNameMustBeLessThanS:"Device name must be less than {PH1} characters.",deviceNameCannotBeEmpty:"Device name cannot be empty.",deviceAddedOrUpdated:"Device {PH1} successfully added/updated."},n=e.i18n.registerUIStrings("panels/settings/emulation/DevicesSettingsTab.ts",c),o=e.i18n.getLocalizedString.bind(void 0,n);class l extends i.Widget.VBox{containerElement;addCustomButton;ariaSuccessMessageElement;#e;#t;muteUpdate;emulatedDevicesList;editor;constructor(){super(),this.registerRequiredCSS(a),this.element.setAttribute("jslog",`${s.pane("devices")}`),this.containerElement=this.contentElement.createChild("div","settings-card-container-wrapper").createChild("div"),this.containerElement.classList.add("settings-card-container","ignore-list-settings"),this.#t=new i.ListWidget.ListWidget(this,!1),this.#t.registerRequiredCSS(a),this.#t.element.classList.add("devices-list","device-card-content"),this.muteUpdate=!1,this.emulatedDevicesList=t.EmulatedDevices.EmulatedDevicesList.instance(),this.emulatedDevicesList.addEventListener("CustomDevicesUpdated",this.devicesUpdated,this),this.emulatedDevicesList.addEventListener("StandardDevicesUpdated",this.devicesUpdated,this),this.ariaSuccessMessageElement=this.contentElement.createChild("div","device-success-message"),i.ARIAUtils.markAsPoliteLiveRegion(this.ariaSuccessMessageElement,!1),this.addCustomButton=i.UIUtils.createTextButton(o(c.addCustomDevice),this.addCustomDevice.bind(this),{jslogContext:"add-custom-device"}),this.addCustomButton.id="custom-device-add-button";const e=document.createElement("div");e.classList.add("device-card-content"),e.appendChild(this.ariaSuccessMessageElement);const d=e.createChild("div");e.appendChild(this.addCustomButton);const n=this.containerElement.createChild("devtools-card");n.heading=o(c.customDevices),n.append(e),this.#e=new i.ListWidget.ListWidget(this,!1),this.#e.registerRequiredCSS(a),this.#e.element.classList.add("devices-list"),this.#e.show(d);const l=this.containerElement.createChild("devtools-card");l.heading=o(c.defaultDevices),l.append(this.#t.element)}wasShown(){super.wasShown(),this.devicesUpdated()}devicesUpdated(){if(this.muteUpdate)return;this.#t.clear(),this.#e.clear();let e=this.emulatedDevicesList.custom().slice();for(let t=0;t<e.length;++t)this.#e.appendItem(e[t],!0);e=this.emulatedDevicesList.standard().slice(),e.sort(t.EmulatedDevices.EmulatedDevice.deviceComparator);for(let t=0;t<e.length;++t)this.#t.appendItem(e[t],!1)}muteAndSaveDeviceList(e){this.muteUpdate=!0,e?this.emulatedDevicesList.saveCustomDevices():this.emulatedDevicesList.saveStandardDevices(),this.muteUpdate=!1}addCustomDevice(){const e=new t.EmulatedDevices.EmulatedDevice;e.deviceScaleFactor=0,e.horizontal.width=700,e.horizontal.height=400,e.vertical.width=400,e.vertical.height=700,this.#e.addNewItem(this.emulatedDevicesList.custom().length,e)}toNumericInputValue(e){return e?String(e):""}renderItem(e,t){const i=document.createElement("label");i.classList.add("devices-list-item");const d=i.createChild("input","devices-list-checkbox");d.type="checkbox",d.checked=e.show(),d.addEventListener("click",function(i){const s=d.checked;e.setShow(s),this.muteAndSaveDeviceList(t),i.consume()}.bind(this),!1),d.setAttribute("jslog",`${s.toggle().track({click:!0})}`);const a=document.createElement("span");return a.classList.add("device-name"),a.appendChild(document.createTextNode(e.title)),i.appendChild(a),i}removeItemRequested(e){this.emulatedDevicesList.removeCustomDevice(e)}commitEdit(e,i,s){e.title=i.control("title").value.trim(),e.vertical.width=i.control("width").value?parseInt(i.control("width").value,10):0,e.vertical.height=i.control("height").value?parseInt(i.control("height").value,10):0,e.horizontal.width=e.vertical.height,e.horizontal.height=e.vertical.width,e.deviceScaleFactor=i.control("scale").value?parseFloat(i.control("scale").value):0,e.userAgent=i.control("user-agent").value,e.modes=[],e.modes.push({title:"",orientation:t.EmulatedDevices.Vertical,insets:new t.DeviceModeModel.Insets(0,0,0,0),image:null}),e.modes.push({title:"",orientation:t.EmulatedDevices.Horizontal,insets:new t.DeviceModeModel.Insets(0,0,0,0),image:null}),e.capabilities=[];const d=i.control("ua-type").value;"Mobile"!==d&&"Mobile (no touch)"!==d||e.capabilities.push("mobile"),"Mobile"!==d&&"Desktop (touch)"!==d||e.capabilities.push("touch");const a=i.control("ua-metadata").value.metaData;a&&(e.userAgentMetadata={...a,mobile:"Mobile"===d||"Mobile (no touch)"===d}),s?this.emulatedDevicesList.addCustomDevice(e):this.emulatedDevicesList.saveCustomDevices(),this.addCustomButton.scrollIntoViewIfNeeded(),this.addCustomButton.focus(),this.ariaSuccessMessageElement.setAttribute("aria-label",o(c.deviceAddedOrUpdated,{PH1:e.title}))}beginEdit(e){const t=this.createEditor();let i;return t.control("title").value=e.title,t.control("width").value=this.toNumericInputValue(e.vertical.width),t.control("height").value=this.toNumericInputValue(e.vertical.height),t.control("scale").value=this.toNumericInputValue(e.deviceScaleFactor),t.control("user-agent").value=e.userAgent,i=e.mobile()?e.touch()?"Mobile":"Mobile (no touch)":e.touch()?"Desktop (touch)":"Desktop",t.control("ua-type").value=i,t.control("ua-metadata").value={metaData:e.userAgentMetadata||void 0},t}createEditor(){if(this.editor)return this.editor;const e=new i.ListWidget.Editor;this.editor=e;const s=e.contentElement(),a=s.createChild("div","devices-edit-fields");i.UIUtils.createTextChild(a.createChild("b"),o(c.device));const n=e.createInput("title","text",o(c.deviceName),(function(e,i,s){let d,a=!1;const n=s.value.trim();n.length>=t.DeviceModeModel.MaxDeviceNameLength?d=o(c.deviceNameMustBeLessThanS,{PH1:t.DeviceModeModel.MaxDeviceNameLength}):0===n.length?d=o(c.deviceNameCannotBeEmpty):a=!0;return{valid:a,errorMessage:d}}));a.createChild("div","hbox").appendChild(n),n.id="custom-device-name-field";const l=a.createChild("div","hbox");l.appendChild(e.createInput("width","text",o(c.width),(function(e,i,s){return t.DeviceModeModel.DeviceModeModel.widthValidator(s.value)}))),l.appendChild(e.createInput("height","text",o(c.height),(function(e,i,s){return t.DeviceModeModel.DeviceModeModel.heightValidator(s.value)})));const r=e.createInput("scale","text",o(c.devicePixelRatio),(function(e,i,s){return t.DeviceModeModel.DeviceModeModel.scaleValidator(s.value)}));r.classList.add("device-edit-fixed"),l.appendChild(r);const u=s.createChild("div","devices-edit-fields");i.UIUtils.createTextChild(u.createChild("b"),o(c.userAgentString));const v=u.createChild("div","hbox");v.appendChild(e.createInput("user-agent","text",o(c.userAgentString),(()=>({valid:!0,errorMessage:void 0}))));const h=e.createSelect("ua-type",["Mobile","Mobile (no touch)","Desktop","Desktop (touch)"],(()=>({valid:!0,errorMessage:void 0})),o(c.userAgentType));h.classList.add("device-edit-fixed"),v.appendChild(h);const m=e.createCustomControl("ua-metadata",d.UserAgentClientHintsForm.UserAgentClientHintsForm,(function(){return m.validate()}));return m.value={},m.addEventListener("clienthintschange",(()=>e.requestValidation()),!1),s.appendChild(m),e}}var r=Object.freeze({__proto__:null,DevicesSettingsTab:l});export{r as DevicesSettingsTab};
@@ -0,0 +1 @@
1
+ const e="-".charCodeAt(0),n="0".charCodeAt(0),t="9".charCodeAt(0),r="A".charCodeAt(0),i="Z".charCodeAt(0),a="a".charCodeAt(0),o="z".charCodeAt(0),u='"'.charCodeAt(0),d=":".charCodeAt(0),s="?".charCodeAt(0),c="*".charCodeAt(0),k="_".charCodeAt(0),f=".".charCodeAt(0),l="\\".charCodeAt(0),h="/".charCodeAt(0),v="+".charCodeAt(0),p="=".charCodeAt(0),C="!".charCodeAt(0),m="#".charCodeAt(0),A="$".charCodeAt(0),g="%".charCodeAt(0),S="&".charCodeAt(0),E="'".charCodeAt(0),P="^".charCodeAt(0),b="`".charCodeAt(0),_="|".charCodeAt(0),w="~".charCodeAt(0),z=126;function O(e){return void 0!==e&&(e>=n&&e<=t)}function j(e){return void 0!==e&&(e>=r&&e<=i||e>=a&&e<=o)}function I(e){return void 0!==e&&(e>=a&&e<=o)}function L(n){if(void 0===n)return!1;if(O(n)||j(n))return!0;switch(n){case C:case m:case A:case g:case S:case E:case c:case v:case e:case f:case P:case k:case b:case _:case w:return!0;default:return!1}}class M{data;pos;constructor(e){this.data=e,this.pos=0,this.skipSP()}peek(){return this.data[this.pos]}peekCharCode(){return this.pos<this.data.length?this.data.charCodeAt(this.pos):void 0}eat(){++this.pos}skipSP(){for(;" "===this.data[this.pos];)++this.pos}skipOWS(){for(;" "===this.data[this.pos]||"\t"===this.data[this.pos];)++this.pos}atEnd(){return this.pos===this.data.length}allParsed(){return this.skipSP(),this.pos===this.data.length}}function N(e){return"("===e.peek()?function(e){if("("!==e.peek())return{kind:0};e.eat();const n=[];for(;!e.atEnd();){if(e.skipSP(),")"===e.peek()){e.eat();const t=B(e);return 0===t.kind?t:{kind:12,items:n,parameters:t}}const t=W(e);if(0===t.kind)return t;if(n.push(t)," "!==e.peek()&&")"!==e.peek())return{kind:0}}return{kind:0}}(e):W(e)}function W(e){const n=x(e);if(0===n.kind)return n;const t=B(e);return 0===t.kind?t:{kind:4,value:n,parameters:t}}function x(n){const t=n.peekCharCode();return t===e||O(t)?function(e){let n=5,t=1,r="";"-"===e.peek()&&(e.eat(),t=-1);if(!O(e.peekCharCode()))return{kind:0};for(;!e.atEnd();){const t=e.peekCharCode();if(void 0!==t&&O(t))e.eat(),r+=String.fromCodePoint(t);else{if(t!==f||5!==n)break;if(e.eat(),r.length>12)return{kind:0};r+=".",n=6}if(5===n&&r.length>15)return{kind:0};if(6===n&&r.length>16)return{kind:0}}if(5===n){const e=t*Number.parseInt(r,10);return e<-999999999999999||e>999999999999999?{kind:0}:{kind:5,value:e}}const i=r.length-1-r.indexOf(".");if(i>3||0===i)return{kind:0};return{kind:6,value:t*Number.parseFloat(r)}}(n):t===u?function(e){let n="";if('"'!==e.peek())return{kind:0};e.eat();for(;!e.atEnd();){const t=e.peekCharCode();if(void 0===t)return{kind:0};if(e.eat(),t===l){if(e.atEnd())return{kind:0};const t=e.peekCharCode();if(e.eat(),t!==l&&t!==u)return{kind:0};n+=String.fromCodePoint(t)}else{if(t===u)return{kind:7,value:n};if(t<32||t>126)return{kind:0};n+=String.fromCodePoint(t)}}return{kind:0}}(n):t===d?function(e){let n="";if(":"!==e.peek())return{kind:0};e.eat();for(;!e.atEnd();){const t=e.peekCharCode();if(void 0===t)return{kind:0};if(e.eat(),t===d)return{kind:9,value:n};if(!O(t)&&!j(t)&&t!==v&&t!==h&&t!==p)return{kind:0};n+=String.fromCodePoint(t)}return{kind:0}}(n):t===s?function(e){if("?"!==e.peek())return{kind:0};if(e.eat(),"0"===e.peek())return e.eat(),{kind:10,value:!1};if("1"===e.peek())return e.eat(),{kind:10,value:!0};return{kind:0}}(n):t===c||j(t)?function(e){const n=e.peekCharCode();if(n!==c&&!j(n))return{kind:0};let t="";for(;!e.atEnd();){const n=e.peekCharCode();if(void 0===n||!L(n)&&n!==d&&n!==h)break;e.eat(),t+=String.fromCodePoint(n)}return{kind:8,value:t}}(n):{kind:0}}function B(e){const n=new Map;for(;!e.atEnd()&&";"===e.peek();){e.eat(),e.skipSP();const t=U(e);if(0===t.kind)return t;let r={kind:10,value:!0};if("="===e.peek()){e.eat();const n=x(e);if(0===n.kind)return n;r=n}n.has(t.value)&&n.delete(t.value),n.set(t.value,{kind:2,name:t,value:r})}return{kind:3,items:[...n.values()]}}function U(n){let t="";const r=n.peekCharCode();if(r!==c&&!I(r))return{kind:0};for(;!n.atEnd();){const r=n.peekCharCode();if(!I(r)&&!O(r)&&r!==k&&r!==e&&r!==f&&r!==c)break;t+=n.peek(),n.eat()}return{kind:1,value:t}}function F(e){return function(e){const n={kind:11,items:[]};for(;!e.atEnd();){const t=N(e);if(0===t.kind)return t;if(n.items.push(t),e.skipOWS(),e.atEnd())return n;if(","!==e.peek())return{kind:0};if(e.eat(),e.skipOWS(),e.atEnd())return{kind:0}}return n}(new M(e))}function H(e){const n=D(e.value);if(0===n.kind)return n;const t=q(e.parameters);return 0===t.kind?t:{kind:13,value:n.value+t.value}}function Z(e){const n=[];for(let t=0;t<e.items.length;++t){const r=e.items[t];if(12===r.kind){const e=$(r);if(0===e.kind)return e;n.push(e.value)}else{const e=H(r);if(0===e.kind)return e;n.push(e.value)}}return{kind:13,value:n.join(", ")}}function $(e){const n=[];for(let t=0;t<e.items.length;++t){const r=H(e.items[t]);if(0===r.kind)return r;n.push(r.value)}let t="("+n.join(" ")+")";const r=q(e.parameters);return 0===r.kind?r:(t+=r.value,{kind:13,value:t})}function q(e){let n="";for(const t of e.items){n+=";";const e=y(t.name);if(0===e.kind)return e;n+=e.value;const r=t.value;if(10!==r.kind||!r.value){n+="=";const e=D(r);if(0===e.kind)return e;n+=e.value}}return{kind:13,value:n}}function y(n){if(0===n.value.length)return{kind:0};const t=n.value.charCodeAt(0);if(!I(t)&&t!==c)return{kind:0};for(let t=1;t<n.value.length;++t){const r=n.value.charCodeAt(t);if(!I(r)&&!O(r)&&r!==k&&r!==e&&r!==f&&r!==c)return{kind:0}}return{kind:13,value:n.value}}function D(e){return 5===e.kind?function(e){if(e.value<-999999999999999||e.value>999999999999999||!Number.isInteger(e.value))return{kind:0};return{kind:13,value:e.value.toString(10)}}(e):6===e.kind?function(){throw new Error("Unimplemented")}():7===e.kind?function(e){for(let n=0;n<e.value.length;++n){const t=e.value.charCodeAt(n);if(t<32||t>z)return{kind:0}}let n='"';for(let t=0;t<e.value.length;++t){const r=e.value[t];'"'!==r&&"\\"!==r||(n+="\\"),n+=r}return n+='"',{kind:13,value:n}}(e):8===e.kind?function(e){if(0===e.value.length)return{kind:0};const n=e.value.charCodeAt(0);if(!j(n)&&n!==c)return{kind:0};for(let n=1;n<e.value.length;++n){const t=e.value.charCodeAt(n);if(!L(t)&&t!==d&&t!==h)return{kind:0}}return{kind:13,value:e.value}}(e):10===e.kind?function(e){return{kind:13,value:e.value?"?1":"?0"}}(e):9===e.kind?function(){throw new Error("Unimplemented")}():{kind:0}}var G=Object.freeze({__proto__:null,parseItem:function(e){const n=new M(e),t=W(n);return n.allParsed()?t:{kind:0}},parseList:F,serializeItem:H,serializeList:Z});var J=Object.freeze({__proto__:null,parseBrandsList:function(e,n,t){const r=[],i=F(e);if(0===i.kind)return n;for(const e of i.items){if(4!==e.kind)return t;const n=e.value;if(7!==n.kind)return t;if(1!==e.parameters.items.length)return t;const i=e.parameters.items[0];if("v"!==i.name.value)return t;const a=i.value;if(7!==a.kind)return t;r.push({brand:n.value,version:a.value})}return r},serializeBrandsList:function(e){const n={kind:11,items:[]},t={kind:1,value:"v"};for(const r of e){const e={kind:4,value:{kind:7,value:r.brand},parameters:{kind:3,items:[{kind:2,name:t,value:{kind:7,value:r.version}}]}};n.items.push(e)}const r=Z(n);return 0===r.kind?"":r.value},validateAsStructuredHeadersString:function(e,n){return 0===H({kind:4,value:{kind:7,value:e},parameters:{kind:3,items:[]}}).kind?{valid:!1,errorMessage:n}:{valid:!0,errorMessage:void 0}}});export{G as StructuredHeaders,J as UserAgentMetadata};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/i18n/i18n.js";import*as t from"../../ui/legacy/legacy.js";import*as i from"../../core/common/common.js";import*as n from"../../core/root/root.js";import*as o from"../../ui/components/legacy_wrapper/legacy_wrapper.js";const s={devices:"Devices",showDevices:"Show Devices"},a=e.i18n.registerUIStrings("panels/settings/emulation/emulation-meta.ts",s),r=e.i18n.getLazilyComputedLocalizedString.bind(void 0,a);let c;t.ViewManager.registerViewExtension({location:"settings-view",commandPrompt:r(s.showDevices),title:r(s.devices),order:30,loadView:async()=>new((await async function(){return c||(c=await import("./emulation/emulation.js")),c}()).DevicesSettingsTab.DevicesSettingsTab),id:"devices",settings:["standard-emulated-device-list","custom-emulated-device-list"],iconName:"devices"});const g={shortcuts:"Shortcuts",preferences:"Preferences",experiments:"Experiments",ignoreList:"Ignore list",showShortcuts:"Show Shortcuts",showPreferences:"Show Preferences",showExperiments:"Show Experiments",showIgnoreList:"Show Ignore list",settings:"Settings",documentation:"Documentation",aiInnovations:"AI innovations",showAiInnovations:"Show AI innovations"},l=e.i18n.registerUIStrings("panels/settings/settings-meta.ts",g),d=e.i18n.getLazilyComputedLocalizedString.bind(void 0,l);let m;async function w(){return m||(m=await import("./settings.js")),m}t.ViewManager.registerViewExtension({location:"settings-view",id:"preferences",title:d(g.preferences),commandPrompt:d(g.showPreferences),order:0,loadView:async()=>new((await w()).SettingsScreen.GenericSettingsTab),iconName:"gear"}),t.ViewManager.registerViewExtension({location:"settings-view",id:"chrome-ai",title:d(g.aiInnovations),commandPrompt:d(g.showAiInnovations),order:2,async loadView(){const e=await w();return o.LegacyWrapper.legacyWrapper(t.Widget.VBox,new e.AISettingsTab.AISettingsTab)},iconName:"button-magic",settings:["console-insights-enabled"],condition:e=>(e?.aidaAvailability?.enabled&&(e?.devToolsConsoleInsights?.enabled||e?.devToolsFreestyler?.enabled))??!1}),t.ViewManager.registerViewExtension({location:"settings-view",id:"experiments",title:d(g.experiments),commandPrompt:d(g.showExperiments),order:3,experiment:"*",loadView:async()=>new((await w()).SettingsScreen.ExperimentsSettingsTab),iconName:"experiment"}),t.ViewManager.registerViewExtension({location:"settings-view",id:"blackbox",title:d(g.ignoreList),commandPrompt:d(g.showIgnoreList),order:4,loadView:async()=>new((await w()).FrameworkIgnoreListSettingsTab.FrameworkIgnoreListSettingsTab),iconName:"clear-list"}),t.ViewManager.registerViewExtension({location:"settings-view",id:"keybinds",title:d(g.shortcuts),commandPrompt:d(g.showShortcuts),order:100,loadView:async()=>new((await w()).KeybindsSettingsTab.KeybindsSettingsTab),iconName:"keyboard"}),t.ActionRegistration.registerActionExtension({category:"SETTINGS",actionId:"settings.show",title:d(g.settings),loadActionDelegate:async()=>new((await w()).SettingsScreen.ActionDelegate),iconClass:"gear",bindings:[{shortcut:"F1",keybindSets:["devToolsDefault"]},{shortcut:"Shift+?"},{platform:"windows,linux",shortcut:"Ctrl+,",keybindSets:["vsCode"]},{platform:"mac",shortcut:"Meta+,",keybindSets:["vsCode"]}]}),t.ActionRegistration.registerActionExtension({category:"SETTINGS",actionId:"settings.documentation",title:d(g.documentation),loadActionDelegate:async()=>new((await w()).SettingsScreen.ActionDelegate)}),t.ActionRegistration.registerActionExtension({category:"SETTINGS",actionId:"settings.shortcuts",title:d(g.showShortcuts),loadActionDelegate:async()=>new((await w()).SettingsScreen.ActionDelegate),bindings:[{platform:"windows,linux",shortcut:"Ctrl+K Ctrl+S",keybindSets:["vsCode"]},{platform:"mac",shortcut:"Meta+K Meta+S",keybindSets:["vsCode"]}]}),t.ViewManager.registerLocationResolver({name:"settings-view",category:"SETTINGS",loadResolver:async()=>(await w()).SettingsScreen.SettingsScreen.instance()}),i.Revealer.registerRevealer({contextTypes:()=>[i.Settings.Setting,n.Runtime.Experiment],destination:void 0,loadRevealer:async()=>new((await w()).SettingsScreen.Revealer)}),t.ContextMenu.registerItem({location:"mainMenu/footer",actionId:"settings.shortcuts",order:void 0}),t.ContextMenu.registerItem({location:"mainMenuHelp/default",actionId:"settings.documentation",order:void 0});
@@ -0,0 +1,91 @@
1
+ import"../../ui/components/cards/cards.js";import*as e from"../../core/common/common.js";import*as t from"../../core/host/host.js";import*as s from"../../core/i18n/i18n.js";import*as i from"../../core/root/root.js";import*as n from"../../ui/components/buttons/buttons.js";import*as o from"../../ui/components/icon_button/icon_button.js";import*as r from"../../ui/legacy/components/utils/utils.js";import*as a from"../../ui/legacy/legacy.js";import*as l from"../../ui/lit/lit.js";import{render as d,html as c}from"../../ui/lit/lit.js";import*as g from"../../ui/visual_logging/visual_logging.js";import{PanelUtils as h}from"../utils/utils.js";import*as p from"./components/components.js";import*as u from"../../ui/components/input/input.js";import*as m from"../../ui/components/legacy_wrapper/legacy_wrapper.js";import*as y from"../../ui/components/switch/switch.js";import*as b from"../../core/platform/platform.js";var v={cssText:`.settings-window-main{color:var(--sys-color-on-surface);background-color:var(--sys-color-cdt-base-container)}.settings-content{overflow:hidden auto;margin:8px 8px 8px 0;padding:0 4px;flex:auto}.settings-experiments-block{padding:0 var(--sys-size-6) var(--sys-size-5) var(--sys-size-4)}fieldset{margin:0;padding:0;border:none}label{padding-right:8px}.experiments-filter{width:100%;padding:0 var(--sys-size-9) 0 var(--sys-size-8);max-width:var(--sys-size-35);> devtools-toolbar{min-width:var(--sys-size-31)}}.settings-select{align-items:center;display:grid;row-gap:var(--sys-size-3);margin:var(--sys-size-4) 0}div:has(.settings-select) + div:has(.settings-select){padding-top:var(--sys-size-5)}.settings-window-label-element{flex:none}.settings-window-title{display:flex;align-items:center;font-size:var(--sys-size-9);color:var(--sys-color-on-surface);margin:var(--sys-size-8) var(--sys-size-7);&::before{content:"";width:var(--sys-size-9);height:var(--sys-size-9);margin-right:var(--sys-size-6);background-image:var(--image-file-devtools)}}.settings-card-container-wrapper{scrollbar-gutter:stable;padding:var(--sys-size-8) 0;overflow:auto;position:absolute;inset:var(--sys-size-8) 0 0;container-type:inline-size;container-name:settings-content}.settings-card-container,\n.settings-multicolumn-card-container{display:flex;flex-direction:column;align-items:center;gap:var(--sys-size-9);> devtools-button{min-width:var(--sys-size-31);max-width:var(--sys-size-35);width:calc(100% - var(--sys-size-5));margin-left:var(--sys-size-5)}}@container settings-content (min-width: 850px){.settings-multicolumn-card-container{display:block;column-width:var(--sys-size-32);column-gap:var(--sys-size-11);margin:0 var(--sys-size-9);> * + *{margin-top:var(--sys-size-8)}> devtools-button{align-self:start}}}.settings-card-container-wrapper select{margin-left:10px;width:var(--sys-size-28)}.settings-card-container-wrapper setting-checkbox{min-height:var(--sys-size-13);position:relative;left:calc(var(--sys-size-4) * -1)}.settings-experiment{margin:0;min-height:var(--sys-size-13);display:grid;grid-template-columns:auto min-content auto 1fr;& .devtools-link{display:flex!important;align-items:center}}devtools-button.link-icon{cursor:pointer}.experiment-label{margin:var(--sys-size-3) var(--sys-size-2) var(--sys-size-3) 0;white-space:normal}.settings-experiment-unstable{color:var(--sys-color-token-subtle)}.settings-experiment .feedback-link{color:var(--sys-color-primary);text-decoration-line:underline;margin-left:4px}.tabbed-pane-content slot::slotted(.widget){overflow:visible!important}.experiments-warning-subsection{display:flex;align-items:center;> devtools-icon{color:var(--sys-color-orange-bright);margin-right:var(--sys-size-4)}}@media (forced-colors: active){.settings-window-title{color:canvastext}.tabbed-pane-header-tab{background:ButtonFace}.tabbed-pane-header-tab-title{color:canvastext}}@media (forced-colors: active) and (prefers-color-scheme: dark){.tabbed-pane-header-tab.selected{background:ButtonFace}.tabbed-pane-header-tab.selected .tabbed-pane-header-tab-title{color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./settingsScreen.css")} */\n`};const S={unstableExperiments:"Unstable experiments",settings:"Settings",shortcuts:"Shortcuts",restoreDefaultsAndReload:"Restore defaults and reload",experiments:"Experiments",theseExperimentsCouldBeUnstable:"Warning: These experiments could be unstable or unreliable.",theseExperimentsAreParticularly:"Warning: These experiments are particularly unstable. Enable at your own risk.",oneOrMoreSettingsHaveChanged:"One or more settings have changed which requires a reload to take effect",noResults:"No experiments match the filter",learnMore:"Learn more",sendFeedback:"Send feedback",searchExperiments:"Search experiments"},f=s.i18n.registerUIStrings("panels/settings/SettingsScreen.ts",S),x=s.i18n.getLocalizedString.bind(void 0,f);let w;function k(e,...t){const s=document.createElement("devtools-card");return s.heading=e,s.append(...t),s}class A extends a.Widget.VBox{tabbedLocation;keybindsTab;reportTabOnReveal;constructor(){super(!0),this.registerRequiredCSS(v),this.contentElement.classList.add("settings-window-main"),this.contentElement.classList.add("vbox");const e=document.createElement("div");e.classList.add("settings-window-label-element");const t=a.UIUtils.createShadowRootWithCoreStyles(e,{cssFile:v}).createChild("div","settings-window-title");a.ARIAUtils.markAsHeading(t,1),t.textContent=x(S.settings),this.tabbedLocation=a.ViewManager.ViewManager.instance().createTabbedLocation((()=>A.revealSettingsScreen()),"settings-view");const s=this.tabbedLocation.tabbedPane();s.registerRequiredCSS(v),s.headerElement().prepend(e),s.setShrinkableTabs(!1),s.makeVerticalTabLayout();const i=a.ViewManager.ViewManager.instance().view("keybinds");i&&i.widget().then((e=>{this.keybindsTab=e})),s.show(this.contentElement),s.selectTab("preferences"),s.addEventListener(a.TabbedPane.Events.TabInvoked,this.tabInvoked,this),this.reportTabOnReveal=!1}static instance(e={forceNew:null}){const{forceNew:t}=e;return w&&!t||(w=new A),w}static revealSettingsScreen(){const e=A.instance();if(e.isShowing())return e;e.reportTabOnReveal=!0;const t=new a.Dialog.Dialog("settings");return t.contentElement.removeAttribute("aria-modal"),t.contentElement.tabIndex=-1,t.addCloseButton(),t.setOutsideClickCallback((()=>{})),t.setPointerEventsBehavior("PierceGlassPane"),t.setOutsideTabIndexBehavior("PreserveMainViewTabIndex"),e.show(t.contentElement),t.setEscapeKeyCallback(e.onEscapeKeyPressed.bind(e)),t.setMarginBehavior("NoMargin"),t.show(),e}static async showSettingsScreen(e={name:void 0,focusTabHeader:void 0}){const{name:t,focusTabHeader:s}=e,i=A.revealSettingsScreen();i.selectTab(t||"preferences");const n=i.tabbedLocation.tabbedPane();await n.waitForTabElementUpdate(),s?n.focusSelectedTabHeader():n.focus()}resolveLocation(e){return this.tabbedLocation}selectTab(e){this.tabbedLocation.tabbedPane().selectTab(e,!0)}tabInvoked(e){const t=e.data;if(!t.isUserGesture)return;const s=t.prevTabId,i=t.tabId;!this.reportTabOnReveal&&s&&s===i||(this.reportTabOnReveal=!1,this.reportSettingsPanelShown(i))}reportSettingsPanelShown(e){e!==x(S.shortcuts)?t.userMetrics.settingsPanelShown(e):t.userMetrics.settingsPanelShown("shortcuts")}onEscapeKeyPressed(e){"keybinds"===this.tabbedLocation.tabbedPane().selectedTabId&&this.keybindsTab&&this.keybindsTab.onEscapeKeyPressed(e)}}class C extends a.Widget.VBox{containerElement;constructor(e){super(),this.element.classList.add("settings-tab-container"),e&&(this.element.id=e),this.containerElement=this.contentElement.createChild("div","settings-card-container-wrapper").createChild("div")}}class I extends C{syncSection=new p.SyncSection.SyncSection;settingToControl=new Map;constructor(){super("preferences-tab-content"),this.element.setAttribute("jslog",`${g.pane("preferences")}`),this.containerElement.classList.add("settings-multicolumn-card-container");const t=["","APPEARANCE","SOURCES","ELEMENTS","NETWORK","PERFORMANCE","MEMORY","CONSOLE","EXTENSIONS","PERSISTENCE","DEBUGGER","GLOBAL","SYNC"],s=e.Settings.Settings.instance().getRegisteredSettings().sort(((e,t)=>e.order&&t.order?e.order-t.order:e.order?-1:t.order?1:0));for(const e of t){const t=s.filter((t=>t.category===e&&I.isSettingVisible(t)));this.createSectionElement(e,t)}const i=a.UIUtils.createTextButton(x(S.restoreDefaultsAndReload),(function(){e.Settings.Settings.instance().clearAll(),r.Reload.reload()}),{jslogContext:"settings.restore-defaults-and-reload"});this.containerElement.appendChild(i)}static isSettingVisible(e){return Boolean(e.title?.())&&Boolean(e.category)}wasShown(){a.Context.Context.instance().setFlavor(I,this),super.wasShown(),this.updateSyncSection()}willHide(){super.willHide(),a.Context.Context.instance().setFlavor(I,null)}updateSyncSection(){t.InspectorFrontendHost.InspectorFrontendHostInstance.getSyncInformation((t=>{this.syncSection.data={syncInfo:t,syncSetting:e.Settings.moduleSetting("sync-preferences")}}))}createExtensionSection(e){const t=r.Linkifier.LinkHandlerSettingUI.instance().settingElement();t&&this.createStandardSectionElement("EXTENSIONS",e,t)}createSectionElement(t,s){if("EXTENSIONS"===t)this.createExtensionSection(s);else if("SYNC"===t&&s.length>0){const t=k(e.SettingRegistration.getLocalizedSettingsCategory("SYNC"),this.syncSection);this.containerElement.appendChild(t)}else s.length>0&&this.createStandardSectionElement(t,s)}createStandardSectionElement(t,s,i){const n=e.Settings.getLocalizedSettingsCategory(t),o=document.createElement("div");for(const t of s){const s=e.Settings.Settings.instance().moduleSetting(t.settingName),i=a.SettingsUI.createControlForSetting(s);i&&(this.settingToControl.set(s,i),o.appendChild(i))}i&&o.appendChild(i);const r=k(n,o);this.containerElement.appendChild(r)}highlightObject(t){if(t instanceof e.Settings.Setting){const e=this.settingToControl.get(t);e&&h.highlightElement(e)}}}class E extends C{#e;#t;experimentToControl=new Map;constructor(){super("experiments-tab-content"),this.containerElement.classList.add("settings-card-container"),this.element.setAttribute("jslog",`${g.pane("experiments")}`);const e=this.containerElement.createChild("div");e.classList.add("experiments-filter"),d(c`
2
+ <devtools-toolbar>
3
+ <devtools-toolbar-input type="filter" placeholder=${x(S.searchExperiments)} style="flex-grow:1" @change=${this.#s.bind(this)}></devtools-toolbar-input>
4
+ </devtools-toolbar>
5
+ `,e),this.renderExperiments("");const t=e.querySelector("devtools-toolbar-input");this.setDefaultFocusedElement(t)}#s(e){this.renderExperiments(e.detail.toLowerCase())}renderExperiments(e){this.experimentToControl.clear(),this.#e&&this.#e.remove(),this.#t&&this.#t.remove();const t=i.Runtime.experiments.allConfigurableExperiments().sort(),s=t.filter((t=>t.unstable&&t.title.toLowerCase().includes(e))),n=t.filter((t=>!t.unstable&&t.title.toLowerCase().includes(e)));if(n.length){const e=document.createElement("div");e.classList.add("settings-experiments-block");const t=x(S.theseExperimentsCouldBeUnstable),s=this.createExperimentsWarningSubsection(t);for(const t of n)e.appendChild(this.createExperimentCheckbox(t));this.#e=k(x(S.experiments),s,e),this.containerElement.appendChild(this.#e)}if(s.length){const e=document.createElement("div");e.classList.add("settings-experiments-block");const t=x(S.theseExperimentsAreParticularly);for(const t of s)e.appendChild(this.createExperimentCheckbox(t));this.#t=k(x(S.unstableExperiments),this.createExperimentsWarningSubsection(t),e),this.containerElement.appendChild(this.#t)}if(!n.length&&!s.length){const e=document.createElement("span");e.textContent=x(S.noResults),a.ARIAUtils.alert(e.textContent),this.#e=k(x(S.experiments),e),this.containerElement.appendChild(this.#e)}}createExperimentsWarningSubsection(e){const t=document.createElement("div");t.classList.add("experiments-warning-subsection");const s=o.Icon.create("warning");t.appendChild(s);return t.createChild("span").textContent=e,t}createExperimentCheckbox(e){const s=a.UIUtils.CheckboxLabel.createWithStringLiteral(e.title,e.isEnabled(),void 0,e.name);s.classList.add("experiment-label");const i=s.checkboxElement;i.name=e.name,i.addEventListener("click",(function(){e.setEnabled(i.checked),t.userMetrics.experimentChanged(e.name,e.isEnabled()),a.InspectorView.InspectorView.instance().displayReloadRequiredWarning(x(S.oneOrMoreSettingsHaveChanged))}),!1);const o=document.createElement("p");this.experimentToControl.set(e,o),o.classList.add("settings-experiment"),e.unstable&&!e.isEnabled()&&o.classList.add("settings-experiment-unstable"),o.appendChild(s);const r=e.docLink;if(r){const t=new n.Button.Button;t.data={iconName:"help",variant:"icon",size:"SMALL",jslogContext:`${e.name}-documentation`,title:x(S.learnMore)},t.addEventListener("click",(()=>a.UIUtils.openInNewTab(r))),t.classList.add("link-icon"),o.appendChild(t)}if(e.feedbackLink){const t=a.XLink.XLink.create(e.feedbackLink,void 0,void 0,void 0,`${e.name}-feedback`);t.textContent=x(S.sendFeedback),t.classList.add("feedback-link"),o.appendChild(t)}return o}highlightObject(e){if(e instanceof i.Runtime.Experiment){const t=this.experimentToControl.get(e);t&&h.highlightElement(t)}}wasShown(){a.Context.Context.instance().setFlavor(E,this),super.wasShown()}willHide(){super.willHide(),a.Context.Context.instance().setFlavor(E,null)}}var L=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(e,t){switch(t){case"settings.show":return A.showSettingsScreen({focusTabHeader:!0}),!0;case"settings.documentation":return a.UIUtils.openInNewTab("https://developer.chrome.com/docs/devtools/"),!0;case"settings.shortcuts":return A.showSettingsScreen({name:"keybinds",focusTabHeader:!0}),!0}return!1}},ExperimentsSettingsTab:E,GenericSettingsTab:I,Revealer:class{async reveal(s){const n=a.Context.Context.instance();if(s instanceof i.Runtime.Experiment){t.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront(),await A.showSettingsScreen({name:"experiments"});const e=n.flavor(E);null!==e&&e.highlightObject(s)}else{for(const i of e.Settings.Settings.instance().getRegisteredSettings())if(I.isSettingVisible(i)&&i.settingName===s.name){t.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront(),await A.showSettingsScreen();const e=n.flavor(I);return void(null!==e&&e.highlightObject(s))}for(const e of a.ViewManager.getRegisteredViewExtensions()){const i=e.viewId();if("settings-view"!==e.location())continue;const n=e.settings();if(n&&-1!==n.indexOf(s.name)){t.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront(),await A.showSettingsScreen({name:i});const n=await e.widget();return void(n instanceof C&&n.highlightObject(s))}}}}},SettingsScreen:A}),T={cssText:`.ignore-list-option{flex:none;display:flex;align-items:center;height:var(--sys-size-13)}.ignore-list-option devtools-button{cursor:pointer;position:relative;top:var(--sys-size-2);margin-left:var(--sys-size-2)}.add-button{padding:var(--sys-size-5) var(--sys-size-6);align-self:flex-start;flex:none}.ignore-list{flex:0 1 auto}.enable-ignore-listing,\n.ignore-list-item,\n.general-exclusion-group{padding-left:var(--sys-size-4)}.custom-exclusion-group{padding-left:0;padding-right:0}.ignore-list-item{height:var(--sys-size-13);display:flex;align-items:center;position:relative;flex:auto 1 1}.ignore-list-pattern{flex:auto}.ignore-list-item > dt-checkbox{width:100%}.ignore-list-item .ignore-list-pattern{white-space:nowrap;text-overflow:ellipsis;user-select:none;color:var(--sys-color-on-surface);overflow:hidden}.ignore-list-edit-row{flex:none;display:flex;flex-direction:row;margin:6px 5px;align-items:center}.ignore-list-edit-row input,\n.ignore-list-edit-row select{width:100%;text-align:inherit}.ignore-listing-disabled .ignore-list-options{opacity:30%}.list:has(.ignore-list-empty),\n.list:has(.ignore-list-edit-row),\n.list:has(.ignore-list-item){border:none}.editor-container:has(.ignore-list-edit-row){background:var(--sys-color-surface1);border-radius:10px}.ignore-list.list-editing ~ .add-button{display:none}.devtools-link:has(devtools-icon){margin-left:6px}\n/*# sourceURL=${import.meta.resolve("./frameworkIgnoreListSettingsTab.css")} */\n`};const R={frameworkIgnoreList:"Ignore listing",ignoreListingDescription:"When enabled, the debugger will skip over ignore-listed scripts and will ignore exceptions that only affect them and the Performance panel will collapse matching flamechart items.",ignoreListContentScripts:"Content scripts injected by extensions",ignoreListAnonymousScripts:"Anonymous scripts from eval or console",automaticallyIgnoreListKnownThirdPartyScripts:"Known third-party scripts from source maps",enableIgnoreListing:"Enable ignore listing",enableIgnoreListingTooltip:"Uncheck to disable all ignore listing",generalExclusionRules:"General exclusion rules",customExclusionRules:"Custom exclusion rules",addPattern:"Add regex rule",addFilenamePattern:"Add a regular expression rule for the script's URL",ignoreScriptsWhoseNamesMatchS:"Ignore scripts whose names match ''{PH1}''",pattern:"Add a regular expression rule for the script's URL",patternCannotBeEmpty:"Rule can't be empty",patternAlreadyExists:"Rule already exists",patternMustBeAValidRegular:"Rule must be a valid regular expression",learnMore:"Learn more"},z=s.i18n.registerUIStrings("panels/settings/FrameworkIgnoreListSettingsTab.ts",R),U=s.i18n.getLocalizedString.bind(void 0,z);class N extends a.Widget.VBox{list;setting;editor;constructor(){super(!0),this.registerRequiredCSS(T,v),this.element.setAttribute("jslog",`${g.pane("blackbox")}`);const t=this.contentElement.createChild("div","settings-card-container-wrapper").createChild("div");t.classList.add("settings-card-container","ignore-list-settings");const s=document.createElement("span");s.textContent=U(R.ignoreListingDescription);const i=e.Settings.Settings.instance().moduleSetting("enable-ignore-listing"),o=this.contentElement.createChild("div","enable-ignore-listing");o.appendChild(a.SettingsUI.createSettingCheckbox(U(R.enableIgnoreListing),i)),a.Tooltip.Tooltip.install(o,U(R.enableIgnoreListingTooltip));const r=t.createChild("devtools-card");r.heading=U(R.frameworkIgnoreList),r.append(s,o);const l=this.createSettingGroup();l.classList.add("general-exclusion-group");l.createChild("div","ignore-list-option").appendChild(a.SettingsUI.createSettingCheckbox(U(R.ignoreListContentScripts),e.Settings.Settings.instance().moduleSetting("skip-content-scripts")));const d=l.createChild("div","ignore-list-option");d.appendChild(a.SettingsUI.createSettingCheckbox(U(R.automaticallyIgnoreListKnownThirdPartyScripts),e.Settings.Settings.instance().moduleSetting("automatically-ignore-list-known-third-party-scripts")));const c=new n.Button.Button;c.data={iconName:"help",variant:"icon",size:"SMALL",jslogContext:"learn-more",title:U(R.learnMore)},c.addEventListener("click",(()=>a.UIUtils.openInNewTab("https://developer.chrome.com/docs/devtools/settings/ignore-list/#skip-third-party"))),d.appendChild(c);l.createChild("div","ignore-list-option").appendChild(a.SettingsUI.createSettingCheckbox(U(R.ignoreListAnonymousScripts),e.Settings.Settings.instance().moduleSetting("skip-anonymous-scripts")));const h=t.createChild("devtools-card","ignore-list-options");h.heading=U(R.generalExclusionRules),h.append(l);const p=this.createSettingGroup();p.classList.add("custom-exclusion-group");const u=t.createChild("devtools-card","ignore-list-options");u.heading=U(R.customExclusionRules),u.append(p),this.list=new a.ListWidget.ListWidget(this),this.list.element.classList.add("ignore-list"),this.list.registerRequiredCSS(T);const m=document.createElement("div");m.classList.add("ignore-list-empty"),this.list.setEmptyPlaceholder(m),this.list.show(p);const y=a.UIUtils.createTextButton(U(R.addPattern),this.addButtonClicked.bind(this),{className:"add-button",jslogContext:"settings.add-ignore-list-pattern"});function b(){i.get()?t.classList.remove("ignore-listing-disabled"):t.classList.add("ignore-listing-disabled")}a.ARIAUtils.setLabel(y,U(R.addFilenamePattern)),p.appendChild(y),this.setting=e.Settings.Settings.instance().moduleSetting("skip-stack-frames-pattern"),this.setting.addChangeListener(this.settingUpdated,this),i.addChangeListener(b),b()}wasShown(){super.wasShown(),this.settingUpdated()}settingUpdated(){this.list.clear();const e=this.setting.getAsArray();for(let t=0;t<e.length;++t)this.list.appendItem(e[t],!0)}addButtonClicked(){this.list.addNewItem(this.setting.getAsArray().length,{pattern:"",disabled:!1})}createSettingGroup(){const e=document.createElement("div");return e.classList.add("ignore-list-option-group"),a.ARIAUtils.markAsGroup(e),e}renderItem(e,t){const s=document.createElement("div"),i=this.setting,n=a.UIUtils.CheckboxLabel.createWithStringLiteral(e.pattern,!e.disabled,void 0,"settings.ignore-list-pattern"),o=U(R.ignoreScriptsWhoseNamesMatchS,{PH1:e.pattern});return a.Tooltip.Tooltip.install(n,o),n.checkboxElement.ariaLabel=o,n.checkboxElement.addEventListener("change",(function(){const t=!n.checkboxElement.checked;e.disabled!==t&&(e.disabled=t,e.disabledForUrl=void 0,i.setAsArray(i.getAsArray()))}),!1),s.appendChild(n),s.classList.add("ignore-list-item"),s}removeItemRequested(e,t){const s=this.setting.getAsArray();s.splice(t,1),this.setting.setAsArray(s)}commitEdit(e,t,s){e.pattern=t.control("pattern").value.trim();const i=this.setting.getAsArray();s&&i.push(e),this.setting.setAsArray(i)}beginEdit(e){const t=this.createEditor();return t.control("pattern").value=e.pattern,t}createEditor(){if(this.editor)return this.editor;const e=new a.ListWidget.Editor;this.editor=e;const t=e.contentElement();t.createChild("div","ignore-list-edit-row").createChild("div","ignore-list-pattern").textContent=U(R.pattern);const s=t.createChild("div","ignore-list-edit-row"),i=e.createInput("pattern","text","/framework\\.js$",function(e,t,s){const i=s.value.trim(),n=this.setting.getAsArray();if(!i.length)return{valid:!1,errorMessage:U(R.patternCannotBeEmpty)};for(let e=0;e<n.length;++e)if(e!==t&&n[e].pattern===i)return{valid:!1,errorMessage:U(R.patternAlreadyExists)};let o;try{o=new RegExp(i)}catch{}if(!o)return{valid:!1,errorMessage:U(R.patternMustBeAValidRegular)};return{valid:!0,errorMessage:void 0}}.bind(this));return a.ARIAUtils.setLabel(i,U(R.pattern)),s.createChild("div","ignore-list-pattern").appendChild(i),e}}var F=Object.freeze({__proto__:null,FrameworkIgnoreListSettingsTab:N}),P={cssText:`*{box-sizing:border-box}:host{container-type:inline-size;container-name:ai-settings}.shared-disclaimer{background:linear-gradient(135deg,var(--sys-color-gradient-primary),var(--sys-color-gradient-tertiary));border-radius:var(--sys-size-5);padding:var(--sys-size-9) var(--sys-size-11);max-width:var(--sys-size-35);min-width:var(--sys-size-28);h2{font:var(--sys-typescale-headline5);margin:0 0 var(--sys-size-6)}}.disclaimer-list-header{font:var(--sys-typescale-body5-medium);margin:0}.disclaimer-list{padding:var(--sys-size-6) 0 0;display:grid;grid-template-columns:var(--sys-size-12) auto;gap:var(--sys-size-6) 0;line-height:var(--sys-typescale-body5-line-height)}.settings-container{display:grid;grid-template-columns:1fr auto auto;border-radius:var(--sys-size-5);box-shadow:var(--sys-elevation-level2);margin:var(--sys-size-11) 0 var(--sys-size-4);line-height:var(--sys-typescale-body5-line-height);min-width:var(--sys-size-28);max-width:var(--sys-size-35);background-color:var(--app-color-card-background)}.accordion-header{display:grid;grid-template-columns:auto 1fr auto;&:hover{background-color:var(--sys-color-state-hover-on-subtle)}}.icon-container,\n.dropdown{padding:0 var(--sys-size-8)}.toggle-container{padding:0 var(--sys-size-8) 0 var(--sys-size-9);&:hover{background-color:var(--sys-color-state-hover-on-subtle)}}.expansion-grid{padding:var(--sys-size-4) var(--sys-size-8) var(--sys-size-6);display:grid;grid-template-columns:var(--sys-size-9) auto;gap:var(--sys-size-6) var(--sys-size-8);line-height:var(--sys-typescale-body5-line-height);color:var(--sys-color-on-surface-subtle)}.expansion-grid-whole-row{grid-column:span 2;font-weight:var(--ref-typeface-weight-medium);color:var(--sys-color-on-surface);padding-top:var(--sys-size-4);margin:0;font-size:inherit}.setting-description{color:var(--sys-color-on-surface-subtle)}.centered{display:grid;place-content:center}.setting-card{padding:var(--sys-size-6) 0;h2{margin:0;font:inherit}}.divider{margin:var(--sys-size-5) 0;border-left:var(--sys-size-1) solid var(--sys-color-divider)}.accordion-header ~ .accordion-header,\n.divider ~ .divider,\n.toggle-container ~ .toggle-container{border-top:var(--sys-size-1) solid var(--sys-color-divider)}.whole-row{grid-column:span 5;overflow:hidden;display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--sys-motion-duration-short4) ease-in}.whole-row.open{grid-template-rows:1fr}.overflow-hidden{overflow:hidden}.link,\n.devtools-link{color:var(--sys-color-primary);text-decoration:underline;cursor:pointer;outline-offset:var(--sys-size-2);padding:0;font-weight:var(--ref-typeface-weight-regular)}.padded{padding:var(--sys-size-2) 0}.settings-container-wrapper{position:absolute;inset:var(--sys-size-8) 0 0;overflow:auto;padding:var(--sys-size-3) var(--sys-size-6) var(--sys-size-6);display:flex;flex-direction:column}@container ai-settings (min-width: 480px){.settings-container-wrapper{align-items:center}}header{font-size:var(--sys-typescale-headline3-size);font-weight:var(--ref-typeface-weight-regular)}.disabled-explainer{background-color:var(--sys-color-surface-yellow);border-radius:var(--sys-shape-corner-medium-small);margin-top:var(--sys-size-11);padding:var(--sys-size-6) var(--sys-size-11) var(--sys-size-8);width:100%;max-width:var(--sys-size-35);min-width:var(--sys-size-28);color:var(--sys-color-yellow)}.disabled-explainer-row{display:flex;gap:var(--sys-size-6);margin-top:var(--sys-size-4)}\n/*# sourceURL=${import.meta.resolve("./aiSettingsTab.css")} */\n`};const M=new CSSStyleSheet;M.replaceSync(P.cssText);const{html:D,Directives:{ifDefined:K,classMap:B}}=l,O={boostYourProductivity:"Boost your productivity with AI",thingsToConsider:"Things to consider",experimentalFeatures:"These features use generative AI and may provide inaccurate or offensive information that doesn’t represent Google’s views",sendsDataToGoogle:"These features send relevant data to Google. Google collects this data and feedback to improve its products and services with the help of human reviewers. Avoid sharing sensitive or personal information.",sendsDataToGoogleNoLogging:"Your content will not be used by human reviewers to improve AI. Your organization may change these settings at any time.",dataCollection:"Depending on your region, Google may refrain from data collection",dataCollectionNoLogging:"Depending on your Google account management and/or region, Google may refrain from data collection",helpUnderstandConsole:"Helps you understand and fix console warnings and errors",getAIAnnotationsSuggestions:"Get AI suggestions for performance panel annotations",showMore:"Show more",showLess:"Show less",whenOn:"When on",explainConsole:"Get explanations for console warnings and errors",receiveSuggestions:"Receive suggestions and code samples to address these issues",consoleInsightsSendsData:"The console message, associated stack trace, related source code, and the associated network headers are sent to Google to generate explanations. This data may be seen by human reviewers to improve this feature.",consoleInsightsSendsDataNoLogging:"The console message, associated stack trace, related source code, and the associated network headers are sent to Google to generate explanations. This data will not be used to improve Google’s AI models.",termsOfServicePrivacyNotice:"Use of these features is subject to the {PH1} and {PH2}",helpUnderstandStyling:"Get help with understanding CSS styles",helpUnderstandStylingAndNetworkRequest:"Get help with understanding CSS styles, and network requests",helpUnderstandStylingNetworkAndFile:"Get help with understanding CSS styles, network requests, and files",helpUnderstandStylingNetworkPerformanceAndFile:"Get help with understanding CSS styles, network requests, performance, and files",learnMore:"Learn more",explainStyling:"Understand CSS styles with AI-powered insights",explainStylingAndNetworkRequest:"Understand CSS styles, and network activity with AI-powered insights",explainStylingNetworkAndFile:"Understand CSS styles, network activity, and file origins with AI-powered insights",explainStylingNetworkPerformanceAndFile:"Understand CSS styles, network activity, performance bottlenecks, and file origins with AI-powered insights",receiveStylingSuggestions:"Improve your development workflow with contextual explanations and suggestions",freestylerSendsData:"Any user query and data the inspected page can access via Web APIs, network requests, files, and performance traces are sent to Google to generate explanations. This data may be seen by human reviewers to improve this feature. Don’t use on pages with personal or sensitive information.",freestylerSendsDataNoLogging:"Any user query and data the inspected page can access via Web APIs, network requests, files, and performance traces are sent to Google to generate explanations. This data will not be used to improve Google’s AI models.",generatedAiAnnotationsSendData:"Your performance trace is sent to Google to generate an explanation. This data will be used to improve Google’s AI models.",generatedAiAnnotationsSendDataNoLogging:"Your performance trace is sent to Google to generate an explanation. This data will not be used to improve Google’s AI models.",termsOfService:"Google Terms of Service",privacyNotice:"Google Privacy Policy",enableConsoleInsights:"Enable `Console insights`",enableAiAssistance:"Enable AI assistance",enableAiSuggestedAnnotations:"Enable AI suggestions for performance panel annotations",ageRestricted:"This feature is only available to users who are 18 years of age or older.",notLoggedIn:"This feature is only available when you sign into Chrome with your Google account.",offline:"This feature is only available with an active internet connection.",notAvailableInIncognitoMode:"AI assistance is not available in Incognito mode or Guest mode"},$=s.i18n.registerUIStrings("panels/settings/AISettingsTab.ts",O),j=s.i18n.getLocalizedString.bind(void 0,$);class G extends m.LegacyWrapper.WrappableComponent{#i=this.attachShadow({mode:"open"});#n;#o;#r;#a;#l="no-account-email";#d;#c=new Map;constructor(){super();try{this.#n=e.Settings.Settings.instance().moduleSetting("console-insights-enabled")}catch{this.#n=void 0}try{this.#r=e.Settings.Settings.instance().moduleSetting("ai-assistance-enabled")}catch{this.#r=void 0}try{this.#a=e.Settings.Settings.instance().moduleSetting("ai-assistance-history-entries")}catch{this.#a=void 0}i.Runtime.hostConfig.devToolsAiGeneratedTimelineLabels?.enabled&&(this.#o=e.Settings.Settings.instance().createSetting("ai-annotations-enabled",!1)),this.#d=this.#g.bind(this),this.#h()}connectedCallback(){this.#i.adoptedStyleSheets=[u.checkboxStyles,M],t.AidaClient.HostConfigTracker.instance().addEventListener("aidaAvailabilityChanged",this.#d),this.#g()}disconnectedCallback(){t.AidaClient.HostConfigTracker.instance().removeEventListener("aidaAvailabilityChanged",this.#d)}#h(){const e=i.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue===i.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING;if(this.#n){const t={settingName:s.i18n.lockedString("Console Insights"),iconName:"lightbulb-spark",settingDescription:j(O.helpUnderstandConsole),enableSettingText:j(O.enableConsoleInsights),settingItems:[{iconName:"lightbulb",text:j(O.explainConsole)},{iconName:"code",text:j(O.receiveSuggestions)}],toConsiderSettingItems:[{iconName:"google",text:j(e?O.consoleInsightsSendsDataNoLogging:O.consoleInsightsSendsData)}],learnMoreLink:{url:"https://goo.gle/devtools-console-messages-ai",linkJSLogContext:"learn-more.console-insights"},settingExpandState:{isSettingExpanded:!1,expandSettingJSLogContext:"console-insights.accordion"}};this.#c.set(this.#n,t)}if(this.#r){const t={settingName:s.i18n.lockedString("AI assistance"),iconName:"smart-assistant",settingDescription:this.#p(),enableSettingText:j(O.enableAiAssistance),settingItems:[{iconName:"info",text:this.#u()},{iconName:"pen-spark",text:j(O.receiveStylingSuggestions)}],toConsiderSettingItems:[{iconName:"google",text:j(e?O.freestylerSendsDataNoLogging:O.freestylerSendsData)}],learnMoreLink:{url:"https://goo.gle/devtools-ai-assistance",linkJSLogContext:"learn-more.ai-assistance"},settingExpandState:{isSettingExpanded:!1,expandSettingJSLogContext:"freestyler.accordion"}};this.#c.set(this.#r,t)}if(this.#o){const t={settingName:s.i18n.lockedString("Auto annotations"),iconName:"pen-spark",settingDescription:j(O.getAIAnnotationsSuggestions),enableSettingText:j(O.enableAiSuggestedAnnotations),settingItems:[{iconName:"pen-spark",text:j(O.getAIAnnotationsSuggestions)}],toConsiderSettingItems:[{iconName:"google",text:j(e?O.generatedAiAnnotationsSendDataNoLogging:O.generatedAiAnnotationsSendData)}],learnMoreLink:{url:"https://developer.chrome.com/docs/devtools/performance/reference#auto-annotations",linkJSLogContext:"learn-more.auto-annotations"},settingExpandState:{isSettingExpanded:!1,expandSettingJSLogContext:"freestyler.accordion"}};this.#c.set(this.#o,t)}}async#g(){const e=await t.AidaClient.AidaClient.checkAccessPreconditions();e!==this.#l&&(this.#l=e,this.render())}#p(){const{hostConfig:e}=i.Runtime;return e.devToolsAiAssistancePerformanceAgent?.enabled?j(O.helpUnderstandStylingNetworkPerformanceAndFile):e.devToolsAiAssistanceFileAgent?.enabled?j(O.helpUnderstandStylingNetworkAndFile):e.devToolsAiAssistanceNetworkAgent?.enabled?j(O.helpUnderstandStylingAndNetworkRequest):j(O.helpUnderstandStyling)}#u(){const{hostConfig:e}=i.Runtime;return e.devToolsAiAssistancePerformanceAgent?.enabled?j(O.explainStylingNetworkPerformanceAndFile):e.devToolsAiAssistanceFileAgent?.enabled?j(O.explainStylingNetworkAndFile):e.devToolsAiAssistanceNetworkAgent?.enabled?j(O.explainStylingAndNetworkRequest):j(O.explainStyling)}#m(e){const t=this.#c.get(e);t&&(t.settingExpandState.isSettingExpanded=!t.settingExpandState.isSettingExpanded,this.render())}#y(t,s){if(s.target instanceof y.Switch.Switch&&s.type!==y.Switch.SwitchChangeEvent.eventName)return;const i=this.#c.get(t);if(!i)return;const n=t.get();t.set(!n),n||i.settingExpandState.isSettingExpanded||(i.settingExpandState.isSettingExpanded=!0),"console-insights-enabled"===t.name?n?e.Settings.Settings.instance().createLocalSetting("console-insights-onboarding-finished",!1).set(!1):e.Settings.Settings.instance().createSetting("console-insights-skip-reminder",!0,"Session").set(!0):"ai-assistance-enabled"===t.name&&this.#a&&!t.get()&&this.#a.set([]),this.render()}#b(e,t){return D`
6
+ <div>
7
+ <devtools-icon .data=${{iconName:e,color:"var(--icon-default)",width:"var(--sys-size-8)",height:"var(--sys-size-8)"}}>
8
+ </devtools-icon>
9
+ </div>
10
+ <div>${t}</div>
11
+ `}#v(){const e=a.XLink.XLink.create("https://policies.google.com/terms",j(O.termsOfService),void 0,void 0,"terms-of-service"),t=a.XLink.XLink.create("https://policies.google.com/privacy",j(O.privacyNotice),void 0,void 0,"privacy-notice"),n=i.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue===i.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING,o=[{icon:"psychiatry",text:j(O.experimentalFeatures)},{icon:"google",text:j(n?O.sendsDataToGoogleNoLogging:O.sendsDataToGoogle)},{icon:"corporate-fare",text:j(n?O.dataCollectionNoLogging:O.dataCollection)},{icon:"policy",text:D`${s.i18n.getFormatLocalizedString($,O.termsOfServicePrivacyNotice,{PH1:e,PH2:t})}`}];return D`
12
+ <div class="shared-disclaimer">
13
+ <h2>${j(O.boostYourProductivity)}</h2>
14
+ <h3 class="disclaimer-list-header">${j(O.thingsToConsider)}</h3>
15
+ <div class="disclaimer-list">
16
+ ${o.map((e=>this.#b(e.icon,e.text)))}
17
+ </div>
18
+ </div>
19
+ `}#S(e){return D`
20
+ <div>
21
+ <devtools-icon .data=${{iconName:e.iconName,width:"var(--sys-size-9)",height:"var(--sys-size-9)"}}>
22
+ </devtools-icon>
23
+ </div>
24
+ <div class="padded">${e.text}</div>
25
+ `}#f(){const e=[];switch(i.Runtime.hostConfig.isOffTheRecord&&e.push(j(O.notAvailableInIncognitoMode)),this.#l){case"no-account-email":case"sync-is-paused":e.push(j(O.notLoggedIn));break;case"no-internet":e.push(j(O.offline));case"available":!0===i.Runtime.hostConfig?.aidaAvailability?.blockedByAge&&e.push(j(O.ageRestricted))}const t=this.#n?.disabledReasons()||[];return e.push(...t),e}#x(e){const t=this.#c.get(e);if(!t)return l.nothing;const s=this.#f(),i=s.length>0,n=s.join("\n")||void 0,o={"whole-row":!0,open:t.settingExpandState.isSettingExpanded},r=t.settingExpandState.isSettingExpanded?"0":"-1";return D`
26
+ <div class="accordion-header" @click=${this.#m.bind(this,e)}>
27
+ <div class="icon-container centered">
28
+ <devtools-icon name=${t.iconName}></devtools-icon>
29
+ </div>
30
+ <div class="setting-card">
31
+ <h2>${t.settingName}</h2>
32
+ <div class="setting-description">${t.settingDescription}</div>
33
+ </div>
34
+ <div class="dropdown centered">
35
+ <devtools-button
36
+ .data=${{title:t.settingExpandState.isSettingExpanded?j(O.showLess):j(O.showMore),size:"SMALL",iconName:t.settingExpandState.isSettingExpanded?"chevron-up":"chevron-down",variant:"icon",jslogContext:t.settingExpandState.expandSettingJSLogContext}}
37
+ ></devtools-button>
38
+ </div>
39
+ </div>
40
+ <div class="divider"></div>
41
+ <div class="toggle-container centered"
42
+ title=${K(n)}
43
+ @click=${this.#y.bind(this,e)}
44
+ >
45
+ <devtools-switch
46
+ .checked=${Boolean(e.get())&&!i}
47
+ .jslogContext=${e.name||""}
48
+ .disabled=${i}
49
+ @switchchange=${this.#y.bind(this,e)}
50
+ aria-label=${n||t.enableSettingText}
51
+ ></devtools-switch>
52
+ </div>
53
+ <div class=${B(o)}>
54
+ <div class="overflow-hidden">
55
+ <div class="expansion-grid">
56
+ <h3 class="expansion-grid-whole-row">${j(O.whenOn)}</h3>
57
+ ${t.settingItems.map((e=>this.#S(e)))}
58
+ <h3 class="expansion-grid-whole-row">${j(O.thingsToConsider)}</h3>
59
+ ${t.toConsiderSettingItems.map((e=>this.#S(e)))}
60
+ <div class="expansion-grid-whole-row">
61
+ <x-link
62
+ href=${t.learnMoreLink.url}
63
+ class="link"
64
+ tabindex=${r}
65
+ jslog=${g.link(t.learnMoreLink.linkJSLogContext).track({click:!0})}
66
+ >${j(O.learnMore)}</x-link>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ `}#w(e){return D`
72
+ <div class="disabled-explainer">
73
+ ${e.map((e=>D`
74
+ <div class="disabled-explainer-row">
75
+ <devtools-icon .data=${{iconName:"warning",color:"var(--sys-color-orange)",width:"var(--sys-size-8)",height:"var(--sys-size-8)"}}>
76
+ </devtools-icon>
77
+ ${e}
78
+ </div>
79
+ `))}
80
+ </div>
81
+ `}async render(){const e=this.#f();l.render(D`
82
+ <div class="settings-container-wrapper" jslog=${g.pane("chrome-ai")}>
83
+ ${this.#v()}
84
+ ${this.#c.size>0?D`
85
+ ${e.length?this.#w(e):l.nothing}
86
+ <div class="settings-container">
87
+ ${this.#c.keys().map((e=>this.#x(e)))}
88
+ </div>
89
+ `:l.nothing}
90
+ </div>
91
+ `,this.#i,{host:this})}}customElements.define("devtools-settings-ai-settings-tab",G);var H=Object.freeze({__proto__:null,AISettingsTab:G}),W={cssText:`.shortcut-list{padding-left:0;padding-right:0}.keybinds-key{display:flex;align-items:center;justify-content:center;height:var(--sys-size-11);min-width:var(--sys-size-11);font:var(--sys-typescale-body5-medium);white-space:nowrap;border-radius:var(--sys-shape-corner-small);background:var(--sys-color-tonal-container);padding:0 var(--sys-size-4)}.keybinds-list-item{margin:0 var(--sys-size-6);padding:var(--sys-size-4) 0;display:grid;grid-template-rows:1fr;grid-template-columns:1fr 30px 2fr 30px 30px;border-top:var(--sys-size-1) solid var(--app-color-card-divider)}.keybinds-list-item:focus-visible{background-color:var(--sys-color-tonal-container)}.keybinds-list-item.keybinds-editing{background-color:var(--sys-color-neutral-container)}.keybinds-list-text.keybinds-action-name{grid-row:1/1}.keybinds-shortcut,\n.keybinds-info{grid-row:auto;grid-column:3/span 1}.keybinds-error{color:var(--sys-color-error)}.keybinds-shortcut{gap:var(--sys-size-4)}.keybinds-list-item.keybinds-editing .keybinds-shortcut{display:flex}.keybinds-modified{grid-column:2/span 1;margin-top:var(--sys-size-3)}.keybinds-list-item button[disabled]{opacity:40%}.keybinds-cancel-button{grid-column:-1/span 1}.keybinds-edit-button{display:none;grid-row:1/span 1;grid-column:5/span 1}.keybinds-list-item:not(.keybinds-editing):hover .keybinds-edit-button,\n.keybinds-list-item:not(.keybinds-editing):focus-within .keybinds-edit-button{display:inline-block}.keybinds-list-text{min-height:var(--sys-size-12);display:flex;align-items:center;user-select:none;color:var(--sys-color-on-surface);text-align:start;position:relative;margin-right:0}.keybinds-category-header{display:flex;align-items:center;font:var(--sys-typescale-body4-bold);height:var(--sys-size-13);padding:var(--sys-size-4) var(--sys-size-7);white-space:nowrap;+ .keybinds-list-item-wrapper > .keybinds-list-item{border-top:unset}}.keybinds-list-item-wrapper:has(.keybinds-list-item:hover),\n.keybinds-list-item-wrapper:has(\n .keybinds-list-item:not(.keybinds-editing)):focus-within{background:var(--sys-color-state-hover-on-subtle)}.keybinds-set-select label p{display:inline;color:var(--sys-color-on-surface)}button.text-button{width:fit-content;align-self:flex-end}.keybinds-list-text input{margin:0 2px}.keybinds-set-select{margin:0;padding:var(--sys-size-5) var(--sys-size-7);& .settings-select{display:flex;justify-content:space-between;& label{padding:0}}}.keybinds-list-text:has(.keybinds-delete-button){grid-column:3/-1}.docs-link.devtools-link{align-self:flex-start;min-height:2em;line-height:2em;margin-bottom:4px}.keybinds-footer{padding:var(--sys-size-5) var(--sys-size-7);display:flex;flex-wrap:wrap;justify-content:space-between;min-height:fit-content;margin-top:10px}\n/*# sourceURL=${import.meta.resolve("./keybindsSettingsTab.css")} */\n`};const _={shortcuts:"Shortcuts",matchShortcutsFromPreset:"Shortcut preset",keyboardShortcutsList:"Keyboard shortcuts list",shortcutModified:"Shortcut modified",noShortcutForAction:"No shortcut for action",addAShortcut:"Add a shortcut",confirmChanges:"Confirm changes",discardChanges:"Discard changes",removeShortcut:"Remove shortcut",editShortcut:"Edit shortcut",shortcutsCannotContainOnly:"Shortcuts cannot contain only modifier keys.",thisShortcutIsInUseByS:"This shortcut is in use by {PH1}: {PH2}.",RestoreDefaultShortcuts:"Restore default shortcuts",FullListOfDevtoolsKeyboard:"Full list of DevTools keyboard shortcuts and gestures",ResetShortcutsForAction:"Reset shortcuts for action",shortcutRemoved:"{PH1} Shortcut removed",shortcutChangesRestored:"Changes to shortcut restored to default",shortcutChangesApplied:"Changes to shortcut applied",shortcutChangesDiscared:"Changes to shortcut discarded"},V=s.i18n.registerUIStrings("panels/settings/KeybindsSettingsTab.ts",_),q=s.i18n.getLocalizedString.bind(void 0,V);class X extends a.Widget.VBox{items;list;editingItem;editingRow;constructor(){super(!0),this.registerRequiredCSS(W,v),this.element.setAttribute("jslog",`${g.pane("keybinds")}`);const t=this.contentElement.createChild("div","settings-card-container-wrapper").createChild("div");t.classList.add("settings-card-container");const s=e.Settings.Settings.instance().moduleSetting("active-keybind-set"),i=e.Settings.Settings.instance().moduleSetting("user-shortcuts");s.addChangeListener(this.update,this);const n=a.SettingsUI.createControlForSetting(s,q(_.matchShortcutsFromPreset)),o=t.createChild("devtools-card");o.heading=q(_.shortcuts),n&&n.classList.add("keybinds-set-select"),this.items=new a.ListModel.ListModel,this.list=new a.ListControl.ListControl(this.items,this,a.ListControl.ListMode.NonViewport),this.list.element.classList.add("shortcut-list"),this.items.replaceAll(this.createListItems()),a.ARIAUtils.markAsList(this.list.element),a.ARIAUtils.setLabel(this.list.element,q(_.keyboardShortcutsList));const r=document.createElement("div");r.classList.add("keybinds-footer");const l=a.XLink.XLink.create("https://developer.chrome.com/docs/devtools/shortcuts/",q(_.FullListOfDevtoolsKeyboard),void 0,void 0,"learn-more");l.classList.add("docs-link"),r.appendChild(l);const d=a.UIUtils.createTextButton(q(_.RestoreDefaultShortcuts),(()=>{i.set([]),s.set(a.ShortcutRegistry.DefaultShortcutSetting)}),{jslogContext:"restore-default-shortcuts"});r.appendChild(d),this.editingItem=null,this.editingRow=null,n&&o.append(n),o.append(this.list.element,r),this.update()}createElementForItem(e){const t=document.createElement("div");let s;if("string"==typeof e)s=t,s.classList.add("keybinds-category-header"),s.textContent=a.ActionRegistration.getLocalizedActionCategory(e),a.ARIAUtils.setLevel(s,1);else{const i=new Y(e,this,e===this.editingItem);s=i.element,a.ARIAUtils.setLevel(s,2),e===this.editingItem&&(this.editingRow=i),s.classList.add("keybinds-list-item"),t.classList.add("keybinds-list-item-wrapper"),t.appendChild(s)}return a.ARIAUtils.markAsListitem(s),s.tabIndex=e===this.list.selectedItem()&&e!==this.editingItem?0:-1,t}commitChanges(e,s){for(const[e,i]of s)"UnsetShortcut"!==e.type&&(a.ShortcutRegistry.ShortcutRegistry.instance().removeShortcut(e),i||t.userMetrics.actionTaken(t.UserMetrics.Action.ShortcutRemoved)),i&&(a.ShortcutRegistry.ShortcutRegistry.instance().registerUserShortcut(e.changeKeys(i).changeType("UserShortcut")),"UnsetShortcut"===e.type?t.userMetrics.actionTaken(t.UserMetrics.Action.UserShortcutAdded):t.userMetrics.actionTaken(t.UserMetrics.Action.ShortcutModified));this.stopEditing(e)}heightForItem(e){return 0}isItemSelectable(e){return!0}selectedItemChanged(e,t,s,i){s&&(s.tabIndex=-1),i&&(t===this.editingItem&&this.editingRow?this.editingRow.focus():(i.tabIndex=0,this.list.element.hasFocus()&&i.focus()),this.setDefaultFocusedElement(i))}updateSelectedItemARIA(e,t){return!0}startEditing(e){this.list.selectItem(e),this.editingItem&&this.stopEditing(this.editingItem),a.UIUtils.markBeingEdited(this.list.element,!0),this.editingItem=e,this.list.refreshItem(e)}stopEditing(e){a.UIUtils.markBeingEdited(this.list.element,!1),this.editingItem=null,this.editingRow=null,this.list.refreshItem(e),this.focus()}createListItems(){const e=a.ActionRegistry.ActionRegistry.instance().actions().sort(((e,t)=>e.category()<t.category()?-1:e.category()>t.category()?1:e.id()<t.id()?-1:e.id()>t.id()?1:0)),t=[];let s;return e.forEach((e=>{"elements.toggle-element-search"!==e.id()&&(s!==e.category()&&t.push(e.category()),t.push(e),s=e.category())})),t}onEscapeKeyPressed(e){const t=b.DOMUtilities.deepActiveElement(document);this.editingRow&&t&&"INPUT"===t.nodeName&&this.editingRow.onEscapeKeyPressed(e)}update(){this.editingItem&&this.stopEditing(this.editingItem),this.list.refreshAllItems(),this.list.selectedItem()||this.list.selectItem(this.items.at(0))}willHide(){super.willHide(),this.editingItem&&this.stopEditing(this.editingItem)}}class Y{isEditing;settingsTab;item;element;editedShortcuts;shortcutInputs;shortcuts;elementToFocus;confirmButton;addShortcutLinkContainer;errorMessageElement;secondKeyTimeout;constructor(e,t,s){this.isEditing=Boolean(s),this.settingsTab=t,this.item=e,this.element=document.createElement("div"),this.element.setAttribute("jslog",`${g.item().context(e.id()).track({keydown:"Escape"})}`),this.editedShortcuts=new Map,this.shortcutInputs=new Map,this.shortcuts=a.ShortcutRegistry.ShortcutRegistry.instance().shortcutsForAction(e.id()),this.elementToFocus=null,this.confirmButton=null,this.addShortcutLinkContainer=null,this.errorMessageElement=null,this.secondKeyTimeout=null,this.update()}focus(){this.elementToFocus&&this.elementToFocus.focus()}update(){this.element.removeChildren(),this.elementToFocus=null,this.shortcutInputs.clear(),this.element.classList.toggle("keybinds-editing",this.isEditing),this.element.createChild("div","keybinds-action-name keybinds-list-text").textContent=this.item.title(),this.shortcuts.forEach(this.createShortcutRow,this),0===this.shortcuts.length&&this.createEmptyInfo(),this.isEditing&&this.setupEditor()}createEmptyInfo(){if(a.ShortcutRegistry.ShortcutRegistry.instance().actionHasDefaultShortcut(this.item.id())){const e=o.Icon.create("keyboard-pen","keybinds-modified");a.ARIAUtils.setLabel(e,q(_.shortcutModified)),this.element.appendChild(e)}if(!this.isEditing){const e=this.element.createChild("div","keybinds-shortcut keybinds-list-text");a.ARIAUtils.setLabel(e,q(_.noShortcutForAction)),this.element.appendChild(this.createEditButton())}}setupEditor(){this.addShortcutLinkContainer=this.element.createChild("div","keybinds-shortcut");const e=a.UIUtils.createTextButton(q(_.addAShortcut),this.addShortcut.bind(this),{jslogContext:"add-shortcut"});this.addShortcutLinkContainer.appendChild(e),this.elementToFocus||(this.elementToFocus=e),this.errorMessageElement=this.element.createChild("div","keybinds-info keybinds-error hidden"),a.ARIAUtils.markAsAlert(this.errorMessageElement),this.element.appendChild(this.createIconButton(q(_.ResetShortcutsForAction),"undo","","undo",this.resetShortcutsToDefaults.bind(this))),this.confirmButton=this.createIconButton(q(_.confirmChanges),"checkmark","keybinds-confirm-button","confirm",(()=>{this.settingsTab.commitChanges(this.item,this.editedShortcuts),a.ARIAUtils.alert(q(_.shortcutChangesApplied,{PH1:this.item.title()}))})),this.element.appendChild(this.confirmButton),this.element.appendChild(this.createIconButton(q(_.discardChanges),"cross","keybinds-cancel-button","cancel",(()=>{this.settingsTab.stopEditing(this.item),a.ARIAUtils.alert(q(_.shortcutChangesDiscared))}))),this.element.addEventListener("keydown",(e=>{b.KeyboardUtilities.isEscKey(e)&&(this.settingsTab.stopEditing(this.item),e.consume(!0))}))}addShortcut(){const e=new a.KeyboardShortcut.KeyboardShortcut([],this.item.id(),"UnsetShortcut");this.shortcuts.push(e),this.update();const t=this.shortcutInputs.get(e);t&&t.focus()}createShortcutRow(e,s){if(this.editedShortcuts.has(e)&&!this.editedShortcuts.get(e))return;let i;"UnsetShortcut"===e.type||e.isDefault()||(i=o.Icon.create("keyboard-pen","keybinds-modified"),a.ARIAUtils.setLabel(i,q(_.shortcutModified)),this.element.appendChild(i));const n=this.element.createChild("div","keybinds-shortcut keybinds-list-text");if(this.isEditing){const t=n.createChild("input","harmony-input");t.setAttribute("jslog",`${g.textField().track({change:!0})}`),t.spellcheck=!1,t.maxLength=0,this.shortcutInputs.set(e,t),this.elementToFocus||(this.elementToFocus=t),t.value=e.title();const s=this.editedShortcuts.get(e);s&&(t.value=this.shortcutInputTextForDescriptors(s)),t.addEventListener("keydown",this.onShortcutInputKeyDown.bind(this,e,t)),t.addEventListener("blur",(()=>{null!==this.secondKeyTimeout&&(clearTimeout(this.secondKeyTimeout),this.secondKeyTimeout=null)})),n.appendChild(this.createIconButton(q(_.removeShortcut),"bin","keybinds-delete-button","delete",(()=>{const t=this.shortcuts.indexOf(e);e.isDefault()||this.shortcuts.splice(t,1),this.editedShortcuts.set(e,null),this.update(),this.focus(),this.validateInputs(),a.ARIAUtils.alert(q(_.shortcutRemoved,{PH1:this.item.title()}))})))}else{const i=t.Platform.isMac()?" ":" + ";e.descriptors.flatMap((e=>e.name.split(i))).forEach((e=>{n.createChild("div","keybinds-key").createChild("span").textContent=e})),0===s&&this.element.appendChild(this.createEditButton())}}createEditButton(){return this.createIconButton(q(_.editShortcut),"edit","keybinds-edit-button","edit",(()=>this.settingsTab.startEditing(this.item)))}createIconButton(e,t,s,i,o){const r=new n.Button.Button;return r.data={variant:"icon",iconName:t,jslogContext:i,title:e},r.addEventListener("click",o),a.ARIAUtils.setLabel(r,e),s&&r.classList.add(s),r}onShortcutInputKeyDown(e,t,s){if("Tab"!==s.key){const i=this.descriptorForEvent(s),n=this.editedShortcuts.get(e)||[];this.editedShortcuts.set(e,n);const o=2===n.length&&a.KeyboardShortcut.KeyboardShortcut.isModifier(n[1].key);2===n.length&&!o&&n.splice(0,2),this.secondKeyTimeout?(clearTimeout(this.secondKeyTimeout),this.secondKeyTimeout=null,n.push(i)):o?n[1]=i:a.KeyboardShortcut.KeyboardShortcut.isModifier(i.key)?n[0]=i:(n[0]=i,this.secondKeyTimeout=window.setTimeout((()=>{this.secondKeyTimeout=null}),a.ShortcutRegistry.KeyTimeout)),t.value=this.shortcutInputTextForDescriptors(n),this.validateInputs(),s.consume(!0)}}descriptorForEvent(e){const t=a.KeyboardShortcut.KeyboardShortcut.makeKeyFromEvent(e),s=a.KeyboardShortcut.KeyboardShortcut.keyCodeAndModifiersFromKey(t);let i=a.KeyboardShortcut.Keys[e.key]||a.KeyboardShortcut.KeyBindings[e.key];if(!i&&!/^[a-z]$/i.test(e.key)){const t=e.code;i=a.KeyboardShortcut.Keys[t]||a.KeyboardShortcut.KeyBindings[t],t.startsWith("Digit")?i=t.slice(5):t.startsWith("Key")&&(i=t.slice(3))}return a.KeyboardShortcut.KeyboardShortcut.makeDescriptor(i||e.key,s.modifiers)}shortcutInputTextForDescriptors(e){return e.map((e=>e.name)).join(" ")}resetShortcutsToDefaults(){this.editedShortcuts.clear();for(const e of this.shortcuts)if("UnsetShortcut"===e.type){const t=this.shortcuts.indexOf(e);this.shortcuts.splice(t,1)}else"UserShortcut"===e.type&&this.editedShortcuts.set(e,null);a.ShortcutRegistry.ShortcutRegistry.instance().disabledDefaultsForAction(this.item.id()).forEach((e=>{this.shortcuts.includes(e)||(this.shortcuts.push(e),this.editedShortcuts.set(e,e.descriptors))})),this.update(),this.focus(),a.ARIAUtils.alert(q(_.shortcutChangesRestored,{PH1:this.item.title()}))}onEscapeKeyPressed(e){const t=b.DOMUtilities.deepActiveElement(document);for(const[s,i]of this.shortcutInputs.entries())t===i&&this.onShortcutInputKeyDown(s,i,e)}validateInputs(){const e=this.confirmButton,t=this.errorMessageElement;e&&t&&(e.disabled=!1,t.classList.add("hidden"),this.shortcutInputs.forEach(((s,i)=>{const n=this.editedShortcuts.get(i);if(!n)return;if(n.some((e=>a.KeyboardShortcut.KeyboardShortcut.isModifier(e.key))))return e.disabled=!0,s.classList.add("error-input"),a.ARIAUtils.setInvalid(s,!0),t.classList.remove("hidden"),void(t.textContent=q(_.shortcutsCannotContainOnly));const o=a.ShortcutRegistry.ShortcutRegistry.instance().actionsForDescriptors(n).filter((e=>e!==this.item.id()));if(o.length){if(e.disabled=!0,s.classList.add("error-input"),a.ARIAUtils.setInvalid(s,!0),t.classList.remove("hidden"),!a.ActionRegistry.ActionRegistry.instance().hasAction(o[0]))return;const i=a.ActionRegistry.ActionRegistry.instance().getAction(o[0]),n=i.title(),r=i.category();t.textContent=q(_.thisShortcutIsInUseByS,{PH1:r,PH2:n})}else s.classList.remove("error-input"),a.ARIAUtils.setInvalid(s,!1)})))}}var J=Object.freeze({__proto__:null,KeybindsSettingsTab:X,ShortcutListItem:Y});export{H as AISettingsTab,F as FrameworkIgnoreListSettingsTab,J as KeybindsSettingsTab,L as SettingsScreen};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/i18n/i18n.js";import*as n from"../../core/platform/platform.js";import*as s from"../../core/sdk/sdk.js";import*as i from"../../models/persistence/persistence.js";import*as r from"../../models/text_utils/text_utils.js";import*as o from"../../models/workspace/workspace.js";import*as p from"../../ui/legacy/legacy.js";import*as a from"../../ui/components/icon_button/icon_button.js";import*as c from"../../ui/legacy/components/quick_open/quick_open.js";const l={scriptSnippet:"Script snippet #{PH1}",linkedTo:"Linked to {PH1}"},d=t.i18n.registerUIStrings("panels/snippets/ScriptSnippetFileSystem.ts",l),m=t.i18n.getLocalizedString.bind(void 0,d);function u(t){return e.ParsedURL.ParsedURL.rawPathToEncodedPathString(t)}function g(t){return e.ParsedURL.ParsedURL.encodedPathToRawPathString(t)}class S extends i.PlatformFileSystem.PlatformFileSystem{lastSnippetIdentifierSetting;snippetsSetting;constructor(){super("snippet://",i.PlatformFileSystem.PlatformFileSystemType.SNIPPETS,!1),this.lastSnippetIdentifierSetting=e.Settings.Settings.instance().createSetting("script-snippets-last-identifier",0),this.snippetsSetting=e.Settings.Settings.instance().createSetting("script-snippets",[])}initialFilePaths(){return this.snippetsSetting.get().map((e=>u(e.name)))}async createFile(e,t){const n=this.lastSnippetIdentifierSetting.get()+1;this.lastSnippetIdentifierSetting.set(n);const s=m(l.scriptSnippet,{PH1:n}),i=this.snippetsSetting.get();return i.push({name:s,content:""}),this.snippetsSetting.set(i),u(s)}async deleteFile(t){const n=g(e.ParsedURL.ParsedURL.substring(t,1)),s=this.snippetsSetting.get(),i=s.filter((e=>e.name!==n));return s.length!==i.length&&(this.snippetsSetting.set(i),!0)}async requestFileContent(t){const n=g(e.ParsedURL.ParsedURL.substring(t,1)),s=this.snippetsSetting.get().find((e=>e.name===n));return s?new r.ContentData.ContentData(s.content,!1,"text/javascript"):{error:`A snippet with name '${n}' was not found`}}async setFileContent(t,n,s){const i=g(e.ParsedURL.ParsedURL.substring(t,1)),r=this.snippetsSetting.get(),o=r.find((e=>e.name===i));return!!o&&(o.content=n,this.snippetsSetting.set(r),!0)}renameFile(t,n,s){const i=g(e.ParsedURL.ParsedURL.substring(t,1)),r=this.snippetsSetting.get(),o=r.find((e=>e.name===i));n=e.ParsedURL.ParsedURL.trim(n),o&&0!==n.length&&!r.find((e=>e.name===n))?(o.name=n,this.snippetsSetting.set(r),s(!0,n)):s(!1)}async searchInPath(e,t){const s=new RegExp(n.StringUtilities.escapeForRegExp(e),"i");return this.snippetsSetting.get().filter((e=>e.content.match(s))).map((e=>`snippet:///${u(e.name)}`))}mimeFromPath(e){return"text/javascript"}contentType(t){return e.ResourceType.resourceTypes.Script}tooltipForURL(t){return m(l.linkedTo,{PH1:g(e.ParsedURL.ParsedURL.sliceUrlToEncodedPathString(t,this.path().length))})}supportsAutomapping(){return!0}}async function f(t){if(!e.ParsedURL.schemeIs(t.url(),"snippet:"))return;const n=p.Context.Context.instance().flavor(s.RuntimeModel.ExecutionContext);if(!n)return;const i=n.runtimeModel,r=n.target().model(s.ConsoleModel.ConsoleModel);await t.requestContent(),t.commitWorkingCopy();const o=t.workingCopy();e.Console.Console.instance().show();const a=t.url(),c=await n.evaluate({expression:`${o}\n//# sourceURL=${a}`,objectGroup:"console",silent:!1,includeCommandLineAPI:!0,returnByValue:!1,generatePreview:!0,replMode:!0},!0,!0);if("exceptionDetails"in c&&c.exceptionDetails)return void r?.addMessage(s.ConsoleModel.ConsoleMessage.fromException(i,c.exceptionDetails,void 0,void 0,a));if(!("object"in c)||!c.object)return;const l=n.debuggerModel.scriptsForSourceURL(a);if(l.length<1)return;const d=l[l.length-1].scriptId,m={type:s.ConsoleModel.FrontendMessageType.Result,url:a,parameters:[c.object],executionContextId:n.id,scriptId:d};r?.addMessage(new s.ConsoleModel.ConsoleMessage(i,"javascript","info","",m))}function h(){const e=o.Workspace.WorkspaceImpl.instance().projectsForType(o.Workspace.projectTypes.FileSystem).find((e=>"snippets"===i.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding.fileSystemType(e)));if(!e)throw new Error("Unable to find workspace project for the snippets file system");return e}var P=Object.freeze({__proto__:null,SnippetFileSystem:S,evaluateScriptSnippet:f,findSnippetsProject:h,isSnippetsProject:function(e){return e.type()===o.Workspace.projectTypes.FileSystem&&i.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding.fileSystemType(e)===i.PlatformFileSystem.PlatformFileSystemType.SNIPPETS},isSnippetsUISourceCode:function(t){return e.ParsedURL.schemeIs(t.url(),"snippet:")}});const y={noSnippetsFound:"No snippets found.",run:"Run",snippet:"Snippet",runSnippet:"Run snippet"},F=t.i18n.registerUIStrings("panels/snippets/SnippetsQuickOpen.ts",y),L=t.i18n.getLocalizedString.bind(void 0,F),R=t.i18n.getLazilyComputedLocalizedString.bind(void 0,F);let U;class C extends c.FilteredListWidget.Provider{snippets;constructor(){super("snippet"),this.snippets=[]}static instance(e={forceNew:null}){const{forceNew:t}=e;return U&&!t||(U=new C),U}selectItem(e,t){null!==e&&f(this.snippets[e])}notFoundText(e){return L(y.noSnippetsFound)}attach(){this.snippets=[...h().uiSourceCodes()]}detach(){this.snippets=[]}itemScoreAt(e,t){return t.length/this.snippets[e].name().length}itemCount(){return this.snippets.length}itemKeyAt(e){return this.snippets[e].name()}renderItem(e,t,n,s){const i=a.Icon.create("snippet","snippet");n.parentElement?.parentElement?.insertBefore(i,n.parentElement),n.textContent=this.snippets[e].name(),c.FilteredListWidget.FilteredListWidget.highlightRanges(n,t,!0)}}c.FilteredListWidget.registerProvider({prefix:"!",iconName:"exclamation",provider:()=>Promise.resolve(C.instance()),helpTitle:R(y.runSnippet),titlePrefix:R(y.run),titleSuggestion:R(y.snippet)});var j=Object.freeze({__proto__:null,SnippetsQuickOpen:C});export{P as ScriptSnippetFileSystem,j as SnippetsQuickOpen};