simdeck 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (807) hide show
  1. package/README.md +34 -14
  2. package/build/simdeck-bin +0 -0
  3. package/client/dist/assets/index-D2-CFde1.css +1 -0
  4. package/client/dist/assets/index-E1gIgaOR.js +9 -0
  5. package/client/dist/chrome-devtools-ui/Images/3d-center.svg +1 -0
  6. package/client/dist/chrome-devtools-ui/Images/3d-pan.svg +1 -0
  7. package/client/dist/chrome-devtools-ui/Images/3d-rotate.svg +1 -0
  8. package/client/dist/chrome-devtools-ui/Images/Images.js +296 -0
  9. package/client/dist/chrome-devtools-ui/Images/accelerometer-back.svg +1 -0
  10. package/client/dist/chrome-devtools-ui/Images/accelerometer-bottom.png +0 -0
  11. package/client/dist/chrome-devtools-ui/Images/accelerometer-front.svg +1 -0
  12. package/client/dist/chrome-devtools-ui/Images/accelerometer-left.png +0 -0
  13. package/client/dist/chrome-devtools-ui/Images/accelerometer-right.png +0 -0
  14. package/client/dist/chrome-devtools-ui/Images/accelerometer-top.png +0 -0
  15. package/client/dist/chrome-devtools-ui/Images/account-tree.svg +1 -0
  16. package/client/dist/chrome-devtools-ui/Images/align-content-center.svg +1 -0
  17. package/client/dist/chrome-devtools-ui/Images/align-content-end.svg +1 -0
  18. package/client/dist/chrome-devtools-ui/Images/align-content-space-around.svg +1 -0
  19. package/client/dist/chrome-devtools-ui/Images/align-content-space-between.svg +1 -0
  20. package/client/dist/chrome-devtools-ui/Images/align-content-space-evenly.svg +1 -0
  21. package/client/dist/chrome-devtools-ui/Images/align-content-start.svg +1 -0
  22. package/client/dist/chrome-devtools-ui/Images/align-content-stretch.svg +1 -0
  23. package/client/dist/chrome-devtools-ui/Images/align-items-baseline.svg +1 -0
  24. package/client/dist/chrome-devtools-ui/Images/align-items-center.svg +1 -0
  25. package/client/dist/chrome-devtools-ui/Images/align-items-end.svg +1 -0
  26. package/client/dist/chrome-devtools-ui/Images/align-items-start.svg +1 -0
  27. package/client/dist/chrome-devtools-ui/Images/align-items-stretch.svg +1 -0
  28. package/client/dist/chrome-devtools-ui/Images/align-self-center.svg +1 -0
  29. package/client/dist/chrome-devtools-ui/Images/align-self-end.svg +1 -0
  30. package/client/dist/chrome-devtools-ui/Images/align-self-start.svg +1 -0
  31. package/client/dist/chrome-devtools-ui/Images/align-self-stretch.svg +1 -0
  32. package/client/dist/chrome-devtools-ui/Images/animation.svg +1 -0
  33. package/client/dist/chrome-devtools-ui/Images/arrow-back.svg +1 -0
  34. package/client/dist/chrome-devtools-ui/Images/arrow-collapse.svg +1 -0
  35. package/client/dist/chrome-devtools-ui/Images/arrow-down.svg +1 -0
  36. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-dark.svg +1 -0
  37. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-light.svg +1 -0
  38. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down.svg +1 -0
  39. package/client/dist/chrome-devtools-ui/Images/arrow-forward.svg +1 -0
  40. package/client/dist/chrome-devtools-ui/Images/arrow-right-circle.svg +1 -0
  41. package/client/dist/chrome-devtools-ui/Images/arrow-up-down-circle.svg +1 -0
  42. package/client/dist/chrome-devtools-ui/Images/arrow-up-down.svg +1 -0
  43. package/client/dist/chrome-devtools-ui/Images/arrow-up.svg +1 -0
  44. package/client/dist/chrome-devtools-ui/Images/bell.svg +1 -0
  45. package/client/dist/chrome-devtools-ui/Images/bezier-curve-filled.svg +1 -0
  46. package/client/dist/chrome-devtools-ui/Images/bin.svg +1 -0
  47. package/client/dist/chrome-devtools-ui/Images/bottom-panel-close.svg +1 -0
  48. package/client/dist/chrome-devtools-ui/Images/bottom-panel-open.svg +1 -0
  49. package/client/dist/chrome-devtools-ui/Images/brackets.svg +1 -0
  50. package/client/dist/chrome-devtools-ui/Images/breakpoint-circle.svg +1 -0
  51. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed-filled.svg +1 -0
  52. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed.svg +1 -0
  53. package/client/dist/chrome-devtools-ui/Images/brush-2.svg +1 -0
  54. package/client/dist/chrome-devtools-ui/Images/brush-filled.svg +1 -0
  55. package/client/dist/chrome-devtools-ui/Images/brush.svg +1 -0
  56. package/client/dist/chrome-devtools-ui/Images/bug.svg +1 -0
  57. package/client/dist/chrome-devtools-ui/Images/bundle.svg +1 -0
  58. package/client/dist/chrome-devtools-ui/Images/button-magic.svg +1 -0
  59. package/client/dist/chrome-devtools-ui/Images/calendar-today.svg +1 -0
  60. package/client/dist/chrome-devtools-ui/Images/center-focus-weak.svg +1 -0
  61. package/client/dist/chrome-devtools-ui/Images/check-circle.svg +1 -0
  62. package/client/dist/chrome-devtools-ui/Images/check-double.svg +1 -0
  63. package/client/dist/chrome-devtools-ui/Images/checker.svg +1 -0
  64. package/client/dist/chrome-devtools-ui/Images/checkmark.svg +1 -0
  65. package/client/dist/chrome-devtools-ui/Images/chevron-double-right.svg +1 -0
  66. package/client/dist/chrome-devtools-ui/Images/chevron-down.svg +1 -0
  67. package/client/dist/chrome-devtools-ui/Images/chevron-left-dot.svg +1 -0
  68. package/client/dist/chrome-devtools-ui/Images/chevron-left.svg +1 -0
  69. package/client/dist/chrome-devtools-ui/Images/chevron-right.svg +1 -0
  70. package/client/dist/chrome-devtools-ui/Images/chevron-up.svg +1 -0
  71. package/client/dist/chrome-devtools-ui/Images/chromeLeft.avif +0 -0
  72. package/client/dist/chrome-devtools-ui/Images/chromeMiddle.avif +0 -0
  73. package/client/dist/chrome-devtools-ui/Images/chromeRight.avif +0 -0
  74. package/client/dist/chrome-devtools-ui/Images/class.svg +1 -0
  75. package/client/dist/chrome-devtools-ui/Images/clear-list.svg +1 -0
  76. package/client/dist/chrome-devtools-ui/Images/clear.svg +1 -0
  77. package/client/dist/chrome-devtools-ui/Images/cloud.svg +1 -0
  78. package/client/dist/chrome-devtools-ui/Images/code-circle.svg +1 -0
  79. package/client/dist/chrome-devtools-ui/Images/code.svg +1 -0
  80. package/client/dist/chrome-devtools-ui/Images/colon.svg +1 -0
  81. package/client/dist/chrome-devtools-ui/Images/color-picker-filled.svg +1 -0
  82. package/client/dist/chrome-devtools-ui/Images/color-picker.svg +1 -0
  83. package/client/dist/chrome-devtools-ui/Images/compress.svg +1 -0
  84. package/client/dist/chrome-devtools-ui/Images/console-conditional-breakpoint.svg +1 -0
  85. package/client/dist/chrome-devtools-ui/Images/console-logpoint.svg +1 -0
  86. package/client/dist/chrome-devtools-ui/Images/cookie.svg +1 -0
  87. package/client/dist/chrome-devtools-ui/Images/cookie_off.svg +1 -0
  88. package/client/dist/chrome-devtools-ui/Images/copy.svg +1 -0
  89. package/client/dist/chrome-devtools-ui/Images/corporate-fare.svg +1 -0
  90. package/client/dist/chrome-devtools-ui/Images/credit-card.svg +1 -0
  91. package/client/dist/chrome-devtools-ui/Images/cross-circle-filled.svg +1 -0
  92. package/client/dist/chrome-devtools-ui/Images/cross-circle.svg +1 -0
  93. package/client/dist/chrome-devtools-ui/Images/cross.svg +1 -0
  94. package/client/dist/chrome-devtools-ui/Images/cssoverview_icons_2x.avif +0 -0
  95. package/client/dist/chrome-devtools-ui/Images/custom-typography.svg +1 -0
  96. package/client/dist/chrome-devtools-ui/Images/database.svg +1 -0
  97. package/client/dist/chrome-devtools-ui/Images/deployed.svg +1 -0
  98. package/client/dist/chrome-devtools-ui/Images/device-fold.svg +1 -0
  99. package/client/dist/chrome-devtools-ui/Images/devices.svg +1 -0
  100. package/client/dist/chrome-devtools-ui/Images/devtools-thumbnail.svg +1 -0
  101. package/client/dist/chrome-devtools-ui/Images/devtools-tips.svg +1 -0
  102. package/client/dist/chrome-devtools-ui/Images/devtools.svg +1 -0
  103. package/client/dist/chrome-devtools-ui/Images/difference.svg +1 -0
  104. package/client/dist/chrome-devtools-ui/Images/dock-bottom.svg +1 -0
  105. package/client/dist/chrome-devtools-ui/Images/dock-left.svg +1 -0
  106. package/client/dist/chrome-devtools-ui/Images/dock-right.svg +1 -0
  107. package/client/dist/chrome-devtools-ui/Images/dock-window.svg +1 -0
  108. package/client/dist/chrome-devtools-ui/Images/document.svg +1 -0
  109. package/client/dist/chrome-devtools-ui/Images/dog-paw.svg +1 -0
  110. package/client/dist/chrome-devtools-ui/Images/domain.svg +1 -0
  111. package/client/dist/chrome-devtools-ui/Images/dots-horizontal.svg +1 -0
  112. package/client/dist/chrome-devtools-ui/Images/dots-vertical.svg +1 -0
  113. package/client/dist/chrome-devtools-ui/Images/download.svg +1 -0
  114. package/client/dist/chrome-devtools-ui/Images/edit.svg +1 -0
  115. package/client/dist/chrome-devtools-ui/Images/empty.svg +1 -0
  116. package/client/dist/chrome-devtools-ui/Images/errorWave.svg +1 -0
  117. package/client/dist/chrome-devtools-ui/Images/exclamation.svg +1 -0
  118. package/client/dist/chrome-devtools-ui/Images/experiment-check.svg +1 -0
  119. package/client/dist/chrome-devtools-ui/Images/experiment.svg +1 -0
  120. package/client/dist/chrome-devtools-ui/Images/extension.svg +1 -0
  121. package/client/dist/chrome-devtools-ui/Images/eye.svg +1 -0
  122. package/client/dist/chrome-devtools-ui/Images/favicon.ico +0 -0
  123. package/client/dist/chrome-devtools-ui/Images/file-document.svg +1 -0
  124. package/client/dist/chrome-devtools-ui/Images/file-fetch-xhr.svg +1 -0
  125. package/client/dist/chrome-devtools-ui/Images/file-font.svg +1 -0
  126. package/client/dist/chrome-devtools-ui/Images/file-generic.svg +1 -0
  127. package/client/dist/chrome-devtools-ui/Images/file-image.svg +1 -0
  128. package/client/dist/chrome-devtools-ui/Images/file-json.svg +1 -0
  129. package/client/dist/chrome-devtools-ui/Images/file-manifest.svg +1 -0
  130. package/client/dist/chrome-devtools-ui/Images/file-media.svg +1 -0
  131. package/client/dist/chrome-devtools-ui/Images/file-script.svg +1 -0
  132. package/client/dist/chrome-devtools-ui/Images/file-snippet.svg +1 -0
  133. package/client/dist/chrome-devtools-ui/Images/file-stylesheet.svg +1 -0
  134. package/client/dist/chrome-devtools-ui/Images/file-wasm.svg +1 -0
  135. package/client/dist/chrome-devtools-ui/Images/file-websocket.svg +1 -0
  136. package/client/dist/chrome-devtools-ui/Images/filter-clear.svg +1 -0
  137. package/client/dist/chrome-devtools-ui/Images/filter-filled.svg +1 -0
  138. package/client/dist/chrome-devtools-ui/Images/filter.svg +1 -0
  139. package/client/dist/chrome-devtools-ui/Images/flex-direction.svg +1 -0
  140. package/client/dist/chrome-devtools-ui/Images/flex-no-wrap.svg +1 -0
  141. package/client/dist/chrome-devtools-ui/Images/flex-wrap.svg +1 -0
  142. package/client/dist/chrome-devtools-ui/Images/flow.svg +1 -0
  143. package/client/dist/chrome-devtools-ui/Images/fold-more.svg +1 -0
  144. package/client/dist/chrome-devtools-ui/Images/folder.svg +1 -0
  145. package/client/dist/chrome-devtools-ui/Images/frame-crossed.svg +1 -0
  146. package/client/dist/chrome-devtools-ui/Images/frame-icon.svg +1 -0
  147. package/client/dist/chrome-devtools-ui/Images/frame.svg +1 -0
  148. package/client/dist/chrome-devtools-ui/Images/gear-filled.svg +1 -0
  149. package/client/dist/chrome-devtools-ui/Images/gear.svg +1 -0
  150. package/client/dist/chrome-devtools-ui/Images/gears.svg +1 -0
  151. package/client/dist/chrome-devtools-ui/Images/global.svg +1 -0
  152. package/client/dist/chrome-devtools-ui/Images/google.svg +1 -0
  153. package/client/dist/chrome-devtools-ui/Images/goto-filled.svg +1 -0
  154. package/client/dist/chrome-devtools-ui/Images/grid-on.svg +1 -0
  155. package/client/dist/chrome-devtools-ui/Images/group.svg +1 -0
  156. package/client/dist/chrome-devtools-ui/Images/heap-snapshot.svg +1 -0
  157. package/client/dist/chrome-devtools-ui/Images/heap-snapshots.svg +1 -0
  158. package/client/dist/chrome-devtools-ui/Images/help.svg +1 -0
  159. package/client/dist/chrome-devtools-ui/Images/history.svg +1 -0
  160. package/client/dist/chrome-devtools-ui/Images/home.svg +1 -0
  161. package/client/dist/chrome-devtools-ui/Images/hover.svg +1 -0
  162. package/client/dist/chrome-devtools-ui/Images/iframe-crossed.svg +1 -0
  163. package/client/dist/chrome-devtools-ui/Images/iframe.svg +1 -0
  164. package/client/dist/chrome-devtools-ui/Images/import.svg +1 -0
  165. package/client/dist/chrome-devtools-ui/Images/indeterminate-question-box.svg +1 -0
  166. package/client/dist/chrome-devtools-ui/Images/info-filled.svg +1 -0
  167. package/client/dist/chrome-devtools-ui/Images/info.svg +1 -0
  168. package/client/dist/chrome-devtools-ui/Images/issue-cross-filled.svg +1 -0
  169. package/client/dist/chrome-devtools-ui/Images/issue-exclamation-filled.svg +1 -0
  170. package/client/dist/chrome-devtools-ui/Images/issue-questionmark-filled.svg +1 -0
  171. package/client/dist/chrome-devtools-ui/Images/issue-text-filled.svg +1 -0
  172. package/client/dist/chrome-devtools-ui/Images/justify-content-center.svg +1 -0
  173. package/client/dist/chrome-devtools-ui/Images/justify-content-end.svg +1 -0
  174. package/client/dist/chrome-devtools-ui/Images/justify-content-space-around.svg +1 -0
  175. package/client/dist/chrome-devtools-ui/Images/justify-content-space-between.svg +1 -0
  176. package/client/dist/chrome-devtools-ui/Images/justify-content-space-evenly.svg +1 -0
  177. package/client/dist/chrome-devtools-ui/Images/justify-content-start.svg +1 -0
  178. package/client/dist/chrome-devtools-ui/Images/justify-items-center.svg +1 -0
  179. package/client/dist/chrome-devtools-ui/Images/justify-items-end.svg +1 -0
  180. package/client/dist/chrome-devtools-ui/Images/justify-items-start.svg +1 -0
  181. package/client/dist/chrome-devtools-ui/Images/justify-items-stretch.svg +1 -0
  182. package/client/dist/chrome-devtools-ui/Images/keyboard-arrow-right.svg +1 -0
  183. package/client/dist/chrome-devtools-ui/Images/keyboard-full.svg +1 -0
  184. package/client/dist/chrome-devtools-ui/Images/keyboard-pen.svg +1 -0
  185. package/client/dist/chrome-devtools-ui/Images/keyboard.svg +1 -0
  186. package/client/dist/chrome-devtools-ui/Images/label.svg +1 -0
  187. package/client/dist/chrome-devtools-ui/Images/large-arrow-right-filled.svg +1 -0
  188. package/client/dist/chrome-devtools-ui/Images/layers-filled.svg +1 -0
  189. package/client/dist/chrome-devtools-ui/Images/layers.svg +1 -0
  190. package/client/dist/chrome-devtools-ui/Images/left-panel-close.svg +1 -0
  191. package/client/dist/chrome-devtools-ui/Images/left-panel-open.svg +1 -0
  192. package/client/dist/chrome-devtools-ui/Images/lightbulb-spark.svg +1 -0
  193. package/client/dist/chrome-devtools-ui/Images/lightbulb.svg +1 -0
  194. package/client/dist/chrome-devtools-ui/Images/lighthouse_logo.svg +1 -0
  195. package/client/dist/chrome-devtools-ui/Images/list.svg +1 -0
  196. package/client/dist/chrome-devtools-ui/Images/location-on.svg +1 -0
  197. package/client/dist/chrome-devtools-ui/Images/lock.svg +1 -0
  198. package/client/dist/chrome-devtools-ui/Images/match-case.svg +1 -0
  199. package/client/dist/chrome-devtools-ui/Images/match-whole-word.svg +1 -0
  200. package/client/dist/chrome-devtools-ui/Images/memory.svg +1 -0
  201. package/client/dist/chrome-devtools-ui/Images/minus.svg +1 -0
  202. package/client/dist/chrome-devtools-ui/Images/mop.svg +1 -0
  203. package/client/dist/chrome-devtools-ui/Images/mouse.svg +1 -0
  204. package/client/dist/chrome-devtools-ui/Images/navigationControls.png +0 -0
  205. package/client/dist/chrome-devtools-ui/Images/navigationControls_2x.png +0 -0
  206. package/client/dist/chrome-devtools-ui/Images/network-settings.svg +1 -0
  207. package/client/dist/chrome-devtools-ui/Images/node-stack-icon.svg +1 -0
  208. package/client/dist/chrome-devtools-ui/Images/nodeIcon.avif +0 -0
  209. package/client/dist/chrome-devtools-ui/Images/open-externally.svg +1 -0
  210. package/client/dist/chrome-devtools-ui/Images/override.svg +1 -0
  211. package/client/dist/chrome-devtools-ui/Images/palette.svg +1 -0
  212. package/client/dist/chrome-devtools-ui/Images/pause-circle.svg +1 -0
  213. package/client/dist/chrome-devtools-ui/Images/pause.svg +1 -0
  214. package/client/dist/chrome-devtools-ui/Images/pen-spark.svg +1 -0
  215. package/client/dist/chrome-devtools-ui/Images/performance-panel-delete-annotation.svg +1 -0
  216. package/client/dist/chrome-devtools-ui/Images/performance-panel-diagram.svg +1 -0
  217. package/client/dist/chrome-devtools-ui/Images/performance-panel-entry-label.svg +1 -0
  218. package/client/dist/chrome-devtools-ui/Images/performance-panel-time-range.svg +1 -0
  219. package/client/dist/chrome-devtools-ui/Images/performance.svg +1 -0
  220. package/client/dist/chrome-devtools-ui/Images/person.svg +1 -0
  221. package/client/dist/chrome-devtools-ui/Images/photo-camera.svg +1 -0
  222. package/client/dist/chrome-devtools-ui/Images/play.svg +1 -0
  223. package/client/dist/chrome-devtools-ui/Images/plus.svg +1 -0
  224. package/client/dist/chrome-devtools-ui/Images/policy.svg +1 -0
  225. package/client/dist/chrome-devtools-ui/Images/popoverArrows.png +0 -0
  226. package/client/dist/chrome-devtools-ui/Images/popup.svg +1 -0
  227. package/client/dist/chrome-devtools-ui/Images/preview_feature_video_thumbnail.svg +1 -0
  228. package/client/dist/chrome-devtools-ui/Images/profile.svg +1 -0
  229. package/client/dist/chrome-devtools-ui/Images/psychiatry.svg +1 -0
  230. package/client/dist/chrome-devtools-ui/Images/react_native/learn-debugging-basics.jpg +0 -0
  231. package/client/dist/chrome-devtools-ui/Images/react_native/learn-native-debugging.jpg +0 -0
  232. package/client/dist/chrome-devtools-ui/Images/react_native/learn-react-native-devtools.jpg +0 -0
  233. package/client/dist/chrome-devtools-ui/Images/react_native/welcomeIcon.png +0 -0
  234. package/client/dist/chrome-devtools-ui/Images/record-start.svg +1 -0
  235. package/client/dist/chrome-devtools-ui/Images/record-stop.svg +1 -0
  236. package/client/dist/chrome-devtools-ui/Images/redo.svg +1 -0
  237. package/client/dist/chrome-devtools-ui/Images/refresh.svg +1 -0
  238. package/client/dist/chrome-devtools-ui/Images/regular-expression.svg +1 -0
  239. package/client/dist/chrome-devtools-ui/Images/replace.svg +1 -0
  240. package/client/dist/chrome-devtools-ui/Images/replay.svg +1 -0
  241. package/client/dist/chrome-devtools-ui/Images/report.svg +1 -0
  242. package/client/dist/chrome-devtools-ui/Images/resizeDiagonal.svg +1 -0
  243. package/client/dist/chrome-devtools-ui/Images/resizeHorizontal.svg +1 -0
  244. package/client/dist/chrome-devtools-ui/Images/resizeVertical.svg +1 -0
  245. package/client/dist/chrome-devtools-ui/Images/resume.svg +1 -0
  246. package/client/dist/chrome-devtools-ui/Images/review.svg +1 -0
  247. package/client/dist/chrome-devtools-ui/Images/right-panel-close.svg +1 -0
  248. package/client/dist/chrome-devtools-ui/Images/right-panel-open.svg +1 -0
  249. package/client/dist/chrome-devtools-ui/Images/scissors.svg +1 -0
  250. package/client/dist/chrome-devtools-ui/Images/screen-rotation.svg +1 -0
  251. package/client/dist/chrome-devtools-ui/Images/search.svg +1 -0
  252. package/client/dist/chrome-devtools-ui/Images/select-element.svg +1 -0
  253. package/client/dist/chrome-devtools-ui/Images/send.svg +1 -0
  254. package/client/dist/chrome-devtools-ui/Images/shadow.svg +1 -0
  255. package/client/dist/chrome-devtools-ui/Images/small-status-dot.svg +1 -0
  256. package/client/dist/chrome-devtools-ui/Images/smart-assistant.svg +1 -0
  257. package/client/dist/chrome-devtools-ui/Images/snippet.svg +1 -0
  258. package/client/dist/chrome-devtools-ui/Images/spark-info.svg +1 -0
  259. package/client/dist/chrome-devtools-ui/Images/star.svg +1 -0
  260. package/client/dist/chrome-devtools-ui/Images/step-into.svg +1 -0
  261. package/client/dist/chrome-devtools-ui/Images/step-out.svg +1 -0
  262. package/client/dist/chrome-devtools-ui/Images/step-over.svg +1 -0
  263. package/client/dist/chrome-devtools-ui/Images/step.svg +1 -0
  264. package/client/dist/chrome-devtools-ui/Images/stop.svg +1 -0
  265. package/client/dist/chrome-devtools-ui/Images/symbol.svg +1 -0
  266. package/client/dist/chrome-devtools-ui/Images/sync.svg +1 -0
  267. package/client/dist/chrome-devtools-ui/Images/table.svg +1 -0
  268. package/client/dist/chrome-devtools-ui/Images/terminal.svg +1 -0
  269. package/client/dist/chrome-devtools-ui/Images/thumb-down-filled.svg +1 -0
  270. package/client/dist/chrome-devtools-ui/Images/thumb-down.svg +1 -0
  271. package/client/dist/chrome-devtools-ui/Images/thumb-up-filled.svg +1 -0
  272. package/client/dist/chrome-devtools-ui/Images/thumb-up.svg +1 -0
  273. package/client/dist/chrome-devtools-ui/Images/tonality.svg +1 -0
  274. package/client/dist/chrome-devtools-ui/Images/toolbarResizerVertical.png +0 -0
  275. package/client/dist/chrome-devtools-ui/Images/top-panel-close.svg +1 -0
  276. package/client/dist/chrome-devtools-ui/Images/top-panel-open.svg +1 -0
  277. package/client/dist/chrome-devtools-ui/Images/touch-app.svg +1 -0
  278. package/client/dist/chrome-devtools-ui/Images/touchCursor.png +0 -0
  279. package/client/dist/chrome-devtools-ui/Images/touchCursor_2x.png +0 -0
  280. package/client/dist/chrome-devtools-ui/Images/triangle-bottom-right.svg +1 -0
  281. package/client/dist/chrome-devtools-ui/Images/triangle-down.svg +1 -0
  282. package/client/dist/chrome-devtools-ui/Images/triangle-left.svg +1 -0
  283. package/client/dist/chrome-devtools-ui/Images/triangle-right.svg +1 -0
  284. package/client/dist/chrome-devtools-ui/Images/triangle-up.svg +1 -0
  285. package/client/dist/chrome-devtools-ui/Images/tune.svg +1 -0
  286. package/client/dist/chrome-devtools-ui/Images/undo.svg +1 -0
  287. package/client/dist/chrome-devtools-ui/Images/warning-filled.svg +1 -0
  288. package/client/dist/chrome-devtools-ui/Images/warning.svg +1 -0
  289. package/client/dist/chrome-devtools-ui/Images/watch.svg +1 -0
  290. package/client/dist/chrome-devtools-ui/Images/whatsnew.svg +1 -0
  291. package/client/dist/chrome-devtools-ui/Images/width.svg +1 -0
  292. package/client/dist/chrome-devtools-ui/Images/zoom-in.svg +1 -0
  293. package/client/dist/chrome-devtools-ui/Tests.js +1700 -0
  294. package/client/dist/chrome-devtools-ui/application_tokens.css +407 -0
  295. package/client/dist/chrome-devtools-ui/core/common/common.js +1 -0
  296. package/client/dist/chrome-devtools-ui/core/dom_extension/dom_extension.js +1 -0
  297. package/client/dist/chrome-devtools-ui/core/host/host.js +1 -0
  298. package/client/dist/chrome-devtools-ui/core/i18n/i18n.js +1 -0
  299. package/client/dist/chrome-devtools-ui/core/i18n/locales/en-US.json +1 -0
  300. package/client/dist/chrome-devtools-ui/core/i18n/locales/zh.json +1 -0
  301. package/client/dist/chrome-devtools-ui/core/platform/platform.js +1 -0
  302. package/client/dist/chrome-devtools-ui/core/protocol_client/protocol_client.js +1 -0
  303. package/client/dist/chrome-devtools-ui/core/rn_experiments/rn_experiments.js +1 -0
  304. package/client/dist/chrome-devtools-ui/core/root/root.js +1 -0
  305. package/client/dist/chrome-devtools-ui/core/sdk/sdk-meta.js +1 -0
  306. package/client/dist/chrome-devtools-ui/core/sdk/sdk.js +1 -0
  307. package/client/dist/chrome-devtools-ui/design_system_tokens.css +782 -0
  308. package/client/dist/chrome-devtools-ui/device_mode_emulation_frame.html +24 -0
  309. package/client/dist/chrome-devtools-ui/devtools_app.html +24 -0
  310. package/client/dist/chrome-devtools-ui/devtools_compatibility.js +1741 -0
  311. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
  312. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
  313. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
  314. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
  315. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
  316. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
  317. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
  318. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
  319. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
  320. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
  321. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
  322. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
  323. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
  324. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
  325. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
  326. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
  327. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
  328. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
  329. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
  330. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
  331. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
  332. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
  333. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
  334. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
  335. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
  336. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
  337. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
  338. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
  339. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
  340. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
  341. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
  342. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
  343. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-landscape.avif +0 -0
  344. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-portrait.avif +0 -0
  345. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
  346. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
  347. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
  348. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
  349. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
  350. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
  351. package/client/dist/chrome-devtools-ui/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
  352. package/client/dist/chrome-devtools-ui/entrypoints/devtools_app/devtools_app.js +1 -0
  353. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/FormatterActions.js +1 -0
  354. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
  355. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker.js +1 -0
  356. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  357. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  358. package/client/dist/chrome-devtools-ui/entrypoints/inspector/inspector.js +1 -0
  359. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main-meta.js +1 -0
  360. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main.js +1 -0
  361. package/client/dist/chrome-devtools-ui/entrypoints/js_app/js_app.js +1 -0
  362. package/client/dist/chrome-devtools-ui/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
  363. package/client/dist/chrome-devtools-ui/entrypoints/main/main-meta.js +1 -0
  364. package/client/dist/chrome-devtools-ui/entrypoints/main/main.js +48 -0
  365. package/client/dist/chrome-devtools-ui/entrypoints/ndb_app/ndb_app.js +1 -0
  366. package/client/dist/chrome-devtools-ui/entrypoints/node_app/node_app.js +1 -0
  367. package/client/dist/chrome-devtools-ui/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.js +1 -0
  368. package/client/dist/chrome-devtools-ui/entrypoints/rn_fusebox/rn_fusebox.js +24 -0
  369. package/client/dist/chrome-devtools-ui/entrypoints/shell/shell.js +1 -0
  370. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  371. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
  372. package/client/dist/chrome-devtools-ui/entrypoints/worker_app/worker_app.js +1 -0
  373. package/client/dist/chrome-devtools-ui/inspector.html +24 -0
  374. package/client/dist/chrome-devtools-ui/integration_test_runner.html +40 -0
  375. package/client/dist/chrome-devtools-ui/js_app.html +24 -0
  376. package/client/dist/chrome-devtools-ui/legacy_test_runner/legacy_test_runner.js +13 -0
  377. package/client/dist/chrome-devtools-ui/legacy_test_runner/test_runner/test_runner.js +1 -0
  378. package/client/dist/chrome-devtools-ui/models/ai_assistance/ai_assistance.js +1 -0
  379. package/client/dist/chrome-devtools-ui/models/autofill_manager/autofill_manager.js +1 -0
  380. package/client/dist/chrome-devtools-ui/models/bindings/bindings.js +1 -0
  381. package/client/dist/chrome-devtools-ui/models/breakpoints/breakpoints.js +1 -0
  382. package/client/dist/chrome-devtools-ui/models/cpu_profile/cpu_profile.js +1 -0
  383. package/client/dist/chrome-devtools-ui/models/crux-manager/crux-manager.js +1 -0
  384. package/client/dist/chrome-devtools-ui/models/emulation/emulation.js +1 -0
  385. package/client/dist/chrome-devtools-ui/models/extensions/extensions.js +1 -0
  386. package/client/dist/chrome-devtools-ui/models/formatter/formatter.js +1 -0
  387. package/client/dist/chrome-devtools-ui/models/har/har.js +1 -0
  388. package/client/dist/chrome-devtools-ui/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
  389. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  390. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  391. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  392. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  393. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  394. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  395. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  396. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  397. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  398. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  399. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  400. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  401. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  402. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  403. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  404. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  405. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  406. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  407. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  408. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  409. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  410. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  411. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  412. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  413. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  414. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  415. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  416. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  417. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  418. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  419. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  420. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  421. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  422. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  423. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  424. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  425. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  426. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  427. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  428. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  429. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  430. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  431. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  432. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  433. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  434. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  435. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  436. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  437. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  438. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  439. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  440. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  441. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  442. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  443. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  444. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  445. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  446. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  447. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  448. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  449. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  450. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  451. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  452. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  453. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  454. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  455. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  456. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  457. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  458. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  459. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  460. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  461. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  462. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  463. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  464. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  465. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  466. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/deprecation.md +3 -0
  467. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  468. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  469. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  470. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  471. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  472. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  473. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  474. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  475. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  476. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  477. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  478. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  479. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  480. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  481. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  482. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  483. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  484. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  485. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  486. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  487. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  488. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  489. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  490. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  491. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  492. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  493. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  494. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  495. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  496. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
  497. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  498. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  499. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  500. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  501. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  502. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  503. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  504. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  505. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
  506. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  507. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/heavyAd.md +10 -0
  508. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/mixedContent.md +5 -0
  509. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  510. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  511. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  512. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  513. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  514. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  515. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  516. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  517. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  518. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  519. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  520. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  521. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  522. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  523. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  524. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  525. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  526. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  527. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  528. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  529. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  530. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  531. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  532. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  533. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  534. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  535. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  536. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  537. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  538. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  539. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  540. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  541. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  542. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  543. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  544. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  545. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  546. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  547. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  548. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  549. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  550. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  551. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  552. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  553. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  554. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  555. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  556. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  557. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  558. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  559. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  560. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +12 -0
  561. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  562. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  563. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  564. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  565. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  566. package/client/dist/chrome-devtools-ui/models/issues_manager/issues_manager.js +1 -0
  567. package/client/dist/chrome-devtools-ui/models/javascript_metadata/javascript_metadata.js +1 -0
  568. package/client/dist/chrome-devtools-ui/models/live-metrics/live-metrics.js +1 -0
  569. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/spec/spec.js +1 -0
  570. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
  571. package/client/dist/chrome-devtools-ui/models/logs/logs-meta.js +1 -0
  572. package/client/dist/chrome-devtools-ui/models/logs/logs.js +1 -0
  573. package/client/dist/chrome-devtools-ui/models/persistence/persistence-meta.js +1 -0
  574. package/client/dist/chrome-devtools-ui/models/persistence/persistence.js +1 -0
  575. package/client/dist/chrome-devtools-ui/models/project_settings/project_settings.js +1 -0
  576. package/client/dist/chrome-devtools-ui/models/react_native/react_native.js +1 -0
  577. package/client/dist/chrome-devtools-ui/models/source_map_scopes/source_map_scopes.js +1 -0
  578. package/client/dist/chrome-devtools-ui/models/text_utils/text_utils.js +1 -0
  579. package/client/dist/chrome-devtools-ui/models/trace/extras/extras.js +1 -0
  580. package/client/dist/chrome-devtools-ui/models/trace/handlers/handlers.js +1 -0
  581. package/client/dist/chrome-devtools-ui/models/trace/helpers/helpers.js +1 -0
  582. package/client/dist/chrome-devtools-ui/models/trace/insights/insights.js +1 -0
  583. package/client/dist/chrome-devtools-ui/models/trace/lantern/core/core.js +1 -0
  584. package/client/dist/chrome-devtools-ui/models/trace/lantern/graph/graph.js +1 -0
  585. package/client/dist/chrome-devtools-ui/models/trace/lantern/lantern.js +1 -0
  586. package/client/dist/chrome-devtools-ui/models/trace/lantern/metrics/metrics.js +1 -0
  587. package/client/dist/chrome-devtools-ui/models/trace/lantern/simulation/simulation.js +1 -0
  588. package/client/dist/chrome-devtools-ui/models/trace/lantern/types/types.js +1 -0
  589. package/client/dist/chrome-devtools-ui/models/trace/trace.js +1 -0
  590. package/client/dist/chrome-devtools-ui/models/trace/types/types.js +1 -0
  591. package/client/dist/chrome-devtools-ui/models/workspace/workspace.js +1 -0
  592. package/client/dist/chrome-devtools-ui/models/workspace_diff/workspace_diff.js +1 -0
  593. package/client/dist/chrome-devtools-ui/ndb_app.html +24 -0
  594. package/client/dist/chrome-devtools-ui/node_app.html +24 -0
  595. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility-meta.js +1 -0
  596. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility.js +1 -0
  597. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance-meta.js +1 -0
  598. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance.js +512 -0
  599. package/client/dist/chrome-devtools-ui/panels/animation/animation-meta.js +1 -0
  600. package/client/dist/chrome-devtools-ui/panels/animation/animation.js +1 -0
  601. package/client/dist/chrome-devtools-ui/panels/application/application-meta.js +1 -0
  602. package/client/dist/chrome-devtools-ui/panels/application/application.js +107 -0
  603. package/client/dist/chrome-devtools-ui/panels/application/components/components.js +765 -0
  604. package/client/dist/chrome-devtools-ui/panels/application/preloading/components/components.js +362 -0
  605. package/client/dist/chrome-devtools-ui/panels/application/preloading/helper/helper.js +1 -0
  606. package/client/dist/chrome-devtools-ui/panels/autofill/autofill-meta.js +1 -0
  607. package/client/dist/chrome-devtools-ui/panels/autofill/autofill.js +107 -0
  608. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger-meta.js +1 -0
  609. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger.js +1 -0
  610. package/client/dist/chrome-devtools-ui/panels/changes/changes-meta.js +1 -0
  611. package/client/dist/chrome-devtools-ui/panels/changes/changes.js +31 -0
  612. package/client/dist/chrome-devtools-ui/panels/common/common.js +45 -0
  613. package/client/dist/chrome-devtools-ui/panels/console/console-meta.js +1 -0
  614. package/client/dist/chrome-devtools-ui/panels/console/console.js +6 -0
  615. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters-meta.js +1 -0
  616. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters.js +1 -0
  617. package/client/dist/chrome-devtools-ui/panels/coverage/coverage-meta.js +1 -0
  618. package/client/dist/chrome-devtools-ui/panels/coverage/coverage.js +1 -0
  619. package/client/dist/chrome-devtools-ui/panels/css_overview/components/components.js +23 -0
  620. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview-meta.js +1 -0
  621. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview.js +148 -0
  622. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources-meta.js +1 -0
  623. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources.js +48 -0
  624. package/client/dist/chrome-devtools-ui/panels/elements/components/components.js +250 -0
  625. package/client/dist/chrome-devtools-ui/panels/elements/elements-meta.js +1 -0
  626. package/client/dist/chrome-devtools-ui/panels/elements/elements.js +67 -0
  627. package/client/dist/chrome-devtools-ui/panels/emulation/components/components.js +39 -0
  628. package/client/dist/chrome-devtools-ui/panels/emulation/emulation-meta.js +1 -0
  629. package/client/dist/chrome-devtools-ui/panels/emulation/emulation.js +1 -0
  630. package/client/dist/chrome-devtools-ui/panels/event_listeners/event_listeners.js +1 -0
  631. package/client/dist/chrome-devtools-ui/panels/explain/explain-meta.js +1 -0
  632. package/client/dist/chrome-devtools-ui/panels/explain/explain.js +231 -0
  633. package/client/dist/chrome-devtools-ui/panels/issues/components/components.js +14 -0
  634. package/client/dist/chrome-devtools-ui/panels/issues/issues-meta.js +1 -0
  635. package/client/dist/chrome-devtools-ui/panels/issues/issues.js +1 -0
  636. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline-meta.js +1 -0
  637. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline.js +2 -0
  638. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer-meta.js +1 -0
  639. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer.js +1 -0
  640. package/client/dist/chrome-devtools-ui/panels/layers/layers-meta.js +1 -0
  641. package/client/dist/chrome-devtools-ui/panels/layers/layers.js +1 -0
  642. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse-meta.js +1 -0
  643. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse.js +65 -0
  644. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/components/components.js +179 -0
  645. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
  646. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector.js +1 -0
  647. package/client/dist/chrome-devtools-ui/panels/media/media-meta.js +1 -0
  648. package/client/dist/chrome-devtools-ui/panels/media/media.js +25 -0
  649. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
  650. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling.js +1 -0
  651. package/client/dist/chrome-devtools-ui/panels/network/components/components.js +346 -0
  652. package/client/dist/chrome-devtools-ui/panels/network/forward/forward.js +1 -0
  653. package/client/dist/chrome-devtools-ui/panels/network/network-meta.js +1 -0
  654. package/client/dist/chrome-devtools-ui/panels/network/network.js +1 -0
  655. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor-meta.js +1 -0
  656. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor.js +1 -0
  657. package/client/dist/chrome-devtools-ui/panels/profiler/profiler-meta.js +1 -0
  658. package/client/dist/chrome-devtools-ui/panels/profiler/profiler.js +8 -0
  659. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
  660. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor.js +293 -0
  661. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools.js +1 -0
  662. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_components-meta.js +1 -0
  663. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_profiler-meta.js +1 -0
  664. package/client/dist/chrome-devtools-ui/panels/recorder/components/components.js +686 -0
  665. package/client/dist/chrome-devtools-ui/panels/recorder/controllers/controllers.js +1 -0
  666. package/client/dist/chrome-devtools-ui/panels/recorder/converters/converters.js +1 -0
  667. package/client/dist/chrome-devtools-ui/panels/recorder/extensions/extensions.js +1 -0
  668. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.generated.js +1 -0
  669. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.js +1 -0
  670. package/client/dist/chrome-devtools-ui/panels/recorder/models/models.js +1 -0
  671. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-actions/recorder-actions.js +3 -0
  672. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-meta.js +1 -0
  673. package/client/dist/chrome-devtools-ui/panels/recorder/recorder.js +126 -0
  674. package/client/dist/chrome-devtools-ui/panels/recorder/util/util.js +1 -0
  675. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome-meta.js +1 -0
  676. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome.js +62 -0
  677. package/client/dist/chrome-devtools-ui/panels/screencast/screencast-meta.js +1 -0
  678. package/client/dist/chrome-devtools-ui/panels/screencast/screencast.js +1 -0
  679. package/client/dist/chrome-devtools-ui/panels/search/search.js +1 -0
  680. package/client/dist/chrome-devtools-ui/panels/security/security-meta.js +1 -0
  681. package/client/dist/chrome-devtools-ui/panels/security/security.js +178 -0
  682. package/client/dist/chrome-devtools-ui/panels/sensors/sensors-meta.js +1 -0
  683. package/client/dist/chrome-devtools-ui/panels/sensors/sensors.js +1 -0
  684. package/client/dist/chrome-devtools-ui/panels/settings/components/components.js +22 -0
  685. package/client/dist/chrome-devtools-ui/panels/settings/emulation/components/components.js +221 -0
  686. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation-meta.js +1 -0
  687. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation.js +1 -0
  688. package/client/dist/chrome-devtools-ui/panels/settings/emulation/utils/utils.js +1 -0
  689. package/client/dist/chrome-devtools-ui/panels/settings/settings-meta.js +1 -0
  690. package/client/dist/chrome-devtools-ui/panels/settings/settings.js +91 -0
  691. package/client/dist/chrome-devtools-ui/panels/snippets/snippets.js +1 -0
  692. package/client/dist/chrome-devtools-ui/panels/sources/components/components.js +162 -0
  693. package/client/dist/chrome-devtools-ui/panels/sources/sources-meta.js +1 -0
  694. package/client/dist/chrome-devtools-ui/panels/sources/sources.js +2 -0
  695. package/client/dist/chrome-devtools-ui/panels/timeline/components/components.js +1063 -0
  696. package/client/dist/chrome-devtools-ui/panels/timeline/components/insights/insights.js +262 -0
  697. package/client/dist/chrome-devtools-ui/panels/timeline/extensions/extensions.js +1 -0
  698. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/components/components.js +190 -0
  699. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/overlays.js +1 -0
  700. package/client/dist/chrome-devtools-ui/panels/timeline/timeline-meta.js +1 -0
  701. package/client/dist/chrome-devtools-ui/panels/timeline/timeline.js +43 -0
  702. package/client/dist/chrome-devtools-ui/panels/timeline/utils/utils.js +1 -0
  703. package/client/dist/chrome-devtools-ui/panels/utils/utils.js +1 -0
  704. package/client/dist/chrome-devtools-ui/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  705. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio-meta.js +1 -0
  706. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio.js +19 -0
  707. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn-meta.js +1 -0
  708. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn.js +1 -0
  709. package/client/dist/chrome-devtools-ui/panels/whats_new/resources/WNDT.md +6 -0
  710. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new-meta.js +1 -0
  711. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new.js +32 -0
  712. package/client/dist/chrome-devtools-ui/rehydrated_devtools_app.html +24 -0
  713. package/client/dist/chrome-devtools-ui/rn_fusebox.html +24 -0
  714. package/client/dist/chrome-devtools-ui/services/puppeteer/puppeteer.js +1 -0
  715. package/client/dist/chrome-devtools-ui/services/trace_bounds/trace_bounds.js +1 -0
  716. package/client/dist/chrome-devtools-ui/services/tracing/tracing.js +1 -0
  717. package/client/dist/chrome-devtools-ui/services/window_bounds/window_bounds.js +1 -0
  718. package/client/dist/chrome-devtools-ui/third_party/acorn/acorn.js +1 -0
  719. package/client/dist/chrome-devtools-ui/third_party/chromium/client-variations/client-variations.js +1 -0
  720. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/angular.js +2 -0
  721. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/codemirror.js +2 -0
  722. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/cpp.js +2 -0
  723. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/java.js +2 -0
  724. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/legacy.js +2 -0
  725. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/less.js +2 -0
  726. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/markdown.js +2 -0
  727. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/php.js +2 -0
  728. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/python.js +2 -0
  729. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/sass.js +2 -0
  730. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/svelte.js +2 -0
  731. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/vue.js +2 -0
  732. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/wast.js +2 -0
  733. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/xml.js +2 -0
  734. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/codemirror.next.js +2 -0
  735. package/client/dist/chrome-devtools-ui/third_party/csp_evaluator/csp_evaluator.js +194 -0
  736. package/client/dist/chrome-devtools-ui/third_party/diff/diff.js +1 -0
  737. package/client/dist/chrome-devtools-ui/third_party/i18n/i18n.js +1 -0
  738. package/client/dist/chrome-devtools-ui/third_party/intl-messageformat/intl-messageformat.js +15 -0
  739. package/client/dist/chrome-devtools-ui/third_party/json5/json5.js +1 -0
  740. package/client/dist/chrome-devtools-ui/third_party/legacy-javascript/legacy-javascript.js +7 -0
  741. package/client/dist/chrome-devtools-ui/third_party/lighthouse/lighthouse-dt-bundle.js +3023 -0
  742. package/client/dist/chrome-devtools-ui/third_party/lighthouse/report/report.js +39 -0
  743. package/client/dist/chrome-devtools-ui/third_party/lit/lit.js +121 -0
  744. package/client/dist/chrome-devtools-ui/third_party/marked/marked.js +1 -0
  745. package/client/dist/chrome-devtools-ui/third_party/puppeteer/puppeteer.js +373 -0
  746. package/client/dist/chrome-devtools-ui/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
  747. package/client/dist/chrome-devtools-ui/third_party/react-devtools/react-devtools.js +41 -0
  748. package/client/dist/chrome-devtools-ui/third_party/third-party-web/third-party-web.js +1 -0
  749. package/client/dist/chrome-devtools-ui/third_party/wasmparser/wasmparser.js +1 -0
  750. package/client/dist/chrome-devtools-ui/third_party/web-vitals/web-vitals.js +1 -0
  751. package/client/dist/chrome-devtools-ui/ui/components/adorners/adorners.js +1 -0
  752. package/client/dist/chrome-devtools-ui/ui/components/buttons/buttons.js +17 -0
  753. package/client/dist/chrome-devtools-ui/ui/components/cards/cards.js +10 -0
  754. package/client/dist/chrome-devtools-ui/ui/components/chrome_link/chrome_link.js +6 -0
  755. package/client/dist/chrome-devtools-ui/ui/components/code_highlighter/code_highlighter.js +1 -0
  756. package/client/dist/chrome-devtools-ui/ui/components/dialogs/dialogs.js +61 -0
  757. package/client/dist/chrome-devtools-ui/ui/components/diff_view/diff_view.js +8 -0
  758. package/client/dist/chrome-devtools-ui/ui/components/expandable_list/expandable_list.js +17 -0
  759. package/client/dist/chrome-devtools-ui/ui/components/floating_button/floating_button.js +1 -0
  760. package/client/dist/chrome-devtools-ui/ui/components/helpers/helpers.js +1 -0
  761. package/client/dist/chrome-devtools-ui/ui/components/highlighting/highlighting.js +1 -0
  762. package/client/dist/chrome-devtools-ui/ui/components/icon_button/icon_button.js +13 -0
  763. package/client/dist/chrome-devtools-ui/ui/components/input/input.js +1 -0
  764. package/client/dist/chrome-devtools-ui/ui/components/issue_counter/issue_counter.js +10 -0
  765. package/client/dist/chrome-devtools-ui/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
  766. package/client/dist/chrome-devtools-ui/ui/components/linkifier/linkifier.js +1 -0
  767. package/client/dist/chrome-devtools-ui/ui/components/markdown_view/markdown_view.js +51 -0
  768. package/client/dist/chrome-devtools-ui/ui/components/menus/menus.js +71 -0
  769. package/client/dist/chrome-devtools-ui/ui/components/node_text/node_text.js +3 -0
  770. package/client/dist/chrome-devtools-ui/ui/components/panel_feedback/panel_feedback.js +37 -0
  771. package/client/dist/chrome-devtools-ui/ui/components/panel_introduction_steps/panel_introduction_steps.js +9 -0
  772. package/client/dist/chrome-devtools-ui/ui/components/render_coordinator/render_coordinator.js +1 -0
  773. package/client/dist/chrome-devtools-ui/ui/components/report_view/report_view.js +21 -0
  774. package/client/dist/chrome-devtools-ui/ui/components/request_link_icon/request_link_icon.js +8 -0
  775. package/client/dist/chrome-devtools-ui/ui/components/settings/settings.js +20 -0
  776. package/client/dist/chrome-devtools-ui/ui/components/spinners/spinners.js +16 -0
  777. package/client/dist/chrome-devtools-ui/ui/components/srgb_overlay/srgb_overlay.js +6 -0
  778. package/client/dist/chrome-devtools-ui/ui/components/suggestion_input/suggestion_input.js +29 -0
  779. package/client/dist/chrome-devtools-ui/ui/components/survey_link/survey_link.js +7 -0
  780. package/client/dist/chrome-devtools-ui/ui/components/switch/switch.js +10 -0
  781. package/client/dist/chrome-devtools-ui/ui/components/text_editor/text_editor.js +1 -0
  782. package/client/dist/chrome-devtools-ui/ui/components/text_prompt/text_prompt.js +4 -0
  783. package/client/dist/chrome-devtools-ui/ui/components/tooltips/tooltips.js +7 -0
  784. package/client/dist/chrome-devtools-ui/ui/components/tree_outline/tree_outline.js +32 -0
  785. package/client/dist/chrome-devtools-ui/ui/legacy/components/color_picker/color_picker.js +1 -0
  786. package/client/dist/chrome-devtools-ui/ui/legacy/components/cookie_table/cookie_table.js +85 -0
  787. package/client/dist/chrome-devtools-ui/ui/legacy/components/data_grid/data_grid.js +1 -0
  788. package/client/dist/chrome-devtools-ui/ui/legacy/components/inline_editor/inline_editor.js +58 -0
  789. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
  790. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui.js +7 -0
  791. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
  792. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui.js +60 -0
  793. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
  794. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open.js +1 -0
  795. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
  796. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame.js +1 -0
  797. package/client/dist/chrome-devtools-ui/ui/legacy/components/utils/utils.js +1 -0
  798. package/client/dist/chrome-devtools-ui/ui/legacy/legacy.js +59 -0
  799. package/client/dist/chrome-devtools-ui/ui/legacy/theme_support/theme_support.js +1 -0
  800. package/client/dist/chrome-devtools-ui/ui/lit/lit.js +1 -0
  801. package/client/dist/chrome-devtools-ui/ui/visual_logging/visual_logging.js +1 -0
  802. package/client/dist/chrome-devtools-ui/worker_app.html +24 -0
  803. package/client/dist/index.html +3 -3
  804. package/package.json +4 -1
  805. package/packages/simdeck-test/dist/index.d.ts +7 -1
  806. package/client/dist/assets/index-BHTf_1bs.js +0 -9
  807. package/client/dist/assets/index-PP2opq5o.css +0 -1
@@ -0,0 +1,686 @@
1
+ import*as e from"../../../ui/lit/lit.js";import*as t from"../../../ui/legacy/legacy.js";import"../../../ui/components/icon_button/icon_button.js";import*as o from"../../../core/i18n/i18n.js";import*as r from"../../../ui/components/buttons/buttons.js";import*as s from"../../../ui/components/input/input.js";import*as i from"../../../ui/visual_logging/visual_logging.js";import*as n from"../models/models.js";import*as a from"../../../ui/components/helpers/helpers.js";import*as l from"../extensions/extensions.js";import*as c from"../../../core/host/host.js";import*as d from"../../../core/platform/platform.js";import*as p from"../../../core/sdk/sdk.js";import*as u from"../../../third_party/codemirror.next/codemirror.next.js";import*as h from"../../../ui/components/code_highlighter/code_highlighter.js";import"../../../ui/components/dialogs/dialogs.js";import*as v from"../../../ui/components/text_editor/text_editor.js";import*as g from"../../../ui/components/menus/menus.js";import*as b from"../../../ui/components/suggestion_input/suggestion_input.js";import*as m from"../controllers/controllers.js";import*as y from"../util/util.js";var f={cssText:`*{margin:0;padding:0;box-sizing:border-box;font-size:inherit}.control{background:none;border:none;display:flex;flex-direction:column;align-items:center}.control[disabled]{filter:grayscale(100%);cursor:auto}.icon{display:flex;width:40px;height:40px;border-radius:50%;background:var(--sys-color-error-bright);margin-bottom:8px;position:relative;transition:background 200ms;place-content:center center;align-items:center}.icon::before{--override-white:#fff;box-sizing:border-box;content:"";display:block;width:14px;height:14px;border:1px solid var(--override-white);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--override-white)}.icon.square::before{border-radius:0}.icon.circle::before{border-radius:50%}.icon:hover{background:color-mix(in srgb,var(--sys-color-error-bright),var(--sys-color-state-hover-on-prominent) 10%)}.icon:active{background:color-mix(in srgb,var(--sys-color-error-bright),var(--sys-color-state-ripple-neutral-on-prominent) 16%)}.control[disabled] .icon:hover{background:var(--sys-color-error)}.label{font-size:12px;line-height:16px;text-align:center;letter-spacing:0.02em;color:var(--sys-color-on-surface)}\n/*# sourceURL=${import.meta.resolve("./controlButton.css")} */\n`},x=self&&self.__decorate||function(e,t,o,r){var s,i=arguments.length,n=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,o,r);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(n=(i<3?s(n):i>3?s(t,o,n):s(t,o))||n);return i>3&&n&&Object.defineProperty(t,o,n),n};const w=new CSSStyleSheet;w.replaceSync(f.cssText);const{html:S,Decorators:k,LitElement:$}=e,{customElement:E,property:C}=k;let R=class extends ${static styles=[w];constructor(){super(),this.label="",this.shape="square",this.disabled=!1}#e=e=>{this.disabled&&(e.stopPropagation(),e.preventDefault())};render(){return S`
2
+ <button
3
+ @click=${this.#e}
4
+ .disabled=${this.disabled}
5
+ class="control"
6
+ >
7
+ <div class="icon ${this.shape}"></div>
8
+ <div class="label">${this.label}</div>
9
+ </button>
10
+ `}};x([C()],R.prototype,"label",void 0),x([C()],R.prototype,"shape",void 0),x([C({type:Boolean})],R.prototype,"disabled",void 0),R=x([E("devtools-control-button")],R);var T=Object.freeze({__proto__:null,get ControlButton(){return R}}),I={cssText:`*{margin:0;padding:0;outline:none;box-sizing:border-box;font-size:inherit}.wrapper{padding:24px;flex:1}h1{font-size:18px;line-height:24px;letter-spacing:0.02em;color:var(--sys-color-on-surface);margin:0;font-weight:normal}.row-label{font-weight:500;font-size:11px;line-height:16px;letter-spacing:0.8px;text-transform:uppercase;color:var(--sys-color-secondary);margin-bottom:8px;margin-top:32px;display:flex;align-items:center;gap:3px}.footer{display:flex;justify-content:center;border-top:1px solid var(--sys-color-divider);padding:12px;background:var(--sys-color-cdt-base-container)}.controls{display:flex}.error{margin:16px 0 0;padding:8px;background:var(--sys-color-error-container);color:var(--sys-color-error)}.row-label .link:focus-visible{outline:var(--sys-color-state-focus-ring) auto 1px}.header-wrapper{display:flex;align-items:baseline;justify-content:space-between}.checkbox-label{display:inline-flex;align-items:center;overflow:hidden;text-overflow:ellipsis;gap:4px;line-height:1.1;padding:4px}.checkbox-container{display:flex;flex-flow:row wrap;gap:10px}input[type="checkbox"]:focus-visible{outline:var(--sys-color-state-focus-ring) auto 1px}devtools-icon[name="help"]{width:16px;height:16px}\n/*# sourceURL=${import.meta.resolve("./createRecordingView.css")} */\n`};const N=new CSSStyleSheet;N.replaceSync(I.cssText);const{html:j,Directives:{ifDefined:A}}=e,z={recordingName:"Recording name",startRecording:"Start recording",createRecording:"Create a new recording",recordingNameIsRequired:"Recording name is required",selectorAttribute:"Selector attribute",cancelRecording:"Cancel recording",selectorTypeCSS:"CSS",selectorTypePierce:"Pierce",selectorTypeARIA:"ARIA",selectorTypeText:"Text",selectorTypeXPath:"XPath",selectorTypes:"Selector types to record",includeNecessarySelectors:"You must choose CSS, Pierce, or XPath as one of your options. Only these selectors are guaranteed to be recorded since ARIA and text selectors may not be unique.",learnMore:"Learn more"},M=o.i18n.registerUIStrings("panels/recorder/components/CreateRecordingView.ts",z),B=o.i18n.getLocalizedString.bind(void 0,M);class P extends Event{static eventName="recordingstarted";name;selectorAttribute;selectorTypesToRecord;constructor(e,t,o){super(P.eventName,{}),this.name=e,this.selectorAttribute=o||void 0,this.selectorTypesToRecord=t}}class L extends Event{static eventName="recordingcancelled";constructor(){super(L.eventName)}}class O extends HTMLElement{#t=this.attachShadow({mode:"open"});#o="";#r;#s;constructor(){super(),this.setAttribute("jslog",`${i.section("create-recording-view")}`)}connectedCallback(){this.#t.adoptedStyleSheets=[N,s.textInputStyles,s.checkboxStyles],this.#i(),this.#t.querySelector("input")?.focus()}set data(e){this.#s=e.recorderSettings,this.#o=this.#s.defaultTitle}#n(e){this.#r&&(this.#r=void 0,this.#i());"Enter"===e.key&&(this.startRecording(),e.stopPropagation(),e.preventDefault())}startRecording(){const e=this.#t.querySelector("#user-flow-name");if(!e)throw new Error("input#user-flow-name not found");if(!this.#s)throw new Error("settings not set");if(!e.value.trim())return this.#r=new Error(B(z.recordingNameIsRequired)),void this.#i();const t=this.#t.querySelectorAll(".selector-type input[type=checkbox]"),o=[];for(const e of t){const t=e,r=t.value;t.checked&&o.push(r)}if(!o.includes(n.Schema.SelectorType.CSS)&&!o.includes(n.Schema.SelectorType.XPath)&&!o.includes(n.Schema.SelectorType.Pierce))return this.#r=new Error(B(z.includeNecessarySelectors)),void this.#i();for(const e of Object.values(n.Schema.SelectorType))this.#s.setSelectorByType(e,o.includes(e));const r=this.#t.querySelector("#selector-attribute").value.trim();this.#s.selectorAttribute=r,this.dispatchEvent(new P(e.value.trim(),o,r))}#a(){this.dispatchEvent(new L)}#l=()=>{this.#t.querySelector("#user-flow-name")?.select()};#i(){const t=new Map([[n.Schema.SelectorType.ARIA,B(z.selectorTypeARIA)],[n.Schema.SelectorType.CSS,B(z.selectorTypeCSS)],[n.Schema.SelectorType.Text,B(z.selectorTypeText)],[n.Schema.SelectorType.XPath,B(z.selectorTypeXPath)],[n.Schema.SelectorType.Pierce,B(z.selectorTypePierce)]]);e.render(j`
11
+ <div class="wrapper">
12
+ <div class="header-wrapper">
13
+ <h1>${B(z.createRecording)}</h1>
14
+ <devtools-button
15
+ title=${B(z.cancelRecording)}
16
+ jslog=${i.close().track({click:!0})}
17
+ .data=${{variant:"icon",size:"SMALL",iconName:"cross"}}
18
+ @click=${this.#a}
19
+ ></devtools-button>
20
+ </div>
21
+ <label class="row-label" for="user-flow-name">${B(z.recordingName)}</label>
22
+ <input
23
+ value=${this.#o}
24
+ @focus=${this.#l}
25
+ @keydown=${this.#n}
26
+ jslog=${i.textField("user-flow-name").track({change:!0})}
27
+ class="devtools-text-input"
28
+ id="user-flow-name"
29
+ />
30
+ <label class="row-label" for="selector-attribute">
31
+ <span>${B(z.selectorAttribute)}</span>
32
+ <x-link
33
+ class="link" href="https://g.co/devtools/recorder#selector"
34
+ title=${B(z.learnMore)}
35
+ jslog=${i.link("recorder-selector-help").track({click:!0})}>
36
+ <devtools-icon name="help">
37
+ </devtools-icon>
38
+ </x-link>
39
+ </label>
40
+ <input
41
+ value=${A(this.#s?.selectorAttribute)}
42
+ placeholder="data-testid"
43
+ @keydown=${this.#n}
44
+ jslog=${i.textField("selector-attribute").track({change:!0})}
45
+ class="devtools-text-input"
46
+ id="selector-attribute"
47
+ />
48
+ <label class="row-label">
49
+ <span>${B(z.selectorTypes)}</span>
50
+ <x-link
51
+ class="link" href="https://g.co/devtools/recorder#selector"
52
+ title=${B(z.learnMore)}
53
+ jslog=${i.link("recorder-selector-help").track({click:!0})}>
54
+ <devtools-icon name="help">
55
+ </devtools-icon>
56
+ </x-link>
57
+ </label>
58
+ <div class="checkbox-container">
59
+ ${Object.values(n.Schema.SelectorType).map((e=>{const o=this.#s?.getSelectorByType(e);return j`
60
+ <label class="checkbox-label selector-type">
61
+ <input
62
+ @keydown=${this.#n}
63
+ .value=${e}
64
+ jslog=${i.toggle().track({click:!0}).context(`selector-${e}`)}
65
+ ?checked=${o}
66
+ type="checkbox"
67
+ />
68
+ ${t.get(e)||e}
69
+ </label>
70
+ `}))}
71
+ </div>
72
+
73
+ ${this.#r&&j`
74
+ <div class="error" role="alert">
75
+ ${this.#r.message}
76
+ </div>
77
+ `}
78
+ </div>
79
+ <div class="footer">
80
+ <div class="controls">
81
+ <devtools-control-button
82
+ @click=${this.startRecording}
83
+ .label=${B(z.startRecording)}
84
+ .shape=${"circle"}
85
+ jslog=${i.action("chrome-recorder.start-recording").track({click:!0})}
86
+ title=${n.Tooltip.getTooltipForActions(B(z.startRecording),"chrome-recorder.start-recording")}
87
+ ></devtools-control-button>
88
+ </div>
89
+ </div>
90
+ `,this.#t,{host:this})}}customElements.define("devtools-create-recording-view",O);var F=Object.freeze({__proto__:null,CreateRecordingView:O,RecordingCancelledEvent:L,RecordingStartedEvent:P}),D={cssText:`*{margin:0;padding:0;box-sizing:border-box;font-size:inherit}*:focus,\n*:focus-visible{outline:none}.wrapper{padding:24px}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}h1{font-size:16px;line-height:19px;color:var(--sys-color-on-surface);font-weight:normal}.icon,\n.icon devtools-icon{width:20px;height:20px;color:var(--sys-color-primary)}.table{margin-top:35px}.title{font-size:13px;color:var(--sys-color-on-surface);margin-left:10px;flex:1;overflow-x:hidden;white-space:nowrap;text-overflow:ellipsis}.row{display:flex;align-items:center;padding-right:5px;height:28px;border-bottom:1px solid var(--sys-color-divider)}.row:focus-within,\n.row:hover{background-color:var(--sys-color-state-hover-on-subtle)}.row:last-child{border-bottom:none}.actions{display:flex;align-items:center}.actions button{border:none;background-color:transparent;width:24px;height:24px;border-radius:50%}.actions .divider{width:1px;height:17px;background-color:var(--sys-color-divider);margin:0 6px}\n/*# sourceURL=${import.meta.resolve("./recordingListView.css")} */\n`};const V=new CSSStyleSheet;V.replaceSync(D.cssText);const{html:_}=e,K={savedRecordings:"Saved recordings",createRecording:"Create a new recording",playRecording:"Play recording",deleteRecording:"Delete recording",openRecording:"Open recording"},G=o.i18n.registerUIStrings("panels/recorder/components/RecordingListView.ts",K),U=o.i18n.getLocalizedString.bind(void 0,G);class H extends Event{static eventName="createrecording";constructor(){super(H.eventName)}}class q extends Event{storageName;static eventName="deleterecording";constructor(e){super(q.eventName),this.storageName=e}}class W extends Event{storageName;static eventName="openrecording";constructor(e){super(W.eventName),this.storageName=e}}let X=class e extends Event{storageName;static eventName="playrecording";constructor(t){super(e.eventName),this.storageName=t}};class Y extends HTMLElement{#t=this.attachShadow({mode:"open"});#c={recordings:[],replayAllowed:!0};constructor(){super()}connectedCallback(){this.#t.adoptedStyleSheets=[V],a.ScheduledRender.scheduleRender(this,this.#i)}set recordings(e){this.#c.recordings=e,a.ScheduledRender.scheduleRender(this,this.#i)}set replayAllowed(e){this.#c.replayAllowed=e,a.ScheduledRender.scheduleRender(this,this.#i)}#d(){this.dispatchEvent(new H)}#p(e,t){t.stopPropagation(),this.dispatchEvent(new q(e))}#u(e,t){t.stopPropagation(),this.dispatchEvent(new W(e))}#h(e,t){t.stopPropagation(),this.dispatchEvent(new X(e))}#n(e,t){"Enter"===t.key&&this.#u(e,t)}#v(e){e.stopPropagation()}#i=()=>{e.render(_`
91
+ <div class="wrapper">
92
+ <div class="header">
93
+ <h1>${U(K.savedRecordings)}</h1>
94
+ <devtools-button
95
+ .variant=${"primary"}
96
+ @click=${this.#d}
97
+ title=${n.Tooltip.getTooltipForActions(U(K.createRecording),"chrome-recorder.create-recording")}
98
+ .jslogContext=${"create-recording"}
99
+ >
100
+ ${U(K.createRecording)}
101
+ </devtools-button>
102
+ </div>
103
+ <div class="table">
104
+ ${this.#c.recordings.map((e=>_`
105
+ <div
106
+ role="button"
107
+ tabindex="0"
108
+ aria-label=${U(K.openRecording)}
109
+ class="row"
110
+ @keydown=${this.#n.bind(this,e.storageName)}
111
+ @click=${this.#u.bind(this,e.storageName)}
112
+ jslog=${i.item().track({click:!0}).context("recording")}>
113
+ <div class="icon">
114
+ <devtools-icon name="flow">
115
+ </devtools-icon>
116
+ </div>
117
+ <div class="title">${e.name}</div>
118
+ <div class="actions">
119
+ ${this.#c.replayAllowed?_`
120
+ <devtools-button
121
+ title=${U(K.playRecording)}
122
+ .data=${{variant:"icon",iconName:"play",jslogContext:"play-recording"}}
123
+ @click=${this.#h.bind(this,e.storageName)}
124
+ @keydown=${this.#v}
125
+ ></devtools-button>
126
+ <div class="divider"></div>`:""}
127
+ <devtools-button
128
+ class="delete-recording-button"
129
+ title=${U(K.deleteRecording)}
130
+ .data=${{variant:"icon",iconName:"bin",jslogContext:"delete-recording"}}
131
+ @click=${this.#p.bind(this,e.storageName)}
132
+ @keydown=${this.#v}
133
+ ></devtools-button>
134
+ </div>
135
+ </div>
136
+ `))}
137
+ </div>
138
+ </div>
139
+ `,this.#t,{host:this})}}customElements.define("devtools-recording-list-view",Y);var J=Object.freeze({__proto__:null,CreateRecordingEvent:H,DeleteRecordingEvent:q,OpenRecordingEvent:W,PlayRecordingEvent:X,RecordingListView:Y}),Z={cssText:`*{margin:0;padding:0;outline:none;box-sizing:border-box;font-size:inherit}.extension-view{display:flex;flex-direction:column;height:100%}main{flex:1}iframe{border:none;height:100%;width:100%}header{display:flex;padding:3px 8px;justify-content:space-between;border-bottom:1px solid var(--sys-color-divider)}header > div{align-self:center}.icon{display:block;width:16px;height:16px;color:var(--sys-color-secondary)}.title{display:flex;flex-direction:row;gap:6px;color:var(--sys-color-secondary);align-items:center;font-weight:500}\n/*# sourceURL=${import.meta.resolve("./extensionView.css")} */\n`};const Q=new CSSStyleSheet;Q.replaceSync(Z.cssText);const{html:ee}=e,te={closeView:"Close",extension:"Content provided by a browser extension"},oe=o.i18n.registerUIStrings("panels/recorder/components/ExtensionView.ts",te),re=o.i18n.getLocalizedString.bind(void 0,oe);class se extends Event{static eventName="recorderextensionviewclosed";constructor(){super(se.eventName,{bubbles:!0,composed:!0})}}class ie extends HTMLElement{#t=this.attachShadow({mode:"open"});#g;constructor(){super(),this.setAttribute("jslog",`${i.section("extension-view")}`)}connectedCallback(){this.#t.adoptedStyleSheets=[Q],this.#i()}disconnectedCallback(){this.#g&&l.ExtensionManager.ExtensionManager.instance().getView(this.#g.id).hide()}set descriptor(e){this.#g=e,this.#i(),l.ExtensionManager.ExtensionManager.instance().getView(e.id).show()}#b(){this.dispatchEvent(new se)}#i(){if(!this.#g)return;const t=l.ExtensionManager.ExtensionManager.instance().getView(this.#g.id).frame();e.render(ee`
140
+ <div class="extension-view">
141
+ <header>
142
+ <div class="title">
143
+ <devtools-icon
144
+ class="icon"
145
+ title=${re(te.extension)}
146
+ name="extension">
147
+ </devtools-icon>
148
+ ${this.#g.title}
149
+ </div>
150
+ <devtools-button
151
+ title=${re(te.closeView)}
152
+ jslog=${i.close().track({click:!0})}
153
+ .data=${{variant:"icon",size:"SMALL",iconName:"cross"}}
154
+ @click=${this.#b}
155
+ ></devtools-button>
156
+ </header>
157
+ <main>
158
+ ${t}
159
+ </main>
160
+ </div>
161
+ `,this.#t,{host:this})}}customElements.define("devtools-recorder-extension-view",ie);const{html:ne}=e,ae={Replay:"Replay",ReplayNormalButtonLabel:"Normal speed",ReplayNormalItemLabel:"Normal (Default)",ReplaySlowButtonLabel:"Slow speed",ReplaySlowItemLabel:"Slow",ReplayVerySlowButtonLabel:"Very slow speed",ReplayVerySlowItemLabel:"Very slow",ReplayExtremelySlowButtonLabel:"Extremely slow speed",ReplayExtremelySlowItemLabel:"Extremely slow",speedGroup:"Speed",extensionGroup:"Extensions"},le=[{value:"normal",buttonIconName:"play",buttonLabel:()=>pe(ae.ReplayNormalButtonLabel),label:()=>pe(ae.ReplayNormalItemLabel)},{value:"slow",buttonIconName:"play",buttonLabel:()=>pe(ae.ReplaySlowButtonLabel),label:()=>pe(ae.ReplaySlowItemLabel)},{value:"very_slow",buttonIconName:"play",buttonLabel:()=>pe(ae.ReplayVerySlowButtonLabel),label:()=>pe(ae.ReplayVerySlowItemLabel)},{value:"extremely_slow",buttonIconName:"play",buttonLabel:()=>pe(ae.ReplayExtremelySlowButtonLabel),label:()=>pe(ae.ReplayExtremelySlowItemLabel)}],ce={normal:1,slow:2,very_slow:3,extremely_slow:4},de=o.i18n.registerUIStrings("panels/recorder/components/ReplaySection.ts",ae),pe=o.i18n.getLocalizedString.bind(void 0,de);class ue extends Event{speed;extension;static eventName="startreplay";constructor(e,t){super(ue.eventName,{bubbles:!0,composed:!0}),this.speed=e,this.extension=t}}const he="extension";class ve extends HTMLElement{#t=this.attachShadow({mode:"open"});#m=this.#i.bind(this);#c={disabled:!1};#y;#f=[];set data(e){this.#y=e.settings,this.#f=e.replayExtensions}get disabled(){return this.#c.disabled}set disabled(e){this.#c.disabled=e,a.ScheduledRender.scheduleRender(this,this.#m)}connectedCallback(){a.ScheduledRender.scheduleRender(this,this.#m)}#x(e){const t=e.value;this.#y&&e.value&&(this.#y.speed=t,this.#y.replayExtension=""),c.userMetrics.recordingReplaySpeed(ce[t]),a.ScheduledRender.scheduleRender(this,this.#m)}#w(e){if(e.stopPropagation(),e.value?.startsWith(he)){this.#y&&(this.#y.replayExtension=e.value);const t=Number(e.value.substring(9));return this.dispatchEvent(new ue("normal",this.#f[t])),void a.ScheduledRender.scheduleRender(this,this.#m)}this.dispatchEvent(new ue(this.#y?this.#y.speed:"normal")),a.ScheduledRender.scheduleRender(this,this.#m)}#i(){const t=[{name:pe(ae.speedGroup),items:le}];this.#f.length&&t.push({name:pe(ae.extensionGroup),items:this.#f.map(((e,t)=>({value:he+t,buttonIconName:"play",buttonLabel:()=>e.getName(),label:()=>e.getName()})))}),e.render(ne`
162
+ <devtools-select-button
163
+ @selectmenuselected=${this.#x}
164
+ @selectbuttonclick=${this.#w}
165
+ .variant=${"primary"}
166
+ .showItemDivider=${!1}
167
+ .disabled=${this.#c.disabled}
168
+ .action=${"chrome-recorder.replay-recording"}
169
+ .value=${this.#y?.replayExtension||this.#y?.speed||""}
170
+ .buttonLabel=${pe(ae.Replay)}
171
+ .groups=${t}
172
+ jslog=${i.action("chrome-recorder.replay-recording").track({click:!0})}
173
+ ></devtools-select-button>`,this.#t,{host:this})}}customElements.define("devtools-replay-section",ve);var ge=Object.freeze({__proto__:null,ReplaySection:ve,StartReplayEvent:ue}),be={cssText:`*{box-sizing:border-box;min-width:0;min-height:0}:root{height:100%;overflow:hidden;interpolate-size:allow-keywords}body{height:100%;width:100%;position:relative;overflow:hidden;margin:0;cursor:default;font-family:var(--default-font-family);font-size:12px;tab-size:4;user-select:none;color:var(--sys-color-on-surface);background:var(--sys-color-cdt-base-container)}:focus{outline-width:0}.monospace{font-family:var(--monospace-font-family);font-size:var(\n --monospace-font-size\n )!important}.source-code{font-family:var(--source-code-font-family);font-size:var(\n --source-code-font-size\n )!important;white-space:pre-wrap;&:not(input)::selection{color:var(--sys-color-on-surface)}}.source-code.breakpoint{white-space:nowrap}.source-code .devtools-link.text-button{max-width:100%;overflow:hidden;text-overflow:ellipsis}img{-webkit-user-drag:none}iframe,\na img{border:none}.fill{position:absolute;inset:0}iframe.fill{width:100%;height:100%}.widget{position:relative;flex:auto;contain:style}.hbox{display:flex;flex-direction:row!important;position:relative}.vbox{display:flex;flex-direction:column!important;position:relative}.view-container > devtools-toolbar{border-bottom:1px solid var(--sys-color-divider)}.flex-auto{flex:auto}.flex-none{flex:none}.flex-centered{display:flex;align-items:center;justify-content:center}.overflow-auto{overflow:auto;background-color:var(--sys-color-cdt-base-container)}iframe.widget{position:absolute;width:100%;height:100%;inset:0}.hidden{display:none!important}.highlighted-search-result{border-radius:1px;background-color:var(--sys-color-yellow-container);outline:1px solid var(--sys-color-yellow-container)}.link{cursor:pointer;text-decoration:underline;color:var(--sys-color-primary);outline-offset:2px}button,\ninput,\nselect{font-family:inherit;font-size:inherit}select option,\nselect optgroup,\ninput{background-color:var(--sys-color-cdt-base-container)}input{color:inherit;&[type="checkbox"]{position:relative;outline:none;display:flex;align-items:center;justify-content:center;&:hover::after,\n &:active::before{content:"";height:24px;width:24px;border-radius:var(--sys-shape-corner-full);position:absolute}&:not(.-theme-preserve){accent-color:var(--sys-color-primary-bright);color:var(--sys-color-on-primary)}&:not(:disabled):hover::after{background-color:var(--sys-color-state-hover-on-subtle)}&:not(:disabled):active::before{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:not(:disabled):focus-visible::before{content:"";height:15px;width:15px;border-radius:5px;position:absolute;border:2px solid var(--sys-color-state-focus-ring)}&.small:hover::after,\n &.small:active::before{height:12px;width:12px;border-radius:2px}}}input::placeholder{--override-input-placeholder-color:rgb(0 0 0/54%);color:var(--override-input-placeholder-color)}.theme-with-dark-background input::placeholder,\n:host-context(.theme-with-dark-background) input::placeholder{--override-input-placeholder-color:rgb(230 230 230/54%)}.harmony-input:not([type]),\n.harmony-input[type="number"],\n.harmony-input[type="text"]{padding:3px 6px;height:24px;border:1px solid var(--sys-color-neutral-outline);border-radius:4px;&.error-input,\n &:invalid{border-color:var(--sys-color-error)}&:not(.error-input, :invalid):focus{border-color:var(--sys-color-state-focus-ring)}&:not(.error-input, :invalid):hover:not(:focus){background:var(--sys-color-state-hover-on-subtle)}}input[type="radio"]{height:17px;width:17px;min-width:17px;border-radius:8px;vertical-align:sub;margin:0 5px 5px 0;accent-color:var(--sys-color-primary-bright);color:var(--sys-color-on-primary);&:focus{box-shadow:var(--legacy-focus-ring-active-shadow)}}@media (forced-colors: active){input[type="radio"]{--gradient-start:ButtonFace;--gradient-end:ButtonFace;&:checked{--gradient-start:Highlight;--gradient-end:Highlight}}}input[type="range"]{appearance:none;margin:0;padding:0;height:10px;width:88px;outline:none;background:none}input[type="range"]::-webkit-slider-thumb,\n.-theme-preserve{appearance:none;margin:0;padding:0;border:0;width:12px;height:12px;margin-top:-5px;border-radius:50%;background-color:var(--sys-color-primary)}input[type="range"]::-webkit-slider-runnable-track{appearance:none;margin:0;padding:0;width:100%;height:2px;background-color:var(--sys-color-surface-variant)}input[type="range"]:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--sys-color-inverse-primary)}input[type="range"]:disabled::-webkit-slider-thumb{background-color:var(--sys-color-state-disabled)}@media (forced-colors: active){input[type="range"]{forced-color-adjust:none}}.highlighted-search-result.current-search-result{--override-current-search-result-background-color:rgb(255 127 0/80%);border-radius:1px;padding:1px;margin:-1px;background-color:var(--override-current-search-result-background-color)}.dimmed{opacity:60%}.editing{box-shadow:var(--drop-shadow);background-color:var(--sys-color-cdt-base-container);text-overflow:clip!important;padding-left:2px;margin-left:-2px;padding-right:2px;margin-right:-2px;margin-bottom:-1px;padding-bottom:1px;opacity:100%!important}.editing,\n.editing *{color:var(\n --sys-color-on-surface\n )!important;text-decoration:none!important}select{appearance:none;user-select:none;height:var(--sys-size-11);border:var(--sys-size-1) solid var(--sys-color-neutral-outline);border-radius:var(--sys-shape-corner-extra-small);color:var(--sys-color-on-surface);font:inherit;margin:0;outline:none;padding:0 var(--sys-size-9) 0 var(--sys-size-5);background-image:var(--combobox-dropdown-arrow);background-color:transparent;background-position:right center;background-repeat:no-repeat;&:disabled{opacity:100%;border-color:transparent;color:var(--sys-color-state-disabled);background-color:var(--sys-color-state-disabled-container);pointer-events:none}&:enabled{&:hover{background-color:var(--sys-color-state-hover-on-subtle)}&:active{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:hover:active{background:var(--combobox-dropdown-arrow),linear-gradient(var(--sys-color-state-hover-on-subtle),var(--sys-color-state-hover-on-subtle)),linear-gradient(var(--sys-color-state-ripple-neutral-on-subtle),var(--sys-color-state-ripple-neutral-on-subtle));background-position:right center;background-repeat:no-repeat}&:focus{outline:var(--sys-size-2) solid var(--sys-color-state-focus-ring);outline-offset:-1px}}}@media (forced-colors: active) and (prefers-color-scheme: light){:root,\n .theme-with-dark-background,\n :host-context(.theme-with-dark-background){--combobox-dropdown-arrow:var(--image-file-arrow-drop-down-light)}}@media (forced-colors: active) and (prefers-color-scheme: dark){:root,\n .theme-with-dark-background,\n :host-context(.theme-with-dark-background){--combobox-dropdown-arrow:var(--image-file-arrow-drop-down-dark)}}.chrome-select-label{margin:0 var(--sys-size-10);flex:none;p p{margin-top:0;color:var(--sys-color-token-subtle)}.reload-warning{margin-left:var(--sys-size-5)}}.settings-select{margin:0}select optgroup,\nselect option{background-color:var(--sys-color-cdt-base-container);color:var(--sys-color-on-surface)}.gray-info-message{text-align:center;font-style:italic;padding:6px;color:var(--sys-color-token-subtle);white-space:nowrap}.empty-state{margin:var(--sys-size-5);display:flex;flex-grow:1;justify-content:center;align-items:center;flex-direction:column;text-align:center;min-height:fit-content;min-width:fit-content;> *{max-width:var(--sys-size-29)}.empty-state-header{font:var(--sys-typescale-headline5);margin-bottom:var(--sys-size-3)}.empty-state-description{font:var(--sys-typescale-body4-regular);color:var(--sys-color-on-surface-subtle);> x-link{white-space:nowrap;margin-left:var(--sys-size-3)}}> devtools-button{margin-top:var(--sys-size-7)}}dt-icon-label{flex:none}.full-widget-dimmed-banner a{color:inherit}.full-widget-dimmed-banner{color:var(--sys-color-token-subtle);background-color:var(--sys-color-cdt-base-container);display:flex;justify-content:center;align-items:center;text-align:center;padding:20px;position:absolute;inset:0;font-size:13px;overflow:auto;z-index:500}.dot::before{content:var(--image-file-empty);width:6px;height:6px;border-radius:50%;outline:1px solid var(--icon-gap-default);left:9px;position:absolute;top:9px;z-index:1}.green::before{background-color:var(--sys-color-green-bright)}.purple::before{background-color:var(--sys-color-purple-bright)}.expandable-inline-button{background-color:var(--sys-color-cdt-base-container);color:var(--sys-color-on-surface);cursor:pointer;border-radius:3px}.undisplayable-text,\n.expandable-inline-button{border:none;padding:1px 3px;margin:0 2px;font-size:11px;font-family:sans-serif;white-space:nowrap;display:inline-block}.undisplayable-text::after,\n.expandable-inline-button::after{content:attr(data-text)}.undisplayable-text{color:var(--sys-color-state-disabled);font-style:italic}.expandable-inline-button:hover,\n.expandable-inline-button:focus-visible{background-color:var(--sys-color-state-hover-on-subtle)}.expandable-inline-button:focus-visible{background-color:var(--sys-color-state-focus-highlight)}::selection{background-color:var(--sys-color-state-text-highlight);color:var(--sys-color-state-on-text-highlight)}button.link{border:none;background:none;padding:3px}button.link:focus-visible{outline:2px solid var(--sys-color-state-focus-ring);outline-offset:2px;border-radius:var(--sys-shape-corner-full)}.data-grid-data-grid-node button.link:focus-visible{border-radius:var(--sys-shape-corner-extra-small);padding:0;margin-top:3px}@media (forced-colors: active){.dimmed,\n select:disabled{opacity:100%}.harmony-input:not([type]),\n .harmony-input[type="number"],\n .harmony-input[type="text"]{border:1px solid ButtonText}.harmony-input:not([type]):focus,\n .harmony-input[type="number"]:focus,\n .harmony-input[type="text"]:focus{border:1px solid Highlight}}input.custom-search-input::-webkit-search-cancel-button{appearance:none;width:16px;height:15px;margin-right:0;opacity:70%;mask-image:var(--image-file-cross-circle-filled);mask-position:center;mask-repeat:no-repeat;mask-size:99%;background-color:var(--icon-default)}input.custom-search-input::-webkit-search-cancel-button:hover{opacity:99%}.spinner::before{display:block;width:var(--dimension,24px);height:var(--dimension,24px);border:var(--override-spinner-size,3px) solid var(--override-spinner-color,var(--sys-color-token-subtle));border-radius:12px;clip:rect(0,var(--clip-size,15px),var(--clip-size,15px),0);content:"";position:absolute;animation:spinner-animation 1s linear infinite;box-sizing:border-box}@keyframes spinner-animation{from{transform:rotate(0)}to{transform:rotate(360deg)}}.adorner-container{display:inline-flex;vertical-align:middle}.adorner-container.hidden{display:none}.adorner-container devtools-adorner{margin-left:3px}:host-context(.theme-with-dark-background) devtools-adorner{--override-adorner-border-color:var(--sys-color-tonal-outline);--override-adorner-active-background-color:var(\n --sys-color-state-riple-neutral-on-subtle\n )}.panel{display:flex;overflow:hidden;position:absolute;inset:0;z-index:0;background-color:var(--sys-color-cdt-base-container)}.panel-sidebar{overflow-x:hidden;background-color:var(--sys-color-cdt-base-container)}iframe.extension{flex:auto;width:100%;height:100%}iframe.panel.extension{display:block;height:100%}@media (forced-colors: active){:root{--legacy-accent-color:Highlight;--legacy-focus-ring-inactive-shadow-color:ButtonText}}devtools-toolbar{& > *{position:relative;display:flex;background-color:transparent;flex:none;align-items:center;justify-content:center;height:var(--toolbar-height);border:none;white-space:pre;overflow:hidden;max-width:100%;color:var(--icon-default);cursor:default;& .devtools-link{color:var(--icon-default)}}.status-buttons{padding:0 var(--sys-size-2);gap:var(--sys-size-2)}& > :not(select){padding:0}& > devtools-issue-counter{margin-top:-4px;padding:0 1px}devtools-adorner.fix-perf-icon{--override-adorner-text-color:transparent;--override-adorner-border-color:transparent;--override-adorner-background-color:transparent}devtools-issue-counter.main-toolbar{margin-left:1px;margin-right:1px}.toolbar-dropdown-arrow{pointer-events:none;flex:none;top:2px}.toolbar-button.dark-text .toolbar-dropdown-arrow{color:var(--sys-color-on-surface)}.toolbar-button{white-space:nowrap;overflow:hidden;min-width:28px;background:transparent;border-radius:0;&[aria-haspopup="true"][aria-expanded="true"]{pointer-events:none}}.toolbar-item-search{min-width:5.2em;max-width:300px;flex:1 1 auto;justify-content:start;overflow:revert}.toolbar-text{margin:0 5px;flex:none;color:var(--ui-text)}.toolbar-text:empty{margin:0}.toolbar-has-dropdown{justify-content:space-between;height:var(--sys-size-9);padding:0 var(--sys-size-2) 0 var(--sys-size-4);margin:0 var(--sys-size-2);gap:var(--sys-size-2);border-radius:var(--sys-shape-corner-extra-small);&:hover::after,\n &:active::before{content:"";height:100%;width:100%;border-radius:inherit;position:absolute;top:0;left:0}&:hover::after{background-color:var(--sys-color-state-hover-on-subtle)}&:active::before{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:focus-visible{outline:var(--sys-size-2) solid var(--sys-color-state-focus-ring)}&[disabled]{pointer-events:none;background-color:var(--sys-color-state-disabled-container);color:var(--sys-color-state-disabled)}}.toolbar-has-dropdown-shrinkable{flex-shrink:1}.toolbar-has-dropdown .toolbar-text{margin:0;text-overflow:ellipsis;flex:auto;overflow:hidden;text-align:right}.toolbar-button:not(.toolbar-has-dropdown):focus-visible::before{position:absolute;inset:2px;background-color:var(--sys-color-state-focus-highlight);border-radius:2px;content:"";z-index:-1}.toolbar-glyph{flex:none}.toolbar-button:disabled{opacity:50%}.toolbar-button.copied-to-clipboard::after{content:attr(data-content);position:fixed;margin-top:calc(2 * var(--toolbar-height));padding:3px 5px;color:var(--sys-color-token-subtle);background:var(--sys-color-cdt-base-container);animation:2s fade-out;font-weight:normal;border:1px solid var(--sys-color-divider);border-radius:3px}.toolbar-button.toolbar-state-on .toolbar-glyph{color:var(--icon-toggled)}.toolbar-state-on.toolbar-toggle-with-dot .toolbar-text::after{content:"";position:absolute;bottom:2px;background-color:var(--sys-color-primary-bright);width:4.5px;height:4.5px;border:2px solid var(--override-toolbar-background-color,--sys-color-cdt-base-container);border-radius:50%;right:0}.toolbar-button.toolbar-state-on.toolbar-toggle-with-red-color .toolbar-glyph,\n .toolbar-button.toolbar-state-off.toolbar-default-with-red-color\n .toolbar-glyph{color:var(\n --icon-error\n )!important}.toolbar-button:not(\n .toolbar-has-glyph,\n .toolbar-has-dropdown,\n .largeicon-menu,\n .toolbar-button-secondary\n ){font-weight:bold}.toolbar-button.dark-text .toolbar-text{color:var(\n --sys-color-on-surface\n )!important}.toolbar-button.toolbar-state-on .toolbar-text{color:var(--sys-color-primary)}.toolbar-button.toolbar-state-on:enabled:active .toolbar-text{color:var(--sys-color-primary-bright)}.toolbar-button:enabled:hover:not(:active) .toolbar-glyph{color:var(--sys-color-on-surface)}.toolbar-button:enabled:hover:not(:active) .toolbar-text{color:var(--sys-color-on-surface)}.toolbar-button.toolbar-state-on:enabled:hover:not(:active) .toolbar-glyph{color:var(--sys-color-primary)}.toolbar-button.toolbar-state-on:enabled:hover:not(:active) .toolbar-text{color:var(--sys-color-primary)}& > dt-checkbox{padding:0 5px 0 0}& > select{height:var(--sys-size-9);min-width:var(--sys-size-14)}.toolbar-input{box-shadow:inset 0 0 0 2px transparent;box-sizing:border-box;width:120px;height:var(--sys-size-9);padding:0 var(--sys-size-2) 0 var(--sys-size-5);margin:1px 3px;border-radius:100px;min-width:35px;position:relative;&.focused{box-shadow:inset 0 0 0 2px var(--sys-color-state-focus-ring)}&:not(:has(devtools-button:hover), .disabled):hover{background-color:var(--sys-color-state-hover-on-subtle)}&::before{content:"";box-sizing:inherit;height:100%;width:100%;position:absolute;left:0;background:var(--sys-color-cdt-base);z-index:-1}& > devtools-icon{color:var(--sys-color-on-surface-subtle);width:var(--sys-size-8);height:var(--sys-size-8);margin-right:var(--sys-size-3)}&.disabled > devtools-icon{color:var(--sys-color-state-disabled)}}.toolbar-filter .toolbar-input-clear-button{margin-right:var(--sys-size-4)}.toolbar-input-empty .toolbar-input-clear-button{display:none}.toolbar-prompt-proxy{flex:1}.toolbar-input-prompt{flex:1;overflow:hidden;white-space:nowrap;cursor:text;color:var(--sys-color-on-surface)}.toolbar-divider{background-color:var(--sys-color-divider);width:1px;margin:5px 4px;height:16px}.toolbar-spacer{flex:auto}.toolbar-button.emulate-active{background-color:var(--sys-color-surface-variant)}&:not([floating]) > :last-child:not(:first-child, select){flex-shrink:1;justify-content:left}&:not([floating]) > .toolbar-button:last-child:not(:first-child, select){justify-content:left;margin-right:2px}& > .highlight::before{content:"";position:absolute;inset:2px;border-radius:2px;background:var(--sys-color-neutral-container);z-index:-1}& > .highlight:focus-visible{background:var(--sys-color-tonal-container);& > .title{color:var(--sys-color-on-tonal-container)}}devtools-icon.leading-issue-icon{margin:0 7px}@media (forced-colors: active){.toolbar-button:disabled{opacity:100%;color:Graytext}devtools-toolbar > *,\n .toolbar-text{color:ButtonText}.toolbar-button:disabled .toolbar-text{color:Graytext}devtools-toolbar > select:disabled{opacity:100%;color:Graytext}.toolbar-button.toolbar-state-on .toolbar-glyph{forced-color-adjust:none;color:Highlight}.toolbar-button.toolbar-state-on .toolbar-text{forced-color-adjust:none;color:Highlight}.toolbar-button:enabled:hover:not(:active) .toolbar-text,\n .toolbar-button:enabled:focus:not(:active) .toolbar-text{color:HighlightText}.toolbar-button:disabled devtools-icon{color:GrayText}.toolbar-button:disabled .toolbar-glyph{color:GrayText}.toolbar-button:enabled.hover:not(:active) .toolbar-glyph{forced-color-adjust:none;color:Highlight}.toolbar-button:enabled:hover .toolbar-glyph,\n .toolbar-button:enabled:focus .toolbar-glyph,\n .toolbar-button:enabled:hover:not(:active) .toolbar-glyph,\n .toolbar-button:enabled:hover devtools-icon,\n .toolbar-button:enabled:focus devtools-icon{color:HighlightText}.toolbar-input{forced-color-adjust:none;background:canvas;box-shadow:var(--legacy-focus-ring-inactive-shadow)}.toolbar-input.focused,\n .toolbar-input:not(.toolbar-input-empty){forced-color-adjust:none;background:canvas;box-shadow:var(--legacy-focus-ring-active-shadow)}.toolbar-input:hover{box-shadow:var(--legacy-focus-ring-active-shadow)}devtools-toolbar .devtools-link{color:linktext}.toolbar-has-dropdown{forced-color-adjust:none;background:ButtonFace;color:ButtonText}}}@keyframes fade-out{from{opacity:100%}to{opacity:0%}}.webkit-css-property{color:var(--webkit-css-property-color,var(--sys-color-token-property-special))}.webkit-html-comment{color:var(--sys-color-token-comment)}.webkit-html-tag{color:var(--sys-color-token-tag)}.webkit-html-tag-name,\n.webkit-html-close-tag-name{color:var(--sys-color-token-tag)}.webkit-html-pseudo-element{color:var(--sys-color-token-pseudo-element)}.webkit-html-js-node,\n.webkit-html-css-node{color:var(--text-primary);white-space:pre-wrap}.webkit-html-text-node{color:var(--text-primary);unicode-bidi:-webkit-isolate}.webkit-html-entity-value{background-color:rgb(0 0 0/15%);unicode-bidi:-webkit-isolate}.webkit-html-doctype{color:var(--text-secondary)}.webkit-html-attribute-name{color:var(--sys-color-token-attribute);unicode-bidi:-webkit-isolate}.webkit-html-attribute-value{color:var(--sys-color-token-attribute-value);unicode-bidi:-webkit-isolate;word-break:break-all}.devtools-link{color:var(--text-link);text-decoration:underline;outline-offset:2px;.elements-disclosure &{color:var(--text-link)}devtools-icon{vertical-align:baseline;color:var(--sys-color-primary)}:focus .selected & devtools-icon{color:var(--sys-color-tonal-container)}&:focus-visible{outline-width:unset}&.invalid-link{color:var(--text-disabled);text-decoration:none}&:not(.devtools-link-prevent-click, .invalid-link){cursor:pointer}@media (forced-colors: active){&:not(.devtools-link-prevent-click){forced-color-adjust:none;color:linktext}&:focus-visible{background:Highlight;color:HighlightText}}}\n/*# sourceURL=${import.meta.resolve("./inspectorCommon.css")} */\n`},me={cssText:`*{padding:0;margin:0;box-sizing:border-box;font-size:inherit}.wrapper{display:flex;flex-direction:row;flex:1;height:100%}.main{overflow:hidden;display:flex;flex-direction:column;flex:1}.sections{flex:1;min-height:0;overflow:hidden auto;background-color:var(--sys-color-cdt-base-container);z-index:0;position:relative;container:sections/inline-size}.section{display:flex;padding:0 16px;gap:8px;position:relative}.section::after{content:'';border-bottom:1px solid var(--sys-color-divider);position:absolute;left:0;right:0;bottom:0;z-index:-1}.section:last-child{margin-bottom:70px}.section:last-child::after{content:none}.screenshot-wrapper{flex:0 0 80px;padding-top:32px;z-index:2}@container sections (max-width: 400px){.screenshot-wrapper{display:none}}.screenshot{object-fit:cover;object-position:top center;max-width:100%;width:200px;height:auto;border:1px solid var(--sys-color-divider);border-radius:1px}.content{flex:1;min-width:0}.steps{flex:1;position:relative;align-self:flex-start;overflow:visible}.step{position:relative;padding-left:40px;margin:16px 0}.step .action{font-size:13px;line-height:16px;letter-spacing:0.03em}.recording{color:var(--sys-color-primary);font-style:italic;margin-top:8px;margin-bottom:0}.add-assertion-button{margin-top:8px}.details{max-width:240px;display:flex;flex-direction:column;align-items:flex-end}.url{font-size:12px;line-height:16px;letter-spacing:0.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sys-color-secondary);max-width:100%;margin-bottom:16px}.header{align-items:center;border-bottom:1px solid var(--sys-color-divider);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:16px}.header-title-wrapper{max-width:100%}.header-title{align-items:center;display:flex;flex:1;max-width:100%}.header-title::before{content:'';min-width:12px;height:12px;display:inline-block;background:var(--sys-color-primary);border-radius:50%;margin-right:7px}#title-input{box-sizing:content-box;font-family:inherit;font-size:18px;line-height:22px;letter-spacing:0.02em;padding:1px 4px;border:1px solid transparent;border-radius:1px;word-break:break-all}#title-input:hover{border-color:var(--input-outline)}#title-input.has-error{border-color:var(--sys-color-error)}#title-input.disabled{color:var(--sys-color-state-disabled)}.title-input-error-text{margin-top:4px;margin-left:19px;color:var(--sys-color-error)}.title-button-bar{padding-left:2px;display:flex}#title-input:focus + .title-button-bar{display:none}.settings-row{padding:16px 28px;border-bottom:1px solid var(--sys-color-divider);display:flex;flex-flow:row wrap;justify-content:space-between}.settings-title{font-size:14px;line-height:24px;letter-spacing:0.03em;color:var(--sys-color-on-surface);display:flex;align-items:center;align-content:center;gap:5px;width:fit-content}.settings{margin-top:4px;display:flex;flex-wrap:wrap;font-size:12px;line-height:20px;letter-spacing:0.03em;color:var(--sys-color-on-surface-subtle)}.settings.expanded{gap:10px}.settings .separator{width:1px;height:20px;background-color:var(--sys-color-divider);margin:0 5px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.actions .separator{width:1px;height:24px;background-color:var(--sys-color-divider)}.is-recording .header-title::before{background:var(--sys-color-error-bright)}.footer{display:flex;justify-content:center;border-top:1px solid var(--sys-color-divider);padding:12px;background:var(--sys-color-cdt-base-container);z-index:1}.controls{align-items:center;display:flex;justify-content:center;position:relative;width:100%}.chevron{width:14px;height:14px;transform:rotate(-90deg);color:var(--sys-color-on-surface)}.expanded .chevron{transform:rotate(0)}.editable-setting{display:flex;flex-direction:row;gap:12px;align-items:center}.editable-setting .devtools-text-input{width:fit-content;height:var(--sys-size-9)}.wrapping-label{display:inline-flex;align-items:center;gap:12px}.text-editor{height:100%;overflow:auto}.section-toolbar{display:flex;align-items:center;padding:3px 5px;justify-content:space-between;gap:3px}.section-toolbar > devtools-select-menu{height:24px;min-width:50px}.sections .section-toolbar{justify-content:flex-end}devtools-split-view{flex:1 1 0%;min-height:0}[slot='main']{overflow:hidden auto}[slot='sidebar']{display:flex;flex-direction:column;overflow:auto;height:100%;width:100%}[slot='sidebar'] .section-toolbar{border-bottom:1px solid var(--sys-color-divider)}.show-code{margin-right:14px;margin-top:8px}devtools-recorder-extension-view{flex:1}\n/*# sourceURL=${import.meta.resolve("./recordingView.css")} */\n`};const ye=new CSSStyleSheet;ye.replaceSync(be.cssText);const fe=new CSSStyleSheet;fe.replaceSync(me.cssText);const{html:xe}=e,we={mobile:"Mobile",desktop:"Desktop",latency:"Latency: {value} ms",upload:"Upload: {value}",download:"Download: {value}",editReplaySettings:"Edit replay settings",replaySettings:"Replay settings",default:"Default",environment:"Environment",screenshotForSection:"Screenshot for this section",editTitle:"Edit title",requiredTitleError:"Title is required",recording:"Recording…",endRecording:"End recording",recordingIsBeingStopped:"Stopping recording…",timeout:"Timeout: {value} ms",network:"Network",timeoutLabel:"Timeout",timeoutExplanation:"The timeout setting (in milliseconds) applies to every action when replaying the recording. For example, if a DOM element identified by a CSS selector does not appear on the page within the specified timeout, the replay fails with an error.",cancelReplay:"Cancel replay",showCode:"Show code",hideCode:"Hide code",addAssertion:"Add assertion",performancePanel:"Performance panel"},Se=o.i18n.registerUIStrings("panels/recorder/components/RecordingView.ts",we),ke=o.i18n.getLocalizedString.bind(void 0,Se);class $e extends Event{static eventName="recordingfinished";constructor(){super($e.eventName)}}class Ee extends Event{static eventName="playrecording";data;constructor(e={targetPanel:"chrome-recorder",speed:"normal"}){super(Ee.eventName),this.data=e}}class Ce extends Event{static eventName="abortreplay";constructor(){super(Ce.eventName)}}class Re extends Event{static eventName="recordingchanged";data;constructor(e,t){super(Re.eventName),this.data={currentStep:e,newStep:t}}}class Te extends Event{static eventName="addassertion";constructor(){super(Te.eventName)}}class Ie extends Event{static eventName="recordingtitlechanged";title;constructor(e){super(Ie.eventName,{}),this.title=e}}class Ne extends Event{static eventName="networkconditionschanged";data;constructor(e){super(Ne.eventName,{composed:!0,bubbles:!0}),this.data=e}}class je extends Event{static eventName="timeoutchanged";data;constructor(e){super(je.eventName,{composed:!0,bubbles:!0}),this.data=e}}const Ae=[p.NetworkManager.NoThrottlingConditions,p.NetworkManager.OfflineConditions,p.NetworkManager.Slow3GConditions,p.NetworkManager.Slow4GConditions,p.NetworkManager.Fast4GConditions];class ze extends HTMLElement{#t=this.attachShadow({mode:"open"});#S={isPlaying:!1,isPausedOnBreakpoint:!1};#k=null;#$=!1;#E=!1;#C=!1;#R;#T=[];#I;#N=[];#y;#s;#j;#A=new Set;#z;#M=!1;#B=!0;#P=[];#L=[];#f;#O=!1;#F="";#D="";#V;#_;#K;#G=this.#U.bind(this);constructor(){super()}set data(e){this.#$=e.isRecording,this.#S=e.replayState,this.#E=e.recordingTogglingInProgress,this.#R=e.currentStep,this.#k=e.recording,this.#T=this.#k.steps,this.#N=e.sections,this.#y=e.settings,this.#s=e.recorderSettings,this.#I=e.currentError,this.#j=e.lastReplayResult,this.#B=e.replayAllowed,this.#C=!1,this.#A=e.breakpointIndexes,this.#P=e.builtInConverters,this.#L=e.extensionConverters,this.#f=e.replayExtensions,this.#K=e.extensionDescriptor,this.#D=this.#s?.preferredCopyFormat??e.builtInConverters[0]?.getId(),this.#H(),this.#i()}connectedCallback(){this.#t.adoptedStyleSheets=[ye,fe,s.textInputStyles],document.addEventListener("copy",this.#G),this.#i()}disconnectedCallback(){document.removeEventListener("copy",this.#G)}scrollToBottom(){const e=this.shadowRoot?.querySelector(".sections");e&&(e.scrollTop=e.scrollHeight)}#q(){this.dispatchEvent(new Te)}#W(){this.dispatchEvent(new $e)}#X(){this.dispatchEvent(new Ce)}#Y(e){this.dispatchEvent(new Ee({targetPanel:"chrome-recorder",speed:e.speed,extension:e.extension}))}#J(e){if(!this.#R)return"default";if(e===this.#R)return this.#I?"error":this.#S.isPlaying?this.#S.isPausedOnBreakpoint?"stopped":"current":"success";const t=this.#T.indexOf(this.#R);if(-1===t)return"default";return this.#T.indexOf(e)<t?"success":"outstanding"}#Z(e){const t=this.#R;if(!t)return"default";const o=this.#N.find((e=>e.steps.includes(t)));if(!o&&this.#I)return"error";if(e===o)return"success";return this.#N.indexOf(o)>=this.#N.indexOf(e)?"success":"outstanding"}#Q(e,t,o){const r=this.#T.indexOf(t);return xe`
174
+ <devtools-step-view
175
+ @click=${this.#ee}
176
+ @mouseover=${this.#te}
177
+ @copystep=${this.#oe}
178
+ .data=${{step:t,state:this.#J(t),error:this.#R===t?this.#I:void 0,isFirstSection:!1,isLastSection:o&&this.#T[this.#T.length-1]===t,isStartOfGroup:!1,isEndOfGroup:e.steps[e.steps.length-1]===t,stepIndex:r,hasBreakpoint:this.#A.has(r),sectionIndex:-1,isRecording:this.#$,isPlaying:this.#S.isPlaying,removable:this.#T.length>1,builtInConverters:this.#P,extensionConverters:this.#L,isSelected:this.#z===t,recorderSettings:this.#s}}
179
+ jslog=${i.section("step").track({click:!0})}
180
+ ></devtools-step-view>
181
+ `}#te=e=>{const t=e.target,o=t.step||t.section?.causingStep;o&&!this.#z&&this.#re(o)};#ee(e){e.stopPropagation();const t=e.target,o=t.step||t.section?.causingStep||null;this.#z!==o&&(this.#z=o,this.#i(),o&&this.#re(o,!0))}#se(){void 0!==this.#z&&(this.#z=void 0,this.#i())}#ie(e){"Enter"===e.key&&(e.preventDefault(),this.#ne(e))}#ne(e){e.stopPropagation(),this.#M=!this.#M,this.#i()}#ae(e){const t=e.target;if(t instanceof HTMLSelectElement){const e=Ae.find((e=>e.i18nTitleKey===t.value));this.dispatchEvent(new Ne(e?.i18nTitleKey===p.NetworkManager.NoThrottlingConditions.i18nTitleKey?void 0:e))}}#le(e){const t=e.target;t.checkValidity()?this.dispatchEvent(new je(Number(t.value))):t.reportValidity()}#ce=e=>{const t=e.target.innerText.trim();if(!t)return this.#C=!0,void this.#i();this.dispatchEvent(new Ie(t))};#de=e=>{switch(e.code){case"Escape":case"Enter":e.target.blur(),e.stopPropagation()}};#pe=()=>{const e=this.#t.getElementById("title-input");e.focus();const t=document.createRange();t.selectNodeContents(e),t.collapse(!1);const o=window.getSelection();o?.removeAllRanges(),o?.addRange(t)};#ue=e=>{const t=e.target;t.matches(".wrapping-label")&&t.querySelector("devtools-select-menu")?.click()};async#he(e){let t=[...this.#P,...this.#L].find((e=>e.getId()===this.#s?.preferredCopyFormat));if(t||(t=this.#P[0]),!t)throw new Error("No default converter found");let o="";e?o=await t.stringifyStep(e):this.#k&&([o]=await t.stringify(this.#k)),c.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(o);const r=e?function(e){switch(e){case"puppeteer":case"puppeteer-firefox":return 5;case"json":return 6;case"@puppeteer/replay":return 7;default:return 8}}(t.getId()):function(e){switch(e){case"puppeteer":case"puppeteer-firefox":return 1;case"json":return 2;case"@puppeteer/replay":return 3;default:return 4}}(t.getId());c.userMetrics.recordingCopiedToClipboard(r)}#oe(e){e.stopPropagation(),this.#he(e.step)}async#U(e){e.target===document.body&&(e.preventDefault(),await this.#he(this.#z),c.userMetrics.keyboardShortcutFired("chrome-recorder.copy-recording-or-step"))}#ve(){if(!this.#y)return xe``;const t=[];this.#y.viewportSettings&&(t.push(xe`<div>${this.#y.viewportSettings.isMobile?ke(we.mobile):ke(we.desktop)}</div>`),t.push(xe`<div class="separator"></div>`),t.push(xe`<div>${this.#y.viewportSettings.width}×${this.#y.viewportSettings.height} px</div>`));const r=[];if(this.#M){const e=this.#y.networkConditionsSettings?.i18nTitleKey||p.NetworkManager.NoThrottlingConditions.i18nTitleKey,t=Ae.find((t=>t.i18nTitleKey===e));let o="";t&&(o=t.title instanceof Function?t.title():t.title),r.push(xe`<div class="editable-setting">
182
+ <label class="wrapping-label" @click=${this.#ue}>
183
+ ${ke(we.network)}
184
+ <select
185
+ title=${o}
186
+ jslog=${i.dropDown("network-conditions").track({change:!0})}
187
+ @change=${this.#ae}>
188
+ ${Ae.map((t=>xe`
189
+ <option jslog=${i.item(d.StringUtilities.toKebabCase(t.i18nTitleKey||""))}
190
+ value=${t.i18nTitleKey||""} ?selected=${e===t.i18nTitleKey}>
191
+ ${t.title instanceof Function?t.title():t.title}
192
+ </option>`))}
193
+ </select>
194
+ </label>
195
+ </div>`),r.push(xe`<div class="editable-setting">
196
+ <label class="wrapping-label" title=${ke(we.timeoutExplanation)}>
197
+ ${ke(we.timeoutLabel)}
198
+ <input
199
+ @input=${this.#le}
200
+ required
201
+ min=${n.SchemaUtils.minTimeout}
202
+ max=${n.SchemaUtils.maxTimeout}
203
+ value=${this.#y.timeout||n.RecordingPlayer.defaultTimeout}
204
+ jslog=${i.textField("timeout").track({change:!0})}
205
+ class="devtools-text-input"
206
+ type="number">
207
+ </label>
208
+ </div>`)}else this.#y.networkConditionsSettings?this.#y.networkConditionsSettings.title?r.push(xe`<div>${this.#y.networkConditionsSettings.title}</div>`):r.push(xe`<div>
209
+ ${ke(we.download,{value:o.ByteUtilities.bytesToString(this.#y.networkConditionsSettings.download)})},
210
+ ${ke(we.upload,{value:o.ByteUtilities.bytesToString(this.#y.networkConditionsSettings.upload)})},
211
+ ${ke(we.latency,{value:this.#y.networkConditionsSettings.latency})}
212
+ </div>`):r.push(xe`<div>${p.NetworkManager.NoThrottlingConditions.title instanceof Function?p.NetworkManager.NoThrottlingConditions.title():p.NetworkManager.NoThrottlingConditions.title}</div>`),r.push(xe`<div class="separator"></div>`),r.push(xe`<div>${ke(we.timeout,{value:this.#y.timeout||n.RecordingPlayer.defaultTimeout})}</div>`);const s=!this.#$&&!this.#S.isPlaying,a={"settings-title":!0,expanded:this.#M},l={expanded:this.#M,settings:!0};return xe`
213
+ <div class="settings-row">
214
+ <div class="settings-container">
215
+ <div
216
+ class=${e.Directives.classMap(a)}
217
+ @keydown=${s&&this.#ie}
218
+ @click=${s&&this.#ne}
219
+ tabindex="0"
220
+ role="button"
221
+ jslog=${i.action("replay-settings").track({click:!0})}
222
+ aria-label=${ke(we.editReplaySettings)}>
223
+ <span>${ke(we.replaySettings)}</span>
224
+ ${s?xe`<devtools-icon
225
+ class="chevron"
226
+ name="triangle-down">
227
+ </devtools-icon>`:""}
228
+ </div>
229
+ <div class=${e.Directives.classMap(l)}>
230
+ ${r.length?r:xe`<div>${ke(we.default)}</div>`}
231
+ </div>
232
+ </div>
233
+ <div class="settings-container">
234
+ <div class="settings-title">${ke(we.environment)}</div>
235
+ <div class="settings">
236
+ ${t.length?t:xe`<div>${ke(we.default)}</div>`}
237
+ </div>
238
+ </div>
239
+ </div>
240
+ `}#ge(){const e=[...this.#P||[],...this.#L||[]].find((e=>e.getId()===this.#D));return e||this.#P[0]}#be(){if(this.#K)return xe`
241
+ <devtools-recorder-extension-view .descriptor=${this.#K}>
242
+ </devtools-recorder-extension-view>
243
+ `;const t=this.#ge(),o=t?.getFormatName();return xe`
244
+ <devtools-split-view
245
+ direction="auto"
246
+ sidebar-position="second"
247
+ sidebar-initial-size="300"
248
+ sidebar-visibility=${this.#O?"":"hidden"}
249
+ >
250
+ <div slot="main">
251
+ ${this.#me()}
252
+ </div>
253
+ <div slot="sidebar" jslog=${i.pane("source-code").track({resize:!0})}>
254
+ ${this.#O?xe`
255
+ <div class="section-toolbar" jslog=${i.toolbar()}>
256
+ <devtools-select-menu
257
+ @selectmenuselected=${this.#ye}
258
+ .showDivider=${!0}
259
+ .showArrow=${!0}
260
+ .sideButton=${!1}
261
+ .showSelectedItem=${!0}
262
+ .position=${"bottom"}
263
+ .buttonTitle=${o||""}
264
+ .jslogContext=${"code-format"}
265
+ >
266
+ ${this.#P.map((e=>xe`<devtools-menu-item
267
+ .value=${e.getId()}
268
+ .selected=${this.#D===e.getId()}
269
+ jslog=${i.action().track({click:!0}).context(`converter-${d.StringUtilities.toKebabCase(e.getId())}`)}
270
+ >
271
+ ${e.getFormatName()}
272
+ </devtools-menu-item>`))}
273
+ ${this.#L.map((e=>xe`<devtools-menu-item
274
+ .value=${e.getId()}
275
+ .selected=${this.#D===e.getId()}
276
+ jslog=${i.action().track({click:!0}).context("converter-extension")}
277
+ >
278
+ ${e.getFormatName()}
279
+ </devtools-menu-item>`))}
280
+ </devtools-select-menu>
281
+ <devtools-button
282
+ title=${n.Tooltip.getTooltipForActions(ke(we.hideCode),"chrome-recorder.toggle-code-view")}
283
+ .data=${{variant:"icon",size:"SMALL",iconName:"cross"}}
284
+ @click=${this.showCodeToggle}
285
+ jslog=${i.close().track({click:!0})}
286
+ ></devtools-button>
287
+ </div>
288
+ ${this.#fe()}`:e.nothing}
289
+ </div>
290
+ </devtools-split-view>
291
+ `}#fe(){if(!this.#V)throw new Error("Unexpected: trying to render the text editor without editorState");return xe`
292
+ <div class="text-editor" jslog=${i.textField().track({change:!0})}>
293
+ <devtools-text-editor .state=${this.#V}></devtools-text-editor>
294
+ </div>
295
+ `}#xe(e){return e.screenshot?xe`
296
+ <img class="screenshot" src=${e.screenshot} alt=${ke(we.screenshotForSection)} />
297
+ `:null}#we(){return this.#S.isPlaying?xe`
298
+ <devtools-button .jslogContext=${"abort-replay"} @click=${this.#X} .iconName=${"pause"} .variant=${"outlined"}>
299
+ ${ke(we.cancelReplay)}
300
+ </devtools-button>`:xe`<devtools-replay-section
301
+ .data=${{settings:this.#s,replayExtensions:this.#f}}
302
+ .disabled=${this.#S.isPlaying}
303
+ @startreplay=${this.#Y}
304
+ >
305
+ </devtools-replay-section>`}#Se(e){e.stopPropagation(),this.dispatchEvent(new Ee({targetPanel:"timeline",speed:"normal"}))}showCodeToggle=()=>{this.#O=!this.#O,c.userMetrics.recordingCodeToggled(this.#O?1:2),this.#H()};#H=async()=>{if(!this.#k)return;const e=this.#ge();if(!e)return;const[t,o]=await e.stringify(this.#k);this.#F=t,this.#_=o,this.#_?.shift();const r=e.getMediaType(),s=r?await h.CodeHighlighter.languageFromMIME(r):null;this.#V=u.EditorState.create({doc:this.#F,extensions:[v.Config.baseConfiguration(this.#F),u.EditorState.readOnly.of(!0),u.EditorView.lineWrapping,s||[]]}),this.#i(),this.dispatchEvent(new Event("code-generated"))};#re=(e,t=!1)=>{if(!this.#_)return;const o=this.#T.indexOf(e);if(-1===o)return;const r=this.#t.querySelector("devtools-text-editor");if(!r)return;const s=r.editor;if(!s)return;const i=this.#_[2*o],n=this.#_[2*o+1];let a=r.createSelection({lineNumber:i+n,columnNumber:0},{lineNumber:i,columnNumber:0});const l=r.state.doc.lineAt(a.main.anchor);a=r.createSelection({lineNumber:i+n-1,columnNumber:l.length+1},{lineNumber:i,columnNumber:0}),s.dispatch({selection:a,effects:t?[u.EditorView.scrollIntoView(a.main,{y:"nearest"})]:void 0})};#ye=e=>{this.#D=e.itemValue,this.#s&&(this.#s.preferredCopyFormat=e.itemValue),this.#H()};#me(){return xe`
306
+ <div class="sections">
307
+ ${this.#O?"":xe`<div class="section-toolbar">
308
+ <devtools-button
309
+ @click=${this.showCodeToggle}
310
+ class="show-code"
311
+ .data=${{variant:"outlined",title:n.Tooltip.getTooltipForActions(ke(we.showCode),"chrome-recorder.toggle-code-view")}}
312
+ jslog=${i.toggleSubpane("chrome-recorder.toggle-code-view").track({click:!0})}
313
+ >
314
+ ${ke(we.showCode)}
315
+ </devtools-button>
316
+ </div>`}
317
+ ${this.#N.map(((e,t)=>xe`
318
+ <div class="section">
319
+ <div class="screenshot-wrapper">
320
+ ${this.#xe(e)}
321
+ </div>
322
+ <div class="content">
323
+ <div class="steps">
324
+ <devtools-step-view
325
+ @click=${this.#ee}
326
+ @mouseover=${this.#te}
327
+ .data=${{section:e,state:this.#Z(e),isStartOfGroup:!0,isEndOfGroup:0===e.steps.length,isFirstSection:0===t,isLastSection:t===this.#N.length-1&&0===e.steps.length,isSelected:this.#z===(e.causingStep||null),sectionIndex:t,isRecording:this.#$,isPlaying:this.#S.isPlaying,error:"error"===this.#Z(e)?this.#I:void 0,hasBreakpoint:!1,removable:this.#T.length>1&&e.causingStep}}
328
+ >
329
+ </devtools-step-view>
330
+ ${e.steps.map((o=>this.#Q(e,o,t===this.#N.length-1)))}
331
+ ${!this.#E&&this.#$&&t===this.#N.length-1?xe`<devtools-button
332
+ class="step add-assertion-button"
333
+ .data=${{variant:"outlined",title:ke(we.addAssertion),jslogContext:"add-assertion"}}
334
+ @click=${this.#q}
335
+ >${ke(we.addAssertion)}</devtools-button>`:void 0}
336
+ ${this.#$&&t===this.#N.length-1?xe`<div class="step recording">${ke(we.recording)}</div>`:null}
337
+ </div>
338
+ </div>
339
+ </div>
340
+ `))}
341
+ </div>
342
+ `}#ke(){if(!this.#k)return"";const{title:t}=this.#k,o=!this.#S.isPlaying&&!this.#$;return xe`
343
+ <div class="header">
344
+ <div class="header-title-wrapper">
345
+ <div class="header-title">
346
+ <span @blur=${this.#ce}
347
+ @keydown=${this.#de}
348
+ id="title-input"
349
+ .contentEditable=${o?"true":"false"}
350
+ jslog=${i.value("title").track({change:!0})}
351
+ class=${e.Directives.classMap({"has-error":this.#C,disabled:!o})}
352
+ .innerText=${e.Directives.live(t)}></span>
353
+ <div class="title-button-bar">
354
+ <devtools-button
355
+ @click=${this.#pe}
356
+ .data=${{disabled:!o,variant:"toolbar",iconName:"edit",title:ke(we.editTitle),jslogContext:"edit-title"}}
357
+ ></devtools-button>
358
+ </div>
359
+ </div>
360
+ ${this.#C?xe`<div class="title-input-error-text">
361
+ ${ke(we.requiredTitleError)}
362
+ </div>`:""}
363
+ </div>
364
+ ${!this.#$&&this.#B?xe`<div class="actions">
365
+ <devtools-button
366
+ @click=${this.#Se}
367
+ .data=${{disabled:this.#S.isPlaying,variant:"outlined",iconName:"performance",title:ke(we.performancePanel),jslogContext:"measure-performance"}}
368
+ >
369
+ ${ke(we.performancePanel)}
370
+ </devtools-button>
371
+ <div class="separator"></div>
372
+ ${this.#we()}
373
+ </div>`:""}
374
+ </div>`}#$e(){if(!this.#$)return"";const e=this.#E?ke(we.recordingIsBeingStopped):ke(we.endRecording);return xe`
375
+ <div class="footer">
376
+ <div class="controls">
377
+ <devtools-control-button
378
+ jslog=${i.toggle("toggle-recording").track({click:!0})}
379
+ @click=${this.#W}
380
+ .disabled=${this.#E}
381
+ .shape=${"square"}
382
+ .label=${e}
383
+ title=${n.Tooltip.getTooltipForActions(e,"chrome-recorder.start-recording")}
384
+ >
385
+ </devtools-control-button>
386
+ </div>
387
+ </div>
388
+ `}#i(){const t={wrapper:!0,"is-recording":this.#$,"is-playing":this.#S.isPlaying,"was-successful":"Success"===this.#j,"was-failure":"Failure"===this.#j};e.render(xe`
389
+ <div @click=${this.#se} class=${e.Directives.classMap(t)}>
390
+ <div class="main">
391
+ ${this.#ke()}
392
+ ${this.#K?xe`
393
+ <devtools-recorder-extension-view .descriptor=${this.#K}>
394
+ </devtools-recorder-extension-view>
395
+ `:xe`
396
+ ${this.#ve()}
397
+ ${this.#be()}
398
+ `}
399
+ ${this.#$e()}
400
+ </div>
401
+ </div>
402
+ `,this.#t,{host:this})}}customElements.define("devtools-recording-view",ze);var Me=Object.freeze({__proto__:null,AbortReplayEvent:Ce,AddAssertionEvent:Te,NetworkConditionsChanged:Ne,PlayRecordingEvent:Ee,RecordingChangedEvent:Re,RecordingFinishedEvent:$e,RecordingTitleChangedEvent:Ie,RecordingView:ze,TimeoutChanged:je}),Be={cssText:`.select-button{display:flex;gap:12px}.select-button devtools-button{position:relative}.select-button devtools-select-menu{position:relative;top:var(--sys-size-1);height:var(--sys-size-9)}.select-menu-item-content-with-icon{display:flex;align-items:center}\n/*# sourceURL=${import.meta.resolve("./selectButton.css")} */\n`};const Pe=new CSSStyleSheet;Pe.replaceSync(be.cssText);const Le=new CSSStyleSheet;Le.replaceSync(Be.cssText);const{html:Oe,Directives:{ifDefined:Fe,classMap:De}}=e;class Ve extends Event{value;static eventName="selectbuttonclick";constructor(e){super(Ve.eventName,{bubbles:!0,composed:!0}),this.value=e}}class _e extends Event{value;static eventName="selectmenuselected";constructor(e){super(_e.eventName,{bubbles:!0,composed:!0}),this.value=e}}class Ke extends HTMLElement{#t=this.attachShadow({mode:"open"});#c={disabled:!1,value:"",items:[],buttonLabel:"",groups:[],variant:"primary"};connectedCallback(){this.#t.adoptedStyleSheets=[Pe,Le],a.ScheduledRender.scheduleRender(this,this.#i)}get disabled(){return this.#c.disabled}set disabled(e){this.#c.disabled=e,a.ScheduledRender.scheduleRender(this,this.#i)}get items(){return this.#c.items}set items(e){this.#c.items=e,a.ScheduledRender.scheduleRender(this,this.#i)}set buttonLabel(e){this.#c.buttonLabel=e}set groups(e){this.#c.groups=e,a.ScheduledRender.scheduleRender(this,this.#i)}get value(){return this.#c.value}set value(e){this.#c.value=e,a.ScheduledRender.scheduleRender(this,this.#i)}get variant(){return this.#c.variant}set variant(e){this.#c.variant=e,a.ScheduledRender.scheduleRender(this,this.#i)}set action(e){this.#c.action=e,a.ScheduledRender.scheduleRender(this,this.#i)}#Ee(e){e.stopPropagation(),this.dispatchEvent(new Ve(this.#c.value))}#Ce(e){e.target instanceof HTMLSelectElement&&(this.dispatchEvent(new _e(e.target.value)),a.ScheduledRender.scheduleRender(this,this.#i))}#Re(e,t){const o=e.value===t.value;return Oe`
403
+ <option
404
+ .title=${e.label()}
405
+ value=${e.value}
406
+ ?selected=${o}
407
+ jslog=${i.item(d.StringUtilities.toKebabCase(e.value)).track({click:!0})}
408
+ >${o&&e.buttonLabel?e.buttonLabel():e.label()}</option>
409
+ `}#Te(e,t){return Oe`
410
+ <optgroup label=${e.name}>
411
+ ${e.items.map((e=>this.#Re(e,t)))}
412
+ </optgroup>
413
+ `}#Ie(e){return this.#c.action?n.Tooltip.getTooltipForActions(e,this.#c.action):""}#i=()=>{const t=Boolean(this.#c.groups.length),o=t?this.#c.groups.flatMap((e=>e.items)):this.#c.items,r=o.find((e=>e.value===this.#c.value))||o[0];if(!r)return;const s={primary:"primary"===this.#c.variant,secondary:"outlined"===this.#c.variant},n="outlined"===this.#c.variant?"outlined":"primary",a=r.buttonLabel?r.buttonLabel():r.label();e.render(Oe`
414
+ <div class="select-button" title=${Fe(this.#Ie(a))}>
415
+ <select
416
+ class=${De(s)}
417
+ ?disabled=${this.#c.disabled}
418
+ jslog=${i.dropDown("network-conditions").track({change:!0})}
419
+ @change=${this.#Ce}>
420
+ ${t?this.#c.groups.map((e=>this.#Te(e,r))):this.#c.items.map((e=>this.#Re(e,r)))}
421
+ </select>
422
+ ${r?Oe`
423
+ <devtools-button
424
+ .disabled=${this.#c.disabled}
425
+ .variant=${n}
426
+ .iconName=${r.buttonIconName}
427
+ @click=${this.#Ee}>
428
+ ${this.#c.buttonLabel}
429
+ </devtools-button>`:""}
430
+ </div>`,this.#t,{host:this})}}customElements.define("devtools-select-button",Ke);var Ge=Object.freeze({__proto__:null,SelectButton:Ke,SelectButtonClickEvent:Ve,SelectMenuSelectedEvent:_e}),Ue={cssText:`*{box-sizing:border-box;padding:0;margin:0;font-size:inherit}:host{display:block}.row{display:flex;flex-direction:row;color:var(--sys-color-token-property-special);font-family:var(--monospace-font-family);font-size:var(--monospace-font-size);align-items:center;line-height:18px;margin-top:3px}.row devtools-button{line-height:1;margin-left:0.5em}.separator{margin-right:0.5em;color:var(--sys-color-on-surface)}.padded{margin-left:2em}.padded.double{margin-left:4em}.selector-picker{width:18px;height:18px}.inline-button{width:18px;height:18px;opacity:0%;visibility:hidden;transition:opacity 200ms;flex-shrink:0}.row:focus-within .inline-button,\n.row:hover .inline-button{opacity:100%;visibility:visible}.wrapped.row{flex-wrap:wrap}.gap.row{gap:5px}.gap.row devtools-button{margin-left:0}.regular-font{font-family:inherit;font-size:inherit}.no-margin{margin:0}.row-buttons{margin-top:3px}.error{margin:3px 0 6px;padding:8px 12px;background:var(--sys-color-error-container);color:var(--sys-color-error)}\n/*# sourceURL=${import.meta.resolve("./stepEditor.css")} */\n`};function He(e,t="Assertion failed!"){if(!e)throw new Error(t)}const qe=e=>{for(const t of Reflect.ownKeys(e)){const o=e[t];(o&&"object"==typeof o||"function"==typeof o)&&qe(o)}return Object.freeze(e)};class We{value;constructor(e){this.value=e}}class Xe{value;constructor(e){this.value=e}}const Ye=(e,t)=>{if(t instanceof Xe){He(Array.isArray(e),`Expected an array. Got ${typeof e}.`);const o=[...e],r=Object.keys(t.value).sort(((e,t)=>Number(t)-Number(e)));for(const e of r){const r=t.value[Number(e)];void 0===r?o.splice(Number(e),1):r instanceof We?o.splice(Number(e),0,r.value):o[Number(e)]=Ye(o[e],r)}return Object.freeze(o)}if("object"==typeof t&&!Array.isArray(t)){He(!Array.isArray(e),"Expected an object. Got an array.");const o={...e},r=Object.keys(t);for(const e of r){const r=t[e];void 0===r?delete o[e]:o[e]=Ye(o[e],r)}return Object.freeze(o)}return t};var Je=self&&self.__decorate||function(e,t,o,r){var s,i=arguments.length,n=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,o,r);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(n=(i<3?s(n):i>3?s(t,o,n):s(t,o))||n);return i>3&&n&&Object.defineProperty(t,o,n),n};const Ze=new CSSStyleSheet;Ze.replaceSync(Ue.cssText);const{html:Qe,Decorators:et,Directives:tt,LitElement:ot}=e,{customElement:rt,property:st,state:it}=et,{live:nt}=tt,at=Object.freeze({string:e=>e.trim(),number:e=>{const t=parseFloat(e);return Number.isNaN(t)?0:t},boolean:e=>"true"===e.toLowerCase()}),lt=Object.freeze({selectors:"string",offsetX:"number",offsetY:"number",target:"string",frame:"number",assertedEvents:"string",value:"string",key:"string",operator:"string",count:"number",expression:"string",x:"number",y:"number",url:"string",type:"string",timeout:"number",duration:"number",button:"string",deviceType:"string",width:"number",height:"number",deviceScaleFactor:"number",isMobile:"boolean",hasTouch:"boolean",isLandscape:"boolean",download:"number",upload:"number",latency:"number",name:"string",parameters:"string",visible:"boolean",properties:"string",attributes:"string"}),ct=qe({selectors:[[".cls"]],offsetX:1,offsetY:1,target:"main",frame:[0],assertedEvents:[{type:"navigation",url:"https://example.com",title:"Title"}],value:"Value",key:"Enter",operator:">=",count:1,expression:"true",x:0,y:0,url:"https://example.com",timeout:5e3,duration:50,deviceType:"mouse",button:"primary",type:"click",width:800,height:600,deviceScaleFactor:1,isMobile:!1,hasTouch:!1,isLandscape:!0,download:1e3,upload:1e3,latency:25,name:"customParam",parameters:"{}",properties:"{}",attributes:[{name:"attribute",value:"value"}],visible:!0}),dt=qe({[n.Schema.StepType.Click]:{required:["selectors","offsetX","offsetY"],optional:["assertedEvents","button","deviceType","duration","frame","target","timeout"]},[n.Schema.StepType.DoubleClick]:{required:["offsetX","offsetY","selectors"],optional:["assertedEvents","button","deviceType","frame","target","timeout"]},[n.Schema.StepType.Hover]:{required:["selectors"],optional:["assertedEvents","frame","target","timeout"]},[n.Schema.StepType.Change]:{required:["selectors","value"],optional:["assertedEvents","frame","target","timeout"]},[n.Schema.StepType.KeyDown]:{required:["key"],optional:["assertedEvents","target","timeout"]},[n.Schema.StepType.KeyUp]:{required:["key"],optional:["assertedEvents","target","timeout"]},[n.Schema.StepType.Scroll]:{required:[],optional:["assertedEvents","frame","target","timeout","x","y"]},[n.Schema.StepType.Close]:{required:[],optional:["assertedEvents","target","timeout"]},[n.Schema.StepType.Navigate]:{required:["url"],optional:["assertedEvents","target","timeout"]},[n.Schema.StepType.WaitForElement]:{required:["selectors"],optional:["assertedEvents","attributes","count","frame","operator","properties","target","timeout","visible"]},[n.Schema.StepType.WaitForExpression]:{required:["expression"],optional:["assertedEvents","frame","target","timeout"]},[n.Schema.StepType.CustomStep]:{required:["name","parameters"],optional:["assertedEvents","target","timeout"]},[n.Schema.StepType.EmulateNetworkConditions]:{required:["download","latency","upload"],optional:["assertedEvents","target","timeout"]},[n.Schema.StepType.SetViewport]:{required:["deviceScaleFactor","hasTouch","height","isLandscape","isMobile","width"],optional:["assertedEvents","target","timeout"]}}),pt={notSaved:"Not saved: {error}",addAttribute:"Add {attributeName}",deleteRow:"Delete row",selectorPicker:"Select an element in the page to update selectors",addFrameIndex:"Add frame index within the frame tree",removeFrameIndex:"Remove frame index",addSelectorPart:"Add a selector part",removeSelectorPart:"Remove a selector part",addSelector:"Add a selector",removeSelector:"Remove a selector",unknownActionType:"Unknown action type."},ut=o.i18n.registerUIStrings("panels/recorder/components/StepEditor.ts",pt),ht=o.i18n.getLocalizedString.bind(void 0,ut);class vt extends Event{static eventName="stepedited";data;constructor(e){super(vt.eventName,{bubbles:!0,composed:!0}),this.data=e}}class gt{static#Ne=new y.SharedObject.SharedObject((()=>n.RecordingPlayer.RecordingPlayer.connectPuppeteer()),(({browser:e})=>n.RecordingPlayer.RecordingPlayer.disconnectPuppeteer(e)));static async default(e){const t={type:e},o=dt[t.type];let r=Promise.resolve();for(const e of o.required)r=Promise.all([r,(async()=>Object.assign(t,{[e]:await this.defaultByAttribute(t,e)}))()]);return await r,Object.freeze(t)}static async defaultByAttribute(e,t){return await this.#Ne.run((e=>{switch(t){case"assertedEvents":return Ye(ct.assertedEvents,new Xe({0:{url:e.page.url()||ct.assertedEvents[0].url}}));case"url":return e.page.url()||ct.url;case"height":return e.page.evaluate((()=>visualViewport.height))||ct.height;case"width":return e.page.evaluate((()=>visualViewport.width))||ct.width;default:return ct[t]}}))}static fromStep(e){const t=structuredClone(e);for(const o of["parameters","properties"])o in e&&void 0!==e[o]&&(t[o]=JSON.stringify(e[o]));if("attributes"in e&&e.attributes){t.attributes=[];for(const[o,r]of Object.entries(e.attributes))t.attributes.push({name:o,value:r})}return"selectors"in e&&(t.selectors=e.selectors.map((e=>"string"==typeof e?[e]:[...e]))),qe(t)}static toStep(e){const t=structuredClone(e);for(const o of["parameters","properties"]){const r=e[o];r&&Object.assign(t,{[o]:JSON.parse(r)})}if(e.attributes)if(0!==e.attributes.length){const o={};for(const{name:t,value:r}of e.attributes)Object.assign(o,{[t]:r});Object.assign(t,{attributes:o})}else"attributes"in t&&delete t.attributes;if(e.selectors){const o=e.selectors.filter((e=>e.length>0)).map((e=>1===e.length?e[0]:[...e]));0!==o.length?Object.assign(t,{selectors:o}):"selectors"in t&&delete t.selectors}return e.frame&&0===e.frame.length&&"frame"in t&&delete t.frame,o=n.SchemaUtils.parseStep(t),JSON.parse(JSON.stringify(o));var o}}let bt=class extends ot{static styles=[Ze];#je=new m.SelectorPicker.SelectorPicker(this);constructor(){super(),this.disabled=!1}#e=e=>{e.preventDefault(),e.stopPropagation(),this.#je.toggle()};disconnectedCallback(){super.disconnectedCallback(),this.#je.stop()}render(){if(!this.disabled)return Qe`<devtools-button
431
+ @click=${this.#e}
432
+ .title=${ht(pt.selectorPicker)}
433
+ class="selector-picker"
434
+ .size=${"SMALL"}
435
+ .iconName=${"select-element"}
436
+ .active=${this.#je.active}
437
+ .variant=${"icon"}
438
+ jslog=${i.toggle("selector-picker").track({click:!0})}
439
+ ></devtools-button>`}};Je([st({type:Boolean})],bt.prototype,"disabled",void 0),bt=Je([rt("devtools-recorder-selector-picker-button")],bt);let mt=class extends ot{static styles=[Ze];#Ae=new Set;constructor(){super(),this.state={type:n.Schema.StepType.WaitForElement},this.isTypeEditable=!0,this.disabled=!1}createRenderRoot(){const e=super.createRenderRoot();return e.addEventListener("keydown",this.#ze),e}set step(e){this.state=qe(gt.fromStep(e)),this.error=void 0}#Me(e){try{this.dispatchEvent(new vt(gt.toStep(e))),this.state=e}catch(e){this.error=e.message}}#Be=e=>{e.preventDefault(),e.stopPropagation(),this.#Me(Ye(this.state,{target:e.data.target,frame:e.data.frame,selectors:e.data.selectors.map((e=>"string"==typeof e?[e]:e)),offsetX:e.data.offsetX,offsetY:e.data.offsetY}))};#Pe=(e,t,o)=>r=>{r.preventDefault(),r.stopPropagation(),this.#Me(Ye(this.state,e)),this.#Le(t),o&&c.userMetrics.recordingEdited(o)};#ze=e=>{if(He(e instanceof KeyboardEvent),e.target instanceof b.SuggestionInput.SuggestionInput&&"Enter"===e.key){e.preventDefault(),e.stopPropagation();const t=this.renderRoot.querySelectorAll("devtools-suggestion-input"),o=[...t].findIndex((t=>t===e.target));o>=0&&o+1<t.length?t[o+1].focus():e.target.blur()}};#Oe=e=>t=>{if(He(t.target instanceof b.SuggestionInput.SuggestionInput),t.target.disabled)return;const o=lt[e.attribute],r=at[o](t.target.value),s=e.from.bind(this)(r);s&&(this.#Me(Ye(this.state,s)),e.metric&&c.userMetrics.recordingEdited(e.metric))};#Fe=async e=>{if(He(e.target instanceof b.SuggestionInput.SuggestionInput),e.target.disabled)return;const t=e.target.value;t!==this.state.type&&(Object.values(n.Schema.StepType).includes(t)?(this.#Me(await gt.default(t)),c.userMetrics.recordingEdited(9)):this.error=ht(pt.unknownActionType))};#De=async e=>{e.preventDefault(),e.stopPropagation();const t=e.target.dataset.attribute;this.#Me(Ye(this.state,{[t]:await gt.defaultByAttribute(this.state,t)})),this.#Le(`[data-attribute=${t}].attribute devtools-suggestion-input`)};#Ve(e){if(!this.disabled)return Qe`
440
+ <devtools-button
441
+ title=${e.title}
442
+ .size=${"SMALL"}
443
+ .iconName=${e.iconName}
444
+ .variant=${"icon"}
445
+ jslog=${i.action(e.class).track({click:!0})}
446
+ class="inline-button ${e.class}"
447
+ @click=${e.onClick}
448
+ ></devtools-button>
449
+ `}#_e(e){if(this.disabled)return;return[...dt[this.state.type].optional].includes(e)&&!this.disabled?Qe`<devtools-button
450
+ .size=${"SMALL"}
451
+ .iconName=${"bin"}
452
+ .variant=${"icon"}
453
+ .title=${ht(pt.deleteRow)}
454
+ class="inline-button delete-row"
455
+ data-attribute=${e}
456
+ jslog=${i.action("delete").track({click:!0})}
457
+ @click=${t=>{t.preventDefault(),t.stopPropagation(),this.#Me(Ye(this.state,{[e]:void 0}))}}
458
+ ></devtools-button>`:void 0}#Ke(e){return this.#Ae.add("type"),Qe`<div class="row attribute" data-attribute="type" jslog=${i.treeItem("type")}>
459
+ <div>type<span class="separator">:</span></div>
460
+ <devtools-suggestion-input
461
+ .disabled=${!e||this.disabled}
462
+ .options=${Object.values(n.Schema.StepType)}
463
+ .placeholder=${ct.type}
464
+ .value=${nt(this.state.type)}
465
+ @blur=${this.#Fe}
466
+ ></devtools-suggestion-input>
467
+ </div>`}#Ge(e){this.#Ae.add(e);const t=this.state[e]?.toString();if(void 0!==t)return Qe`<div class="row attribute" data-attribute=${e} jslog=${i.treeItem(d.StringUtilities.toKebabCase(e))}>
468
+ <div>${e}<span class="separator">:</span></div>
469
+ <devtools-suggestion-input
470
+ .disabled=${this.disabled}
471
+ .placeholder=${ct[e].toString()}
472
+ .value=${nt(t)}
473
+ .mimeType=${(()=>{switch(e){case"expression":return"text/javascript";case"properties":return"application/json";default:return""}})()}
474
+ @blur=${this.#Oe({attribute:e,from(t){if(void 0!==this.state[e]){if("properties"===e)c.userMetrics.recordingAssertion(2);return{[e]:t}}},metric:10})}
475
+ ></devtools-suggestion-input>
476
+ ${this.#_e(e)}
477
+ </div>`}#Ue(){if(this.#Ae.add("frame"),void 0!==this.state.frame)return Qe`
478
+ <div class="attribute" data-attribute="frame" jslog=${i.treeItem("frame")}>
479
+ <div class="row">
480
+ <div>frame<span class="separator">:</span></div>
481
+ ${this.#_e("frame")}
482
+ </div>
483
+ ${this.state.frame.map(((e,t,o)=>Qe`
484
+ <div class="padded row">
485
+ <devtools-suggestion-input
486
+ .disabled=${this.disabled}
487
+ .placeholder=${ct.frame[0].toString()}
488
+ .value=${nt(e.toString())}
489
+ data-path=${`frame.${t}`}
490
+ @blur=${this.#Oe({attribute:"frame",from(e){if(void 0!==this.state.frame?.[t])return{frame:new Xe({[t]:e})}},metric:10})}
491
+ ></devtools-suggestion-input>
492
+ ${this.#Ve({class:"add-frame",title:ht(pt.addFrameIndex),iconName:"plus",onClick:this.#Pe({frame:new Xe({[t+1]:new We(ct.frame[0])})},`devtools-suggestion-input[data-path="frame.${t+1}"]`,10)})}
493
+ ${this.#Ve({class:"remove-frame",title:ht(pt.removeFrameIndex),iconName:"minus",onClick:this.#Pe({frame:new Xe({[t]:void 0})},`devtools-suggestion-input[data-path="frame.${Math.min(t,o.length-2)}"]`,10)})}
494
+ </div>
495
+ `))}
496
+ </div>
497
+ `}#He(){if(this.#Ae.add("selectors"),void 0!==this.state.selectors)return Qe`<div class="attribute" data-attribute="selectors" jslog=${i.treeItem("selectors")}>
498
+ <div class="row">
499
+ <div>selectors<span class="separator">:</span></div>
500
+ <devtools-recorder-selector-picker-button
501
+ @selectorpicked=${this.#Be}
502
+ .disabled=${this.disabled}
503
+ ></devtools-recorder-selector-picker-button>
504
+ ${this.#_e("selectors")}
505
+ </div>
506
+ ${this.state.selectors.map(((e,t,o)=>Qe`<div class="padded row" data-selector-path=${t}>
507
+ <div>selector #${t+1}<span class="separator">:</span></div>
508
+ ${this.#Ve({class:"add-selector",title:ht(pt.addSelector),iconName:"plus",onClick:this.#Pe({selectors:new Xe({[t+1]:new We(structuredClone(ct.selectors[0]))})},`devtools-suggestion-input[data-path="selectors.${t+1}.0"]`,4)})}
509
+ ${this.#Ve({class:"remove-selector",title:ht(pt.removeSelector),iconName:"minus",onClick:this.#Pe({selectors:new Xe({[t]:void 0})},`devtools-suggestion-input[data-path="selectors.${Math.min(t,o.length-2)}.0"]`,5)})}
510
+ </div>
511
+ ${e.map(((e,o,r)=>Qe`<div
512
+ class="double padded row"
513
+ data-selector-path="${t}.${o}"
514
+ >
515
+ <devtools-suggestion-input
516
+ .disabled=${this.disabled}
517
+ .placeholder=${ct.selectors[0][0]}
518
+ .value=${nt(e)}
519
+ data-path=${`selectors.${t}.${o}`}
520
+ @blur=${this.#Oe({attribute:"selectors",from(e){if(void 0!==this.state.selectors?.[t]?.[o])return{selectors:new Xe({[t]:new Xe({[o]:e})})}},metric:7})}
521
+ ></devtools-suggestion-input>
522
+ ${this.#Ve({class:"add-selector-part",title:ht(pt.addSelectorPart),iconName:"plus",onClick:this.#Pe({selectors:new Xe({[t]:new Xe({[o+1]:new We(ct.selectors[0][0])})})},`devtools-suggestion-input[data-path="selectors.${t}.${o+1}"]`,6)})}
523
+ ${this.#Ve({class:"remove-selector-part",title:ht(pt.removeSelectorPart),iconName:"minus",onClick:this.#Pe({selectors:new Xe({[t]:new Xe({[o]:void 0})})},`devtools-suggestion-input[data-path="selectors.${t}.${Math.min(o,r.length-2)}"]`,8)})}
524
+ </div>`))}`))}
525
+ </div>`}#qe(){if(this.#Ae.add("assertedEvents"),void 0!==this.state.assertedEvents)return Qe`<div class="attribute" data-attribute="assertedEvents" jslog=${i.treeItem("asserted-events")}>
526
+ <div class="row">
527
+ <div>asserted events<span class="separator">:</span></div>
528
+ ${this.#_e("assertedEvents")}
529
+ </div>
530
+ ${this.state.assertedEvents.map(((e,t)=>Qe` <div class="padded row" jslog=${i.treeItem("event-type")}>
531
+ <div>type<span class="separator">:</span></div>
532
+ <div>${e.type}</div>
533
+ </div>
534
+ <div class="padded row" jslog=${i.treeItem("event-title")}>
535
+ <div>title<span class="separator">:</span></div>
536
+ <devtools-suggestion-input
537
+ .disabled=${this.disabled}
538
+ .placeholder=${ct.assertedEvents[0].title}
539
+ .value=${nt(e.title??"")}
540
+ @blur=${this.#Oe({attribute:"assertedEvents",from(e){if(void 0!==this.state.assertedEvents?.[t]?.title)return{assertedEvents:new Xe({[t]:{title:e}})}},metric:10})}
541
+ ></devtools-suggestion-input>
542
+ </div>
543
+ <div class="padded row" jslog=${i.treeItem("event-url")}>
544
+ <div>url<span class="separator">:</span></div>
545
+ <devtools-suggestion-input
546
+ .disabled=${this.disabled}
547
+ .placeholder=${ct.assertedEvents[0].url}
548
+ .value=${nt(e.url??"")}
549
+ @blur=${this.#Oe({attribute:"url",from(e){if(void 0!==this.state.assertedEvents?.[t]?.url)return{assertedEvents:new Xe({[t]:{url:e}})}},metric:10})}
550
+ ></devtools-suggestion-input>
551
+ </div>`))}
552
+ </div> `}#We(){if(this.#Ae.add("attributes"),void 0!==this.state.attributes)return Qe`<div class="attribute" data-attribute="attributes" jslog=${i.treeItem("attributes")}>
553
+ <div class="row">
554
+ <div>attributes<span class="separator">:</span></div>
555
+ ${this.#_e("attributes")}
556
+ </div>
557
+ ${this.state.attributes.map((({name:e,value:t},o,r)=>Qe`<div class="padded row" jslog=${i.treeItem("attribute")}>
558
+ <devtools-suggestion-input
559
+ .disabled=${this.disabled}
560
+ .placeholder=${ct.attributes[0].name}
561
+ .value=${nt(e)}
562
+ data-path=${`attributes.${o}.name`}
563
+ jslog=${i.key().track({change:!0})}
564
+ @blur=${this.#Oe({attribute:"attributes",from(e){if(void 0!==this.state.attributes?.[o]?.name)return c.userMetrics.recordingAssertion(3),{attributes:new Xe({[o]:{name:e}})}},metric:10})}
565
+ ></devtools-suggestion-input>
566
+ <span class="separator">:</span>
567
+ <devtools-suggestion-input
568
+ .disabled=${this.disabled}
569
+ .placeholder=${ct.attributes[0].value}
570
+ .value=${nt(t)}
571
+ data-path=${`attributes.${o}.value`}
572
+ @blur=${this.#Oe({attribute:"attributes",from(e){if(void 0!==this.state.attributes?.[o]?.value)return c.userMetrics.recordingAssertion(3),{attributes:new Xe({[o]:{value:e}})}},metric:10})}
573
+ ></devtools-suggestion-input>
574
+ ${this.#Ve({class:"add-attribute-assertion",title:ht(pt.addSelectorPart),iconName:"plus",onClick:this.#Pe({attributes:new Xe({[o+1]:new We((()=>{{const e=new Set(r.map((({name:e})=>e))),t=ct.attributes[0];let o=t.name,s=0;for(;e.has(o);)++s,o=`${t.name}-${s}`;return{...t,name:o}}})())})},`devtools-suggestion-input[data-path="attributes.${o+1}.name"]`,10)})}
575
+ ${this.#Ve({class:"remove-attribute-assertion",title:ht(pt.removeSelectorPart),iconName:"minus",onClick:this.#Pe({attributes:new Xe({[o]:void 0})},`devtools-suggestion-input[data-path="attributes.${Math.min(o,r.length-2)}.value"]`,10)})}
576
+ </div>`))}
577
+ </div>`}#Xe(){return[...dt[this.state.type].optional].filter((e=>void 0===this.state[e])).map((e=>Qe`<devtools-button
578
+ .variant=${"outlined"}
579
+ class="add-row"
580
+ data-attribute=${e}
581
+ jslog=${i.action(`add-${d.StringUtilities.toKebabCase(e)}`)}
582
+ @click=${this.#De}
583
+ >
584
+ ${ht(pt.addAttribute,{attributeName:e})}
585
+ </devtools-button>`))}#Le=e=>{this.updateComplete.then((()=>{const t=this.renderRoot.querySelector(e);t?.focus()}))};render(){this.#Ae=new Set;const e=Qe`
586
+ <div class="wrapper" jslog=${i.tree("step-editor")}>
587
+ ${this.#Ke(this.isTypeEditable)} ${this.#Ge("target")}
588
+ ${this.#Ue()} ${this.#He()}
589
+ ${this.#Ge("deviceType")} ${this.#Ge("button")}
590
+ ${this.#Ge("url")} ${this.#Ge("x")}
591
+ ${this.#Ge("y")} ${this.#Ge("offsetX")}
592
+ ${this.#Ge("offsetY")} ${this.#Ge("value")}
593
+ ${this.#Ge("key")} ${this.#Ge("operator")}
594
+ ${this.#Ge("count")} ${this.#Ge("expression")}
595
+ ${this.#Ge("duration")} ${this.#qe()}
596
+ ${this.#Ge("timeout")} ${this.#Ge("width")}
597
+ ${this.#Ge("height")} ${this.#Ge("deviceScaleFactor")}
598
+ ${this.#Ge("isMobile")} ${this.#Ge("hasTouch")}
599
+ ${this.#Ge("isLandscape")} ${this.#Ge("download")}
600
+ ${this.#Ge("upload")} ${this.#Ge("latency")}
601
+ ${this.#Ge("name")} ${this.#Ge("parameters")}
602
+ ${this.#Ge("visible")} ${this.#Ge("properties")}
603
+ ${this.#We()}
604
+ ${this.error?Qe`
605
+ <div class="error">
606
+ ${ht(pt.notSaved,{error:this.error})}
607
+ </div>
608
+ `:void 0}
609
+ ${this.disabled?void 0:Qe`<div
610
+ class="row-buttons wrapped gap row regular-font no-margin"
611
+ >
612
+ ${this.#Xe()}
613
+ </div>`}
614
+ </div>
615
+ `;for(const e of Object.keys(lt))if(!this.#Ae.has(e))throw new Error(`The editable attribute ${e} does not have UI`);return e}};Je([it()],mt.prototype,"state",void 0),Je([it()],mt.prototype,"error",void 0),Je([st({type:Boolean})],mt.prototype,"isTypeEditable",void 0),Je([st({type:Boolean})],mt.prototype,"disabled",void 0),mt=Je([rt("devtools-recorder-step-editor")],mt);var yt=Object.freeze({__proto__:null,EditorState:gt,StepEditedEvent:vt,get StepEditor(){return mt}}),ft={cssText:`*{margin:0;padding:0;box-sizing:border-box;font-size:inherit}.timeline-section{position:relative;padding:16px 0 16px 40px;margin-left:8px;--override-color-recording-successful-text:#36a854;--override-color-recording-successful-background:#e6f4ea}.overlay{position:absolute;width:100vw;height:100%;left:calc(-32px - 80px);top:0;z-index:-1;pointer-events:none}@container (max-width: 400px){.overlay{left:-32px}}:hover .overlay{background:var(--sys-color-state-hover-on-subtle)}.is-selected .overlay{background:var(--sys-color-tonal-container)}:host-context(.is-stopped) .overlay{background:var(--sys-color-state-ripple-primary);outline:1px solid var(--sys-color-state-focus-ring);z-index:4}.is-start-of-group{padding-top:28px}.is-end-of-group{padding-bottom:24px}.icon{position:absolute;left:4px;transform:translateX(-50%);z-index:2}.bar{position:absolute;left:4px;display:block;transform:translateX(-50%);top:18px;height:calc(100% + 8px);z-index:1}.bar .background{fill:var(--sys-color-state-hover-on-subtle)}.bar .line{fill:var(--sys-color-primary)}.is-first-section .bar{top:32px;height:calc(100% - 8px);display:none}.is-first-section:not(.is-last-section) .bar{display:block}.is-last-section .bar .line{display:none}.is-last-section .bar .background{display:none}:host-context(.is-error) .bar .line{fill:var(--sys-color-error)}:host-context(.is-error) .bar .background{fill:var(--sys-color-error-container)}:host-context(.was-successful) .bar .background{animation:flash-background 2s}:host-context(.was-successful) .bar .line{animation:flash-line 2s}@keyframes flash-background{25%{fill:var(--override-color-recording-successful-background)}75%{fill:var(--override-color-recording-successful-background)}}@keyframes flash-line{25%{fill:var(--override-color-recording-successful-text)}75%{fill:var(--override-color-recording-successful-text)}}\n/*# sourceURL=${import.meta.resolve("./timelineSection.css")} */\n`};const xt=new CSSStyleSheet;xt.replaceSync(ft.cssText);const{html:wt}=e;class St extends HTMLElement{#Ye=!1;#Je=!1;#Ze=!1;#Qe=!1;#et=!1;constructor(){super();this.attachShadow({mode:"open"}).adoptedStyleSheets=[xt]}set data(e){this.#Ze=e.isFirstSection,this.#Qe=e.isLastSection,this.#Ye=e.isEndOfGroup,this.#Je=e.isStartOfGroup,this.#et=e.isSelected,this.#i()}connectedCallback(){this.#i()}#i(){const t={"timeline-section":!0,"is-end-of-group":this.#Ye,"is-start-of-group":this.#Je,"is-first-section":this.#Ze,"is-last-section":this.#Qe,"is-selected":this.#et};e.render(wt`
616
+ <div class=${e.Directives.classMap(t)}>
617
+ <div class="overlay"></div>
618
+ <div class="icon"><slot name="icon"></slot></div>
619
+ <svg width="24" height="100%" class="bar">
620
+ <rect class="line" x="7" y="0" width="2" height="100%" />
621
+ </svg>
622
+ <slot></slot>
623
+ </div>
624
+ `,this.shadowRoot,{host:this})}}customElements.define("devtools-timeline-section",St);var kt=Object.freeze({__proto__:null,TimelineSection:St}),$t={cssText:`*{margin:0;padding:0;box-sizing:border-box;font-size:inherit}.title-container{max-width:calc(100% - 18px);font-size:13px;line-height:16px;letter-spacing:0.03em;display:flex;flex-direction:row;gap:3px;outline-offset:3px}.action{display:flex;align-items:flex-start}.title{flex:1;min-width:0}.is-start-of-group .title{font-weight:bold}.error-icon{display:none}.breakpoint-icon{visibility:hidden;cursor:pointer;opacity:0%;fill:var(--sys-color-primary);stroke:#1a73e8;transform:translate(-1.92px,-3px)}.circle-icon{fill:var(--sys-color-primary);stroke:var(--sys-color-cdt-base-container);stroke-width:4px;r:5px;cx:8px;cy:8px}.is-start-of-group .circle-icon{r:7px;fill:var(--sys-color-cdt-base-container);stroke:var(--sys-color-primary);stroke-width:2px}.step.is-success .circle-icon{fill:var(--sys-color-primary);stroke:var(--sys-color-primary)}.step.is-current .circle-icon{stroke-dasharray:24 10;animation:rotate 1s linear infinite;fill:var(--sys-color-cdt-base-container);stroke:var(--sys-color-primary);stroke-width:2px}.error{margin:16px 0 0;padding:8px;background:var(--sys-color-error-container);color:var(--sys-color-error);position:relative}@keyframes rotate{0%{transform:translate(8px,8px) rotate(0) translate(-8px,-8px)}100%{transform:translate(8px,8px) rotate(360deg) translate(-8px,-8px)}}.step.is-error .circle-icon{fill:var(--sys-color-error);stroke:var(--sys-color-error)}.step.is-error .error-icon{display:block;transform:translate(4px,4px)}:host-context(.was-successful) .circle-icon{animation:flash-circle 2s}:host-context(.was-successful) .breakpoint-icon{animation:flash-breakpoint-icon 2s}@keyframes flash-circle{25%{fill:var(--override-color-recording-successful-text);stroke:var(--override-color-recording-successful-text)}75%{fill:var(--override-color-recording-successful-text);stroke:var(--override-color-recording-successful-text)}}@keyframes flash-breakpoint-icon{25%{fill:var(--override-color-recording-successful-text);stroke:var(--override-color-recording-successful-text)}75%{fill:var(--override-color-recording-successful-text);stroke:var(--override-color-recording-successful-text)}}.chevron{width:14px;height:14px;transition:200ms;position:absolute;top:18px;left:24px;transform:rotate(-90deg);color:var(--sys-color-on-surface)}.expanded .chevron{transform:rotate(0deg)}.is-start-of-group .chevron{top:34px}.details{display:none;margin-top:8px;position:relative}.expanded .details{display:block}.step-details{overflow:auto}devtools-recorder-step-editor{border:1px solid var(--sys-color-neutral-outline);padding:3px 6px 6px;margin-left:-6px;border-radius:3px}devtools-recorder-step-editor:hover{border:1px solid var(--sys-color-neutral-outline)}devtools-recorder-step-editor.is-selected{background-color:color-mix(in srgb,var(--sys-color-tonal-container),var(--sys-color-cdt-base-container) 50%);border:1px solid var(--sys-color-tonal-outline)}.summary{display:flex;flex-flow:row nowrap}.filler{flex-grow:1}.subtitle{font-weight:normal;color:var(--sys-color-on-surface-subtle);word-break:break-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-title{word-break:break-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-actions{border:none;border-radius:0;height:24px;--override-select-menu-show-button-border-radius:0;--override-select-menu-show-button-outline:none;--override-select-menu-show-button-padding:0}.step.has-breakpoint .circle-icon{visibility:hidden}.step:not(.is-start-of-group).has-breakpoint .breakpoint-icon{visibility:visible;opacity:100%}.step:not(.is-start-of-group, .has-breakpoint) .icon:hover .circle-icon{transition:opacity 0.2s;opacity:0%}.step:not(.is-start-of-group, .has-breakpoint) .icon:hover .error-icon{visibility:hidden}.step:not(.is-start-of-group, .has-breakpoint) .icon:hover .breakpoint-icon{transition:opacity 0.2s;visibility:visible;opacity:50%}\n/*# sourceURL=${import.meta.resolve("./stepView.css")} */\n`};const Et=new CSSStyleSheet;Et.replaceSync($t.cssText);const{html:Ct}=e,Rt={setViewportClickTitle:"Set viewport",customStepTitle:"Custom step",clickStepTitle:"Click",doubleClickStepTitle:"Double click",hoverStepTitle:"Hover",emulateNetworkConditionsStepTitle:"Emulate network conditions",changeStepTitle:"Change",closeStepTitle:"Close",scrollStepTitle:"Scroll",keyUpStepTitle:"Key up",navigateStepTitle:"Navigate",keyDownStepTitle:"Key down",waitForElementStepTitle:"Wait for element",waitForExpressionStepTitle:"Wait for expression",elementRoleButton:"Button",elementRoleInput:"Input",elementRoleFallback:"Element",addStepBefore:"Add step before",addStepAfter:"Add step after",removeStep:"Remove step",openStepActions:"Open step actions",addBreakpoint:"Add breakpoint",removeBreakpoint:"Remove breakpoint",copyAs:"Copy as",stepManagement:"Manage steps",breakpoints:"Breakpoints"},Tt=o.i18n.registerUIStrings("panels/recorder/components/StepView.ts",Rt),It=o.i18n.getLocalizedString.bind(void 0,Tt);class Nt extends Event{static eventName="captureselectors";data;constructor(e){super(Nt.eventName,{bubbles:!0,composed:!0}),this.data=e}}class jt extends Event{static eventName="stopselectorscapture";constructor(){super(jt.eventName,{bubbles:!0,composed:!0})}}class At extends Event{static eventName="copystep";step;constructor(e){super(At.eventName,{bubbles:!0,composed:!0}),this.step=e}}class zt extends Event{static eventName="stepchanged";currentStep;newStep;constructor(e,t){super(zt.eventName,{bubbles:!0,composed:!0}),this.currentStep=e,this.newStep=t}}class Mt extends Event{static eventName="addstep";position;stepOrSection;constructor(e,t){super(Mt.eventName,{bubbles:!0,composed:!0}),this.stepOrSection=e,this.position=t}}class Bt extends Event{static eventName="removestep";step;constructor(e){super(Bt.eventName,{bubbles:!0,composed:!0}),this.step=e}}class Pt extends Event{static eventName="addbreakpoint";index;constructor(e){super(Pt.eventName,{bubbles:!0,composed:!0}),this.index=e}}class Lt extends Event{static eventName="removebreakpoint";index;constructor(e){super(Lt.eventName,{bubbles:!0,composed:!0}),this.index=e}}const Ot="copy-step-as-";function Ft(e){if(!("selectors"in e))return"";const t=e.selectors.flat().find((e=>e.startsWith("aria/")));if(!t)return"";const o=t.match(/^aria\/(.+?)(\[role="(.+)"\])?$/);return o?`${function(e){switch(e){case"button":return It(Rt.elementRoleButton);case"input":return It(Rt.elementRoleInput);default:return It(Rt.elementRoleFallback)}}(o[3])} "${o[1]}"`:""}function Dt(t,o,r){if(!t.step&&!t.section)return;const s={step:!0,expanded:t.showDetails,"is-success":"success"===t.state,"is-current":"current"===t.state,"is-outstanding":"outstanding"===t.state,"is-error":"error"===t.state,"is-stopped":"stopped"===t.state,"is-start-of-group":t.isStartOfGroup,"is-first-section":t.isFirstSection,"has-breakpoint":t.hasBreakpoint},a=Boolean(t.step),l=function(e){if(e.section)return e.section.title?e.section.title:Ct`<span class="fallback">(No Title)</span>`;if(!e.step)throw new Error("Missing both step and section");switch(e.step.type){case n.Schema.StepType.CustomStep:return It(Rt.customStepTitle);case n.Schema.StepType.SetViewport:return It(Rt.setViewportClickTitle);case n.Schema.StepType.Click:return It(Rt.clickStepTitle);case n.Schema.StepType.DoubleClick:return It(Rt.doubleClickStepTitle);case n.Schema.StepType.Hover:return It(Rt.hoverStepTitle);case n.Schema.StepType.EmulateNetworkConditions:return It(Rt.emulateNetworkConditionsStepTitle);case n.Schema.StepType.Change:return It(Rt.changeStepTitle);case n.Schema.StepType.Close:return It(Rt.closeStepTitle);case n.Schema.StepType.Scroll:return It(Rt.scrollStepTitle);case n.Schema.StepType.KeyUp:return It(Rt.keyUpStepTitle);case n.Schema.StepType.KeyDown:return It(Rt.keyDownStepTitle);case n.Schema.StepType.WaitForElement:return It(Rt.waitForElementStepTitle);case n.Schema.StepType.WaitForExpression:return It(Rt.waitForExpressionStepTitle);case n.Schema.StepType.Navigate:return It(Rt.navigateStepTitle)}}({step:t.step,section:t.section}),c=t.step?Ft(t.step):d?d.url:"";var d;e.render(Ct`
625
+ <devtools-timeline-section .data=${{isFirstSection:t.isFirstSection,isLastSection:t.isLastSection,isStartOfGroup:t.isStartOfGroup,isEndOfGroup:t.isEndOfGroup,isSelected:t.isSelected}} @contextmenu=${t.onStepContextMenu} data-step-index=${t.stepIndex} data-section-index=${t.sectionIndex} class=${e.Directives.classMap(s)}>
626
+ <svg slot="icon" width="24" height="24" height="100%" class="icon">
627
+ <circle class="circle-icon"/>
628
+ <g class="error-icon">
629
+ <path d="M1.5 1.5L6.5 6.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
630
+ <path d="M1.5 6.5L6.5 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
631
+ </g>
632
+ <path @click=${t.onBreakpointClick} jslog=${i.action("breakpoint").track({click:!0})} class="breakpoint-icon" d="M2.5 5.5H17.7098L21.4241 12L17.7098 18.5H2.5V5.5Z"/>
633
+ </svg>
634
+ <div class="summary">
635
+ <div class="title-container ${a?"action":""}"
636
+ @click=${a&&t.toggleShowDetails}
637
+ @keydown=${a&&t.onToggleShowDetailsKeydown}
638
+ tabindex="0"
639
+ jslog=${i.sectionHeader().track({click:!0})}
640
+ aria-role=${a?"button":""}
641
+ aria-label=${a?"Show details for step":""}
642
+ >
643
+ ${a?Ct`<devtools-icon
644
+ class="chevron"
645
+ jslog=${i.expand().track({click:!0})}
646
+ name="triangle-down">
647
+ </devtools-icon>`:""}
648
+ <div class="title">
649
+ <div class="main-title" title=${l}>${l}</div>
650
+ <div class="subtitle" title=${c}>${c}</div>
651
+ </div>
652
+ </div>
653
+ <div class="filler"></div>
654
+ ${function(e){return Ct`
655
+ <devtools-button
656
+ class="step-actions"
657
+ title=${It(Rt.openStepActions)}
658
+ aria-label=${It(Rt.openStepActions)}
659
+ @click=${e.onStepContextMenu}
660
+ @keydown=${e=>{e.stopPropagation()}}
661
+ jslog=${i.dropDown("step-actions").track({click:!0})}
662
+ .data=${{variant:"icon",iconName:"dots-vertical",title:It(Rt.openStepActions)}}
663
+ ></devtools-button>
664
+ `}(t)}
665
+ </div>
666
+ <div class="details">
667
+ ${t.step&&Ct`<devtools-recorder-step-editor
668
+ class=${t.isSelected?"is-selected":""}
669
+ .step=${t.step}
670
+ .disabled=${t.isPlaying}
671
+ @stepedited=${t.stepEdited}>
672
+ </devtools-recorder-step-editor>`}
673
+ ${t.section?.causingStep&&Ct`<devtools-recorder-step-editor
674
+ .step=${t.section.causingStep}
675
+ .isTypeEditable=${!1}
676
+ .disabled=${t.isPlaying}
677
+ @stepedited=${t.stepEdited}>
678
+ </devtools-recorder-step-editor>`}
679
+ </div>
680
+ ${t.error&&Ct`
681
+ <div class="error" role="alert">
682
+ ${t.error.message}
683
+ </div>
684
+ `}
685
+ </devtools-timeline-section>
686
+ `,r)}class Vt extends HTMLElement{#t=this.attachShadow({mode:"open"});#tt=new IntersectionObserver((e=>{this.#ot.isVisible=e[0].isIntersecting}));#ot={state:"default",showDetails:!1,isEndOfGroup:!1,isStartOfGroup:!1,stepIndex:0,sectionIndex:0,isFirstSection:!1,isLastSection:!1,isRecording:!1,isPlaying:!1,isVisible:!1,hasBreakpoint:!1,removable:!0,builtInConverters:[],extensionConverters:[],isSelected:!1,recorderSettings:void 0,actions:[],stepEdited:this.#rt.bind(this),onBreakpointClick:this.#st.bind(this),handleStepAction:this.#it.bind(this),toggleShowDetails:this.#nt.bind(this),onToggleShowDetailsKeydown:this.#at.bind(this),onStepContextMenu:this.#lt.bind(this)};#ct=Dt;constructor(e){super(),e&&(this.#ct=e),this.setAttribute("jslog",`${i.section("step-view")}`)}set data(e){const t=this.#ot.state;this.#ot.step=e.step,this.#ot.section=e.section,this.#ot.state=e.state,this.#ot.error=e.error,this.#ot.isEndOfGroup=e.isEndOfGroup,this.#ot.isStartOfGroup=e.isStartOfGroup,this.#ot.stepIndex=e.stepIndex,this.#ot.sectionIndex=e.sectionIndex,this.#ot.isFirstSection=e.isFirstSection,this.#ot.isLastSection=e.isLastSection,this.#ot.isRecording=e.isRecording,this.#ot.isPlaying=e.isPlaying,this.#ot.hasBreakpoint=e.hasBreakpoint,this.#ot.removable=e.removable,this.#ot.builtInConverters=e.builtInConverters,this.#ot.extensionConverters=e.extensionConverters,this.#ot.isSelected=e.isSelected,this.#ot.recorderSettings=e.recorderSettings,this.#ot.actions=this.#dt(),this.#i(),this.#ot.state===t||"current"!==this.#ot.state||this.#ot.isVisible||this.scrollIntoView()}get step(){return this.#ot.step}get section(){return this.#ot.section}connectedCallback(){this.#t.adoptedStyleSheets=[Et],this.#tt.observe(this),this.#i()}disconnectedCallback(){this.#tt.unobserve(this)}#nt(){this.#ot.showDetails=!this.#ot.showDetails,this.#i()}#at(e){const t=e;"Enter"!==t.key&&" "!==t.key||(this.#nt(),e.stopPropagation(),e.preventDefault())}#rt(e){const t=this.#ot.step||this.#ot.section?.causingStep;if(!t)throw new Error("Expected step.");this.dispatchEvent(new zt(t,e.data))}#it(e){switch(e.itemValue){case"add-step-before":{const e=this.#ot.step||this.#ot.section;if(!e)throw new Error("Expected step or section.");this.dispatchEvent(new Mt(e,"before"));break}case"add-step-after":{const e=this.#ot.step||this.#ot.section;if(!e)throw new Error("Expected step or section.");this.dispatchEvent(new Mt(e,"after"));break}case"remove-step":{const e=this.#ot.section?.causingStep;if(!this.#ot.step&&!e)throw new Error("Expected step.");this.dispatchEvent(new Bt(this.#ot.step||e));break}case"add-breakpoint":if(!this.#ot.step)throw new Error("Expected step");this.dispatchEvent(new Pt(this.#ot.stepIndex));break;case"remove-breakpoint":if(!this.#ot.step)throw new Error("Expected step");this.dispatchEvent(new Lt(this.#ot.stepIndex));break;default:{const t=e.itemValue;if(!t.startsWith(Ot))throw new Error("Unknown step action.");const o=this.#ot.step||this.#ot.section?.causingStep;if(!o)throw new Error("Step not found.");const r=t.substring(13);this.#ot.recorderSettings&&(this.#ot.recorderSettings.preferredCopyFormat=r),this.dispatchEvent(new At(structuredClone(o)))}}}#st(){this.#ot.hasBreakpoint?this.dispatchEvent(new Lt(this.#ot.stepIndex)):this.dispatchEvent(new Pt(this.#ot.stepIndex)),this.#i()}#dt=()=>{const e=[];if(this.#ot.isPlaying||(this.#ot.step&&e.push({id:"add-step-before",label:It(Rt.addStepBefore),group:"stepManagement",groupTitle:It(Rt.stepManagement)}),e.push({id:"add-step-after",label:It(Rt.addStepAfter),group:"stepManagement",groupTitle:It(Rt.stepManagement)}),this.#ot.removable&&e.push({id:"remove-step",group:"stepManagement",groupTitle:It(Rt.stepManagement),label:It(Rt.removeStep)})),this.#ot.step&&!this.#ot.isRecording&&(this.#ot.hasBreakpoint?e.push({id:"remove-breakpoint",label:It(Rt.removeBreakpoint),group:"breakPointManagement",groupTitle:It(Rt.breakpoints)}):e.push({id:"add-breakpoint",label:It(Rt.addBreakpoint),group:"breakPointManagement",groupTitle:It(Rt.breakpoints)})),this.#ot.step){for(const t of this.#ot.builtInConverters||[])e.push({id:Ot+d.StringUtilities.toKebabCase(t.getId()),label:t.getFormatName(),group:"copy",groupTitle:It(Rt.copyAs)});for(const t of this.#ot.extensionConverters||[])e.push({id:Ot+d.StringUtilities.toKebabCase(t.getId()),label:t.getFormatName(),group:"copy",groupTitle:It(Rt.copyAs),jslogContext:Ot+"extension"})}return e};#lt(e){const o=e.target instanceof r.Button.Button?e.target:void 0,s=new t.ContextMenu.ContextMenu(e,{x:o?.getBoundingClientRect().left,y:o?.getBoundingClientRect().bottom}),i=this.#dt(),n=i.filter((e=>e.id.startsWith(Ot))),a=i.filter((e=>!e.id.startsWith(Ot)));for(const e of a){s.section(e.group).appendItem(e.label,(()=>{this.#it(new g.Menu.MenuItemSelectedEvent(e.id))}),{jslogContext:e.id})}const l=n.find((e=>e.id===Ot+this.#ot.recorderSettings?.preferredCopyFormat));if(l&&s.section("copy").appendItem(l.label,(()=>{this.#it(new g.Menu.MenuItemSelectedEvent(l.id))}),{jslogContext:l.id}),n.length){const e=s.section("copy").appendSubMenuItem(It(Rt.copyAs),!1,"copy");for(const t of n)t!==l&&e.section(t.group).appendItem(t.label,(()=>{this.#it(new g.Menu.MenuItemSelectedEvent(t.id))}),{jslogContext:t.id})}s.show()}#i(){this.#ct(this.#ot,{},this.#t)}}customElements.define("devtools-step-view",Vt);var _t=Object.freeze({__proto__:null,AddBreakpointEvent:Pt,AddStep:Mt,CaptureSelectorsEvent:Nt,CopyStepEvent:At,RemoveBreakpointEvent:Lt,RemoveStep:Bt,StepChanged:zt,StepView:Vt,StopSelectorsCaptureEvent:jt});export{T as ControlButton,F as CreateRecordingView,J as RecordingListView,Me as RecordingView,ge as ReplaySection,Ge as SelectButton,yt as StepEditor,_t as StepView,kt as TimelineSection};