@ethlete/cli 3.0.0-next.26 → 3.0.0-next.28

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 (837) hide show
  1. package/CHANGELOG.md +481 -0
  2. package/build-info.json +1 -0
  3. package/design/arrow-anchor.ts +55 -0
  4. package/design/define-call.ts +75 -30
  5. package/design/define-part.ts +64 -4
  6. package/design/icon-sheet.ts +1 -1
  7. package/design/interaction-rows.ts +13 -6
  8. package/design/mark-part.ts +51 -1
  9. package/design/token-sheet.ts +1 -1
  10. package/design/web/frame-fit.ts +7 -0
  11. package/design/web/frame-surfaces.ts +294 -0
  12. package/design/web/frame.ts +69 -15
  13. package/design/web/surface-interactive.css +42 -0
  14. package/design/with-action.ts +29 -0
  15. package/package.json +3 -1
  16. package/src/index.js +9 -1
  17. package/src/index.js.map +1 -1
  18. package/src/lib/api/compose.js +3 -2
  19. package/src/lib/api/compose.js.map +1 -1
  20. package/src/lib/api/git.js +2 -1
  21. package/src/lib/api/git.js.map +1 -1
  22. package/src/lib/api/setup.js +2 -2
  23. package/src/lib/api/setup.js.map +1 -1
  24. package/src/lib/design/asset-shot.js +4 -4
  25. package/src/lib/design/asset-shot.js.map +1 -1
  26. package/src/lib/design/blank-png.d.ts +2 -0
  27. package/src/lib/design/blank-png.js +28 -0
  28. package/src/lib/design/blank-png.js.map +1 -0
  29. package/src/lib/design/build-watch.d.ts +26 -0
  30. package/src/lib/design/build-watch.js +138 -0
  31. package/src/lib/design/build-watch.js.map +1 -0
  32. package/src/lib/design/cache-entry.d.ts +8 -0
  33. package/src/lib/design/cache-entry.js +30 -0
  34. package/src/lib/design/cache-entry.js.map +1 -0
  35. package/src/lib/design/calls-tsconfig.js +20 -13
  36. package/src/lib/design/calls-tsconfig.js.map +1 -1
  37. package/src/lib/design/calls.js +3 -3
  38. package/src/lib/design/calls.js.map +1 -1
  39. package/src/lib/design/changed-parts.d.ts +1 -1
  40. package/src/lib/design/check.d.ts +2 -0
  41. package/src/lib/design/check.js +217 -24
  42. package/src/lib/design/check.js.map +1 -1
  43. package/src/lib/design/code-hash.d.ts +30 -0
  44. package/src/lib/design/code-hash.js +118 -0
  45. package/src/lib/design/code-hash.js.map +1 -0
  46. package/src/lib/design/commit-hunks.d.ts +22 -0
  47. package/src/lib/design/commit-hunks.js +173 -0
  48. package/src/lib/design/commit-hunks.js.map +1 -0
  49. package/src/lib/design/design-command.d.ts +2 -0
  50. package/src/lib/design/design-command.js +271 -27
  51. package/src/lib/design/design-command.js.map +1 -1
  52. package/src/lib/design/{paths.d.ts → design-config.d.ts} +34 -28
  53. package/src/lib/design/design-config.js +35 -0
  54. package/src/lib/design/design-config.js.map +1 -0
  55. package/src/lib/design/design-lint.d.ts +68 -0
  56. package/src/lib/design/design-lint.js +183 -0
  57. package/src/lib/design/design-lint.js.map +1 -0
  58. package/src/lib/design/draw-ledger.d.ts +6 -0
  59. package/src/lib/design/draw-ledger.js +10 -0
  60. package/src/lib/design/draw-ledger.js.map +1 -1
  61. package/src/lib/design/force-interactions.d.ts +3 -1
  62. package/src/lib/design/force-interactions.js +8 -4
  63. package/src/lib/design/force-interactions.js.map +1 -1
  64. package/src/lib/design/generated-stylesheets.d.ts +1 -1
  65. package/src/lib/design/generated-stylesheets.js +2 -2
  66. package/src/lib/design/generated-stylesheets.js.map +1 -1
  67. package/src/lib/design/git-top.d.ts +5 -0
  68. package/src/lib/design/git-top.js +16 -0
  69. package/src/lib/design/git-top.js.map +1 -0
  70. package/src/lib/design/hooks-problem.d.ts +2 -0
  71. package/src/lib/design/hooks-problem.js +23 -0
  72. package/src/lib/design/hooks-problem.js.map +1 -0
  73. package/src/lib/design/inbox-command.js +9 -5
  74. package/src/lib/design/inbox-command.js.map +1 -1
  75. package/src/lib/design/index.d.ts +4 -1
  76. package/src/lib/design/index.js +4 -1
  77. package/src/lib/design/index.js.map +1 -1
  78. package/src/lib/design/is-running.d.ts +1 -0
  79. package/src/lib/design/is-running.js +14 -0
  80. package/src/lib/design/is-running.js.map +1 -0
  81. package/src/lib/design/legacy.js +3 -3
  82. package/src/lib/design/legacy.js.map +1 -1
  83. package/src/lib/design/mcp-command.d.ts +5 -1
  84. package/src/lib/design/mcp-command.js +27 -16
  85. package/src/lib/design/mcp-command.js.map +1 -1
  86. package/src/lib/design/merge-compare.d.ts +10 -2
  87. package/src/lib/design/merge-compare.js +63 -11
  88. package/src/lib/design/merge-compare.js.map +1 -1
  89. package/src/lib/design/motion-command.js +4 -4
  90. package/src/lib/design/motion-command.js.map +1 -1
  91. package/src/lib/design/motion-shot.js +3 -2
  92. package/src/lib/design/motion-shot.js.map +1 -1
  93. package/src/lib/design/new-call.js +22 -13
  94. package/src/lib/design/new-call.js.map +1 -1
  95. package/src/lib/design/old-shot-folders.d.ts +2 -0
  96. package/src/lib/design/old-shot-folders.js +26 -0
  97. package/src/lib/design/old-shot-folders.js.map +1 -0
  98. package/src/lib/design/package-root.d.ts +21 -0
  99. package/src/lib/design/package-root.js +79 -0
  100. package/src/lib/design/package-root.js.map +1 -0
  101. package/src/lib/design/parent-watch.d.ts +7 -0
  102. package/src/lib/design/parent-watch.js +23 -0
  103. package/src/lib/design/parent-watch.js.map +1 -0
  104. package/src/lib/design/part-marks.d.ts +3 -2
  105. package/src/lib/design/part-marks.js +15 -7
  106. package/src/lib/design/part-marks.js.map +1 -1
  107. package/src/lib/design/phase-timing.d.ts +5 -0
  108. package/src/lib/design/phase-timing.js +27 -0
  109. package/src/lib/design/phase-timing.js.map +1 -0
  110. package/src/lib/design/physical-cores.d.ts +12 -0
  111. package/src/lib/design/physical-cores.js +43 -0
  112. package/src/lib/design/physical-cores.js.map +1 -0
  113. package/src/lib/design/product-command.d.ts +1 -1
  114. package/src/lib/design/product-command.js +16 -18
  115. package/src/lib/design/product-command.js.map +1 -1
  116. package/src/lib/design/push-status.d.ts +30 -0
  117. package/src/lib/design/push-status.js +122 -0
  118. package/src/lib/design/push-status.js.map +1 -0
  119. package/src/lib/design/ready-shots.d.ts +21 -12
  120. package/src/lib/design/ready-shots.js +79 -44
  121. package/src/lib/design/ready-shots.js.map +1 -1
  122. package/src/lib/design/render-packages.d.ts +7 -18
  123. package/src/lib/design/render-packages.js +24 -63
  124. package/src/lib/design/render-packages.js.map +1 -1
  125. package/src/lib/design/render-worker.js +24 -6
  126. package/src/lib/design/render-worker.js.map +1 -1
  127. package/src/lib/design/render.d.ts +26 -3
  128. package/src/lib/design/render.js +52 -13
  129. package/src/lib/design/render.js.map +1 -1
  130. package/src/lib/design/resident/client.d.ts +52 -0
  131. package/src/lib/design/resident/client.js +263 -0
  132. package/src/lib/design/resident/client.js.map +1 -0
  133. package/src/lib/design/resident/discovery.d.ts +21 -0
  134. package/src/lib/design/resident/discovery.js +63 -0
  135. package/src/lib/design/resident/discovery.js.map +1 -0
  136. package/src/lib/design/resident/resident-process.d.ts +19 -0
  137. package/src/lib/design/resident/resident-process.js +189 -0
  138. package/src/lib/design/resident/resident-process.js.map +1 -0
  139. package/src/lib/design/resident/server.d.ts +52 -0
  140. package/src/lib/design/resident/server.js +212 -0
  141. package/src/lib/design/resident/server.js.map +1 -0
  142. package/src/lib/design/run-abort.d.ts +9 -0
  143. package/src/lib/design/run-abort.js +45 -0
  144. package/src/lib/design/run-abort.js.map +1 -0
  145. package/src/lib/design/run-deadline.d.ts +19 -0
  146. package/src/lib/design/run-deadline.js +104 -0
  147. package/src/lib/design/run-deadline.js.map +1 -0
  148. package/src/lib/design/run-yield.d.ts +8 -0
  149. package/src/lib/design/run-yield.js +43 -0
  150. package/src/lib/design/run-yield.js.map +1 -0
  151. package/src/lib/design/serve-state.d.ts +15 -0
  152. package/src/lib/design/serve-state.js +56 -0
  153. package/src/lib/design/serve-state.js.map +1 -0
  154. package/src/lib/design/serve.d.ts +41 -3
  155. package/src/lib/design/serve.js +272 -54
  156. package/src/lib/design/serve.js.map +1 -1
  157. package/src/lib/design/server-identity.d.ts +40 -0
  158. package/src/lib/design/server-identity.js +71 -0
  159. package/src/lib/design/server-identity.js.map +1 -0
  160. package/src/lib/design/settle-frames.d.ts +4 -0
  161. package/src/lib/design/settle-frames.js +22 -0
  162. package/src/lib/design/settle-frames.js.map +1 -0
  163. package/src/lib/design/shot-board.d.ts +26 -0
  164. package/src/lib/design/shot-board.js +80 -0
  165. package/src/lib/design/shot-board.js.map +1 -0
  166. package/src/lib/design/shot-command.d.ts +26 -5
  167. package/src/lib/design/shot-command.js +143 -50
  168. package/src/lib/design/shot-command.js.map +1 -1
  169. package/src/lib/design/shot-store.d.ts +29 -3
  170. package/src/lib/design/shot-store.js +206 -36
  171. package/src/lib/design/shot-store.js.map +1 -1
  172. package/src/lib/design/shot.d.ts +60 -2
  173. package/src/lib/design/shot.js +238 -28
  174. package/src/lib/design/shot.js.map +1 -1
  175. package/src/lib/design/sketch-at.js +2 -1
  176. package/src/lib/design/sketch-at.js.map +1 -1
  177. package/src/lib/design/sketch-command.d.ts +19 -1
  178. package/src/lib/design/sketch-command.js +664 -159
  179. package/src/lib/design/sketch-command.js.map +1 -1
  180. package/src/lib/design/ssr-shims.d.ts +1 -0
  181. package/src/lib/design/ssr-shims.js +3 -3
  182. package/src/lib/design/ssr-shims.js.map +1 -1
  183. package/src/lib/design/stale-cli-dist.d.ts +11 -0
  184. package/src/lib/design/stale-cli-dist.js +56 -0
  185. package/src/lib/design/stale-cli-dist.js.map +1 -0
  186. package/src/lib/design/stamp.d.ts +23 -1
  187. package/src/lib/design/stamp.js +56 -9
  188. package/src/lib/design/stamp.js.map +1 -1
  189. package/src/lib/design/started-by-studio.d.ts +1 -0
  190. package/src/lib/design/started-by-studio.js +6 -0
  191. package/src/lib/design/started-by-studio.js.map +1 -0
  192. package/src/lib/design/status.d.ts +1 -1
  193. package/src/lib/design/status.js +15 -4
  194. package/src/lib/design/status.js.map +1 -1
  195. package/src/lib/design/studio-api.d.ts +21 -10
  196. package/src/lib/design/studio-api.js +192 -88
  197. package/src/lib/design/studio-api.js.map +1 -1
  198. package/src/lib/design/system/accepted-pictures.d.ts +69 -0
  199. package/src/lib/design/system/accepted-pictures.js +346 -0
  200. package/src/lib/design/system/accepted-pictures.js.map +1 -0
  201. package/src/lib/design/system/action-cache.d.ts +45 -0
  202. package/src/lib/design/system/action-cache.js +72 -0
  203. package/src/lib/design/system/action-cache.js.map +1 -0
  204. package/src/lib/design/system/action-lost.d.ts +61 -0
  205. package/src/lib/design/system/action-lost.js +116 -0
  206. package/src/lib/design/system/action-lost.js.map +1 -0
  207. package/src/lib/design/system/action-press.d.ts +29 -0
  208. package/src/lib/design/system/action-press.js +88 -0
  209. package/src/lib/design/system/action-press.js.map +1 -0
  210. package/src/lib/design/system/action-undeclared.d.ts +34 -0
  211. package/src/lib/design/system/action-undeclared.js +81 -0
  212. package/src/lib/design/system/action-undeclared.js.map +1 -0
  213. package/src/lib/design/system/actions-command.d.ts +108 -0
  214. package/src/lib/design/system/actions-command.js +816 -0
  215. package/src/lib/design/system/actions-command.js.map +1 -0
  216. package/src/lib/design/system/actions.d.ts +181 -0
  217. package/src/lib/design/system/actions.js +333 -0
  218. package/src/lib/design/system/actions.js.map +1 -0
  219. package/src/lib/design/system/anti-alias.d.ts +2 -0
  220. package/src/lib/design/system/anti-alias.js +11 -0
  221. package/src/lib/design/system/anti-alias.js.map +1 -0
  222. package/src/lib/design/system/app-files.d.ts +10 -0
  223. package/src/lib/design/system/app-files.js +175 -0
  224. package/src/lib/design/system/app-files.js.map +1 -0
  225. package/src/lib/design/system/arrow-anchor.d.ts +9 -0
  226. package/src/lib/design/system/arrow-anchor.js +40 -0
  227. package/src/lib/design/system/arrow-anchor.js.map +1 -0
  228. package/src/lib/design/system/base-issues.d.ts +28 -0
  229. package/src/lib/design/system/base-issues.js +80 -0
  230. package/src/lib/design/system/base-issues.js.map +1 -0
  231. package/src/lib/design/system/base.d.ts +1 -1
  232. package/src/lib/design/system/base.js +2 -2
  233. package/src/lib/design/system/base.js.map +1 -1
  234. package/src/lib/design/system/baseline-history.d.ts +13 -0
  235. package/src/lib/design/system/baseline-history.js +40 -0
  236. package/src/lib/design/system/baseline-history.js.map +1 -0
  237. package/src/lib/design/system/bespoke-controls.d.ts +33 -0
  238. package/src/lib/design/system/bespoke-controls.js +149 -0
  239. package/src/lib/design/system/bespoke-controls.js.map +1 -0
  240. package/src/lib/design/system/build-ready-contract.d.ts +33 -0
  241. package/src/lib/design/system/build-ready-contract.js +18 -0
  242. package/src/lib/design/system/build-ready-contract.js.map +1 -0
  243. package/src/lib/design/system/build-running.d.ts +13 -0
  244. package/src/lib/design/system/build-running.js +48 -0
  245. package/src/lib/design/system/build-running.js.map +1 -0
  246. package/src/lib/design/system/check-record.d.ts +18 -0
  247. package/src/lib/design/system/check-record.js +47 -0
  248. package/src/lib/design/system/check-record.js.map +1 -0
  249. package/src/lib/design/system/check-rules.d.ts +1 -0
  250. package/src/lib/design/system/check-rules.js +100 -0
  251. package/src/lib/design/system/check-rules.js.map +1 -0
  252. package/src/lib/design/system/check-system.d.ts +83 -7
  253. package/src/lib/design/system/check-system.js +647 -68
  254. package/src/lib/design/system/check-system.js.map +1 -1
  255. package/src/lib/design/system/comments/comment.d.ts +4 -1
  256. package/src/lib/design/system/comments/comment.js +13 -4
  257. package/src/lib/design/system/comments/comment.js.map +1 -1
  258. package/src/lib/design/system/comments/inbox.d.ts +1 -1
  259. package/src/lib/design/system/comments/inbox.js +2 -2
  260. package/src/lib/design/system/comments/inbox.js.map +1 -1
  261. package/src/lib/design/system/compare-cache.d.ts +20 -0
  262. package/src/lib/design/system/compare-cache.js +92 -0
  263. package/src/lib/design/system/compare-cache.js.map +1 -0
  264. package/src/lib/design/system/compare-command.d.ts +150 -0
  265. package/src/lib/design/system/compare-command.js +580 -0
  266. package/src/lib/design/system/compare-command.js.map +1 -0
  267. package/src/lib/design/system/complete-command.js +1 -1
  268. package/src/lib/design/system/complete-command.js.map +1 -1
  269. package/src/lib/design/system/complete.d.ts +63 -2
  270. package/src/lib/design/system/complete.js +281 -71
  271. package/src/lib/design/system/complete.js.map +1 -1
  272. package/src/lib/design/system/component-outputs.d.ts +20 -0
  273. package/src/lib/design/system/component-outputs.js +86 -0
  274. package/src/lib/design/system/component-outputs.js.map +1 -0
  275. package/src/lib/design/system/contrast-check.d.ts +1 -1
  276. package/src/lib/design/system/contrast-check.js +14 -3
  277. package/src/lib/design/system/contrast-check.js.map +1 -1
  278. package/src/lib/design/system/decision-refs.d.ts +5 -0
  279. package/src/lib/design/system/decision-refs.js +21 -0
  280. package/src/lib/design/system/decision-refs.js.map +1 -0
  281. package/src/lib/design/system/demo-backdrop.d.ts +11 -0
  282. package/src/lib/design/system/demo-backdrop.js +41 -0
  283. package/src/lib/design/system/demo-backdrop.js.map +1 -0
  284. package/src/lib/design/system/design-hash.d.ts +52 -0
  285. package/src/lib/design/system/design-hash.js +132 -0
  286. package/src/lib/design/system/design-hash.js.map +1 -0
  287. package/src/lib/design/system/disabled-interaction.d.ts +8 -0
  288. package/src/lib/design/system/disabled-interaction.js +37 -0
  289. package/src/lib/design/system/disabled-interaction.js.map +1 -0
  290. package/src/lib/design/system/dom-command.d.ts +36 -0
  291. package/src/lib/design/system/dom-command.js +178 -0
  292. package/src/lib/design/system/dom-command.js.map +1 -0
  293. package/src/lib/design/system/drawn-open-points.d.ts +26 -4
  294. package/src/lib/design/system/drawn-open-points.js +65 -14
  295. package/src/lib/design/system/drawn-open-points.js.map +1 -1
  296. package/src/lib/design/system/dropped-props.d.ts +39 -0
  297. package/src/lib/design/system/dropped-props.js +271 -0
  298. package/src/lib/design/system/dropped-props.js.map +1 -0
  299. package/src/lib/design/system/embedded-actions.d.ts +21 -0
  300. package/src/lib/design/system/embedded-actions.js +37 -0
  301. package/src/lib/design/system/embedded-actions.js.map +1 -0
  302. package/src/lib/design/system/exceptions.js +2 -1
  303. package/src/lib/design/system/exceptions.js.map +1 -1
  304. package/src/lib/design/system/flows/flow.js +2 -1
  305. package/src/lib/design/system/flows/flow.js.map +1 -1
  306. package/src/lib/design/system/frozen-animations.d.ts +13 -0
  307. package/src/lib/design/system/frozen-animations.js +51 -0
  308. package/src/lib/design/system/frozen-animations.js.map +1 -0
  309. package/src/lib/design/system/grid-report.d.ts +5 -0
  310. package/src/lib/design/system/grid-report.js +78 -0
  311. package/src/lib/design/system/grid-report.js.map +1 -0
  312. package/src/lib/design/system/handoff.js +2 -1
  313. package/src/lib/design/system/handoff.js.map +1 -1
  314. package/src/lib/design/system/harness-build-cache.d.ts +49 -0
  315. package/src/lib/design/system/harness-build-cache.js +188 -0
  316. package/src/lib/design/system/harness-build-cache.js.map +1 -0
  317. package/src/lib/design/system/harness-command.d.ts +7 -0
  318. package/src/lib/design/system/harness-command.js +51 -0
  319. package/src/lib/design/system/harness-command.js.map +1 -0
  320. package/src/lib/design/system/harness-config.d.ts +9 -0
  321. package/src/lib/design/system/harness-config.js +65 -0
  322. package/src/lib/design/system/harness-config.js.map +1 -0
  323. package/src/lib/design/system/harness-inputs.d.ts +17 -0
  324. package/src/lib/design/system/harness-inputs.js +160 -0
  325. package/src/lib/design/system/harness-inputs.js.map +1 -0
  326. package/src/lib/design/system/harness-map.d.ts +44 -0
  327. package/src/lib/design/system/harness-map.js +126 -0
  328. package/src/lib/design/system/harness-map.js.map +1 -0
  329. package/src/lib/design/system/harness-samples.d.ts +20 -0
  330. package/src/lib/design/system/harness-samples.js +92 -0
  331. package/src/lib/design/system/harness-samples.js.map +1 -0
  332. package/src/lib/design/system/harness-server.d.ts +51 -0
  333. package/src/lib/design/system/harness-server.js +306 -0
  334. package/src/lib/design/system/harness-server.js.map +1 -0
  335. package/src/lib/design/system/harness-shot.d.ts +78 -0
  336. package/src/lib/design/system/harness-shot.js +349 -0
  337. package/src/lib/design/system/harness-shot.js.map +1 -0
  338. package/src/lib/design/system/harness-watch.d.ts +79 -0
  339. package/src/lib/design/system/harness-watch.js +334 -0
  340. package/src/lib/design/system/harness-watch.js.map +1 -0
  341. package/src/lib/design/system/implementation-baseline.d.ts +20 -0
  342. package/src/lib/design/system/implementation-baseline.js +44 -0
  343. package/src/lib/design/system/implementation-baseline.js.map +1 -0
  344. package/src/lib/design/system/imports.js +14 -1
  345. package/src/lib/design/system/imports.js.map +1 -1
  346. package/src/lib/design/system/in-order-at-once.d.ts +6 -0
  347. package/src/lib/design/system/in-order-at-once.js +28 -0
  348. package/src/lib/design/system/in-order-at-once.js.map +1 -0
  349. package/src/lib/design/system/inventory-approval.js +2 -1
  350. package/src/lib/design/system/inventory-approval.js.map +1 -1
  351. package/src/lib/design/system/inventory.d.ts +13 -4
  352. package/src/lib/design/system/inventory.js +36 -7
  353. package/src/lib/design/system/inventory.js.map +1 -1
  354. package/src/lib/design/system/leftover-gate-files.d.ts +2 -0
  355. package/src/lib/design/system/leftover-gate-files.js +15 -0
  356. package/src/lib/design/system/leftover-gate-files.js.map +1 -0
  357. package/src/lib/design/system/lib-build-lock.d.ts +18 -0
  358. package/src/lib/design/system/lib-build-lock.js +111 -0
  359. package/src/lib/design/system/lib-build-lock.js.map +1 -0
  360. package/src/lib/design/system/link-free.d.ts +12 -0
  361. package/src/lib/design/system/link-free.js +125 -0
  362. package/src/lib/design/system/link-free.js.map +1 -0
  363. package/src/lib/design/system/list-system.d.ts +8 -8
  364. package/src/lib/design/system/list-system.js +19 -80
  365. package/src/lib/design/system/list-system.js.map +1 -1
  366. package/src/lib/design/system/live-actions.d.ts +121 -0
  367. package/src/lib/design/system/live-actions.js +674 -0
  368. package/src/lib/design/system/live-actions.js.map +1 -0
  369. package/src/lib/design/system/live-compare.d.ts +136 -0
  370. package/src/lib/design/system/live-compare.js +441 -0
  371. package/src/lib/design/system/live-compare.js.map +1 -0
  372. package/src/lib/design/system/live-uncovered.d.ts +45 -0
  373. package/src/lib/design/system/live-uncovered.js +158 -0
  374. package/src/lib/design/system/live-uncovered.js.map +1 -0
  375. package/src/lib/design/system/nested-scroll.d.ts +7 -0
  376. package/src/lib/design/system/nested-scroll.js +25 -0
  377. package/src/lib/design/system/nested-scroll.js.map +1 -0
  378. package/src/lib/design/system/no-verdict.d.ts +13 -0
  379. package/src/lib/design/system/no-verdict.js +17 -0
  380. package/src/lib/design/system/no-verdict.js.map +1 -0
  381. package/src/lib/design/system/notes/note.js +2 -1
  382. package/src/lib/design/system/notes/note.js.map +1 -1
  383. package/src/lib/design/system/occluded.d.ts +13 -0
  384. package/src/lib/design/system/occluded.js +111 -0
  385. package/src/lib/design/system/occluded.js.map +1 -0
  386. package/src/lib/design/system/off-centre.d.ts +11 -0
  387. package/src/lib/design/system/off-centre.js +74 -0
  388. package/src/lib/design/system/off-centre.js.map +1 -0
  389. package/src/lib/design/system/open-points-cache.d.ts +11 -0
  390. package/src/lib/design/system/open-points-cache.js +27 -0
  391. package/src/lib/design/system/open-points-cache.js.map +1 -0
  392. package/src/lib/design/system/open-points-runner.d.ts +43 -0
  393. package/src/lib/design/system/open-points-runner.js +119 -0
  394. package/src/lib/design/system/open-points-runner.js.map +1 -0
  395. package/src/lib/design/system/open-points-worker.d.ts +1 -0
  396. package/src/lib/design/system/open-points-worker.js +28 -0
  397. package/src/lib/design/system/open-points-worker.js.map +1 -0
  398. package/src/lib/design/system/open-points.d.ts +24 -6
  399. package/src/lib/design/system/open-points.js +59 -30
  400. package/src/lib/design/system/open-points.js.map +1 -1
  401. package/src/lib/design/system/part-build-ready.d.ts +45 -0
  402. package/src/lib/design/system/part-build-ready.js +135 -0
  403. package/src/lib/design/system/part-build-ready.js.map +1 -0
  404. package/src/lib/design/system/part-command.js +2 -9
  405. package/src/lib/design/system/part-command.js.map +1 -1
  406. package/src/lib/design/system/part-compare.d.ts +139 -0
  407. package/src/lib/design/system/part-compare.js +501 -0
  408. package/src/lib/design/system/part-compare.js.map +1 -0
  409. package/src/lib/design/system/part-picture-cache.d.ts +23 -0
  410. package/src/lib/design/system/part-picture-cache.js +68 -0
  411. package/src/lib/design/system/part-picture-cache.js.map +1 -0
  412. package/src/lib/design/system/part-ready.d.ts +71 -7
  413. package/src/lib/design/system/part-ready.js +128 -19
  414. package/src/lib/design/system/part-ready.js.map +1 -1
  415. package/src/lib/design/system/part-task.d.ts +167 -0
  416. package/src/lib/design/system/part-task.js +331 -0
  417. package/src/lib/design/system/part-task.js.map +1 -0
  418. package/src/lib/design/system/pixel-cache.d.ts +16 -0
  419. package/src/lib/design/system/pixel-cache.js +79 -0
  420. package/src/lib/design/system/pixel-cache.js.map +1 -0
  421. package/src/lib/design/system/pointer-focus.d.ts +89 -0
  422. package/src/lib/design/system/pointer-focus.js +175 -0
  423. package/src/lib/design/system/pointer-focus.js.map +1 -0
  424. package/src/lib/design/system/prettier.d.ts +10 -0
  425. package/src/lib/design/system/prettier.js +37 -0
  426. package/src/lib/design/system/prettier.js.map +1 -0
  427. package/src/lib/design/system/problem.d.ts +6 -0
  428. package/src/lib/design/system/product.js +2 -2
  429. package/src/lib/design/system/product.js.map +1 -1
  430. package/src/lib/design/system/reach.d.ts +12 -0
  431. package/src/lib/design/system/reach.js +186 -0
  432. package/src/lib/design/system/reach.js.map +1 -0
  433. package/src/lib/design/system/reachable-controls.d.ts +6 -0
  434. package/src/lib/design/system/reachable-controls.js +19 -0
  435. package/src/lib/design/system/reachable-controls.js.map +1 -0
  436. package/src/lib/design/system/reachable-files.d.ts +14 -0
  437. package/src/lib/design/system/reachable-files.js +101 -0
  438. package/src/lib/design/system/reachable-files.js.map +1 -0
  439. package/src/lib/design/system/reached-state.d.ts +23 -0
  440. package/src/lib/design/system/reached-state.js +53 -0
  441. package/src/lib/design/system/reached-state.js.map +1 -0
  442. package/src/lib/design/system/read-open-points.d.ts +9 -3
  443. package/src/lib/design/system/read-open-points.js +38 -9
  444. package/src/lib/design/system/read-open-points.js.map +1 -1
  445. package/src/lib/design/system/ready-command.d.ts +6 -2
  446. package/src/lib/design/system/ready-command.js +52 -15
  447. package/src/lib/design/system/ready-command.js.map +1 -1
  448. package/src/lib/design/system/record-settled.d.ts +24 -0
  449. package/src/lib/design/system/record-settled.js +50 -0
  450. package/src/lib/design/system/record-settled.js.map +1 -0
  451. package/src/lib/design/system/render-check.d.ts +68 -1
  452. package/src/lib/design/system/render-check.js +427 -114
  453. package/src/lib/design/system/render-check.js.map +1 -1
  454. package/src/lib/design/system/render-issue-key.d.ts +9 -0
  455. package/src/lib/design/system/render-issue-key.js +27 -0
  456. package/src/lib/design/system/render-issue-key.js.map +1 -0
  457. package/src/lib/design/system/resolve-product.d.ts +4 -1
  458. package/src/lib/design/system/resolve-product.js +19 -3
  459. package/src/lib/design/system/resolve-product.js.map +1 -1
  460. package/src/lib/design/system/rule-baseline.d.ts +53 -0
  461. package/src/lib/design/system/rule-baseline.js +124 -0
  462. package/src/lib/design/system/rule-baseline.js.map +1 -0
  463. package/src/lib/design/system/rule-skips.d.ts +20 -0
  464. package/src/lib/design/system/rule-skips.js +36 -0
  465. package/src/lib/design/system/rule-skips.js.map +1 -0
  466. package/src/lib/design/system/rules/app-spec.d.ts +30 -0
  467. package/src/lib/design/system/rules/app-spec.js +87 -0
  468. package/src/lib/design/system/rules/app-spec.js.map +1 -0
  469. package/src/lib/design/system/rules/canonical-class.d.ts +6 -0
  470. package/src/lib/design/system/rules/canonical-class.js +92 -113
  471. package/src/lib/design/system/rules/canonical-class.js.map +1 -1
  472. package/src/lib/design/system/rules/capability-place.d.ts +46 -0
  473. package/src/lib/design/system/rules/capability-place.js +129 -0
  474. package/src/lib/design/system/rules/capability-place.js.map +1 -0
  475. package/src/lib/design/system/rules/command-text.d.ts +7 -0
  476. package/src/lib/design/system/rules/command-text.js +72 -0
  477. package/src/lib/design/system/rules/command-text.js.map +1 -0
  478. package/src/lib/design/system/rules/denied-class.d.ts +9 -0
  479. package/src/lib/design/system/rules/denied-class.js +121 -0
  480. package/src/lib/design/system/rules/denied-class.js.map +1 -0
  481. package/src/lib/design/system/rules/design-coverage.d.ts +30 -0
  482. package/src/lib/design/system/rules/design-coverage.js +205 -0
  483. package/src/lib/design/system/rules/design-coverage.js.map +1 -0
  484. package/src/lib/design/system/rules/exemptions.d.ts +18 -0
  485. package/src/lib/design/system/rules/exemptions.js +18 -0
  486. package/src/lib/design/system/rules/exemptions.js.map +1 -0
  487. package/src/lib/design/system/rules/flow.js +1 -1
  488. package/src/lib/design/system/rules/flow.js.map +1 -1
  489. package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
  490. package/src/lib/design/system/rules/glued-interpolation.js +77 -0
  491. package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
  492. package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
  493. package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
  494. package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
  495. package/src/lib/design/system/rules/implemented-components.js +45 -0
  496. package/src/lib/design/system/rules/implemented-components.js.map +1 -0
  497. package/src/lib/design/system/rules/implements-unrendered.d.ts +13 -0
  498. package/src/lib/design/system/rules/implements-unrendered.js +63 -0
  499. package/src/lib/design/system/rules/implements-unrendered.js.map +1 -0
  500. package/src/lib/design/system/rules/implements.d.ts +2 -1
  501. package/src/lib/design/system/rules/implements.js +26 -21
  502. package/src/lib/design/system/rules/implements.js.map +1 -1
  503. package/src/lib/design/system/rules/inline-svg.js +4 -1
  504. package/src/lib/design/system/rules/inline-svg.js.map +1 -1
  505. package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
  506. package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
  507. package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
  508. package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
  509. package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
  510. package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
  511. package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
  512. package/src/lib/design/system/rules/inline-ui.js +100 -0
  513. package/src/lib/design/system/rules/inline-ui.js.map +1 -0
  514. package/src/lib/design/system/rules/motion.d.ts +1 -1
  515. package/src/lib/design/system/rules/motion.js +31 -17
  516. package/src/lib/design/system/rules/motion.js.map +1 -1
  517. package/src/lib/design/system/rules/native-title.d.ts +7 -0
  518. package/src/lib/design/system/rules/native-title.js +74 -0
  519. package/src/lib/design/system/rules/native-title.js.map +1 -0
  520. package/src/lib/design/system/rules/option-values.d.ts +1 -1
  521. package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
  522. package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
  523. package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
  524. package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
  525. package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
  526. package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
  527. package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
  528. package/src/lib/design/system/rules/part-rewrite.js +125 -0
  529. package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
  530. package/src/lib/design/system/rules/pending-state.d.ts +39 -0
  531. package/src/lib/design/system/rules/pending-state.js +289 -0
  532. package/src/lib/design/system/rules/pending-state.js.map +1 -0
  533. package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
  534. package/src/lib/design/system/rules/sample-default-known.js +17 -0
  535. package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
  536. package/src/lib/design/system/rules/sample-default.d.ts +22 -0
  537. package/src/lib/design/system/rules/sample-default.js +92 -0
  538. package/src/lib/design/system/rules/sample-default.js.map +1 -0
  539. package/src/lib/design/system/rules/sdk-attribute-value.d.ts +10 -0
  540. package/src/lib/design/system/rules/sdk-attribute-value.js +78 -0
  541. package/src/lib/design/system/rules/sdk-attribute-value.js.map +1 -0
  542. package/src/lib/design/system/rules/sdk-private-var.d.ts +9 -0
  543. package/src/lib/design/system/rules/sdk-private-var.js +54 -0
  544. package/src/lib/design/system/rules/sdk-private-var.js.map +1 -0
  545. package/src/lib/design/system/rules/skips.d.ts +4 -0
  546. package/src/lib/design/system/rules/skips.js +27 -0
  547. package/src/lib/design/system/rules/skips.js.map +1 -0
  548. package/src/lib/design/system/rules/stale-replace.js +5 -0
  549. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  550. package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
  551. package/src/lib/design/system/rules/state-in-component.js +101 -0
  552. package/src/lib/design/system/rules/state-in-component.js.map +1 -0
  553. package/src/lib/design/system/rules/tailwind-classes.d.ts +52 -0
  554. package/src/lib/design/system/rules/tailwind-classes.js +237 -0
  555. package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
  556. package/src/lib/design/system/rules/token-selectors.js +10 -3
  557. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  558. package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
  559. package/src/lib/design/system/rules/top-level-await.js +62 -0
  560. package/src/lib/design/system/rules/top-level-await.js.map +1 -0
  561. package/src/lib/design/system/rules/unbound-input-known.d.ts +7 -0
  562. package/src/lib/design/system/rules/unbound-input-known.js +44 -0
  563. package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
  564. package/src/lib/design/system/rules/unbound-input.d.ts +24 -0
  565. package/src/lib/design/system/rules/unbound-input.js +67 -0
  566. package/src/lib/design/system/rules/unbound-input.js.map +1 -0
  567. package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
  568. package/src/lib/design/system/rules/uncovered-region.js +36 -0
  569. package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
  570. package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
  571. package/src/lib/design/system/rules/undefined-class.js +41 -0
  572. package/src/lib/design/system/rules/undefined-class.js.map +1 -0
  573. package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
  574. package/src/lib/design/system/rules/undefined-token.js +7 -61
  575. package/src/lib/design/system/rules/undefined-token.js.map +1 -1
  576. package/src/lib/design/system/rules/utility-css.d.ts +2 -1
  577. package/src/lib/design/system/rules/utility-css.js +40 -13
  578. package/src/lib/design/system/rules/utility-css.js.map +1 -1
  579. package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
  580. package/src/lib/design/system/rules/view-coverage.js +51 -0
  581. package/src/lib/design/system/rules/view-coverage.js.map +1 -0
  582. package/src/lib/design/system/rules/visible-change.d.ts +19 -0
  583. package/src/lib/design/system/rules/visible-change.js +48 -0
  584. package/src/lib/design/system/rules/visible-change.js.map +1 -0
  585. package/src/lib/design/system/sdk-declarations.d.ts +10 -0
  586. package/src/lib/design/system/sdk-declarations.js +177 -0
  587. package/src/lib/design/system/sdk-declarations.js.map +1 -0
  588. package/src/lib/design/system/sdk-errors.d.ts +14 -0
  589. package/src/lib/design/system/sdk-errors.js +38 -0
  590. package/src/lib/design/system/sdk-errors.js.map +1 -0
  591. package/src/lib/design/system/sdk-selectors.d.ts +18 -0
  592. package/src/lib/design/system/sdk-selectors.js +131 -0
  593. package/src/lib/design/system/sdk-selectors.js.map +1 -0
  594. package/src/lib/design/system/see-through.d.ts +12 -0
  595. package/src/lib/design/system/see-through.js +112 -0
  596. package/src/lib/design/system/see-through.js.map +1 -0
  597. package/src/lib/design/system/served-cache.d.ts +99 -0
  598. package/src/lib/design/system/served-cache.js +202 -0
  599. package/src/lib/design/system/served-cache.js.map +1 -0
  600. package/src/lib/design/system/settled-panes.d.ts +23 -0
  601. package/src/lib/design/system/settled-panes.js +71 -0
  602. package/src/lib/design/system/settled-panes.js.map +1 -0
  603. package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
  604. package/src/lib/design/system/sketch/after-merge.js +51 -0
  605. package/src/lib/design/system/sketch/after-merge.js.map +1 -0
  606. package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
  607. package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
  608. package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
  609. package/src/lib/design/system/sketch/baseline.d.ts +36 -2
  610. package/src/lib/design/system/sketch/baseline.js +76 -13
  611. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  612. package/src/lib/design/system/sketch/check-format.js +3 -9
  613. package/src/lib/design/system/sketch/check-format.js.map +1 -1
  614. package/src/lib/design/system/sketch/check-sketches.d.ts +10 -0
  615. package/src/lib/design/system/sketch/check-sketches.js +50 -4
  616. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  617. package/src/lib/design/system/sketch/clean-copy.d.ts +18 -0
  618. package/src/lib/design/system/sketch/clean-copy.js +104 -0
  619. package/src/lib/design/system/sketch/clean-copy.js.map +1 -0
  620. package/src/lib/design/system/sketch/cli-args.d.ts +13 -3
  621. package/src/lib/design/system/sketch/cli-args.js +20 -5
  622. package/src/lib/design/system/sketch/cli-args.js.map +1 -1
  623. package/src/lib/design/system/sketch/covered-diffs.d.ts +40 -0
  624. package/src/lib/design/system/sketch/covered-diffs.js +106 -0
  625. package/src/lib/design/system/sketch/covered-diffs.js.map +1 -0
  626. package/src/lib/design/system/sketch/edit-sketch.d.ts +29 -0
  627. package/src/lib/design/system/sketch/edit-sketch.js +169 -0
  628. package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
  629. package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
  630. package/src/lib/design/system/sketch/frame-budget.js +23 -0
  631. package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
  632. package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
  633. package/src/lib/design/system/sketch/identical-renders.js +143 -0
  634. package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
  635. package/src/lib/design/system/sketch/merge-commit.d.ts +20 -0
  636. package/src/lib/design/system/sketch/merge-commit.js +72 -0
  637. package/src/lib/design/system/sketch/merge-commit.js.map +1 -0
  638. package/src/lib/design/system/sketch/merge-runner.d.ts +20 -0
  639. package/src/lib/design/system/sketch/merge-runner.js +73 -0
  640. package/src/lib/design/system/sketch/merge-runner.js.map +1 -0
  641. package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
  642. package/src/lib/design/system/sketch/merge-shared.js +7 -10
  643. package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
  644. package/src/lib/design/system/sketch/merge-step.d.ts +47 -0
  645. package/src/lib/design/system/sketch/merge-step.js +110 -0
  646. package/src/lib/design/system/sketch/merge-step.js.map +1 -0
  647. package/src/lib/design/system/sketch/merge-worker.d.ts +1 -0
  648. package/src/lib/design/system/sketch/merge-worker.js +14 -0
  649. package/src/lib/design/system/sketch/merge-worker.js.map +1 -0
  650. package/src/lib/design/system/sketch/merge.d.ts +19 -5
  651. package/src/lib/design/system/sketch/merge.js +245 -82
  652. package/src/lib/design/system/sketch/merge.js.map +1 -1
  653. package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
  654. package/src/lib/design/system/sketch/merged-layout.js +57 -0
  655. package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
  656. package/src/lib/design/system/sketch/merged-parts.d.ts +31 -30
  657. package/src/lib/design/system/sketch/merged-parts.js +99 -84
  658. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  659. package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
  660. package/src/lib/design/system/sketch/no-visible-change.js +16 -6
  661. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  662. package/src/lib/design/system/sketch/note-language.d.ts +7 -0
  663. package/src/lib/design/system/sketch/note-language.js +83 -0
  664. package/src/lib/design/system/sketch/note-language.js.map +1 -0
  665. package/src/lib/design/system/sketch/part-definition.d.ts +27 -1
  666. package/src/lib/design/system/sketch/part-definition.js +109 -17
  667. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  668. package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
  669. package/src/lib/design/system/sketch/rebase-port.js +215 -0
  670. package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
  671. package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
  672. package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
  673. package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
  674. package/src/lib/design/system/sketch/sketch-check-cache.d.ts +11 -0
  675. package/src/lib/design/system/sketch/sketch-check-cache.js +22 -0
  676. package/src/lib/design/system/sketch/sketch-check-cache.js.map +1 -0
  677. package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
  678. package/src/lib/design/system/sketch/sketch-check-worker.js +32 -0
  679. package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
  680. package/src/lib/design/system/sketch/sketch-checker.d.ts +40 -0
  681. package/src/lib/design/system/sketch/sketch-checker.js +109 -0
  682. package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
  683. package/src/lib/design/system/sketch/sketch.d.ts +100 -8
  684. package/src/lib/design/system/sketch/sketch.js +279 -36
  685. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  686. package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
  687. package/src/lib/design/system/sketch/stale-base.js +56 -0
  688. package/src/lib/design/system/sketch/stale-base.js.map +1 -0
  689. package/src/lib/design/system/sketch/unchanged-states.d.ts +39 -3
  690. package/src/lib/design/system/sketch/unchanged-states.js +75 -23
  691. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  692. package/src/lib/design/system/sketch/unused-closure.js +16 -4
  693. package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
  694. package/src/lib/design/system/sketch/viewed-shots.d.ts +32 -0
  695. package/src/lib/design/system/sketch/viewed-shots.js +54 -0
  696. package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
  697. package/src/lib/design/system/skip-classes.d.ts +3 -0
  698. package/src/lib/design/system/skip-classes.js +17 -0
  699. package/src/lib/design/system/skip-classes.js.map +1 -0
  700. package/src/lib/design/system/slot-hosts.d.ts +38 -0
  701. package/src/lib/design/system/slot-hosts.js +93 -0
  702. package/src/lib/design/system/slot-hosts.js.map +1 -0
  703. package/src/lib/design/system/slow-checks.d.ts +44 -0
  704. package/src/lib/design/system/slow-checks.js +250 -0
  705. package/src/lib/design/system/slow-checks.js.map +1 -0
  706. package/src/lib/design/system/slow-run.d.ts +67 -0
  707. package/src/lib/design/system/slow-run.js +312 -0
  708. package/src/lib/design/system/slow-run.js.map +1 -0
  709. package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
  710. package/src/lib/design/system/stale-design-mocks.js +59 -0
  711. package/src/lib/design/system/stale-design-mocks.js.map +1 -0
  712. package/src/lib/design/system/stale-dist.d.ts +61 -0
  713. package/src/lib/design/system/stale-dist.js +141 -0
  714. package/src/lib/design/system/stale-dist.js.map +1 -0
  715. package/src/lib/design/system/stale-parts.d.ts +45 -0
  716. package/src/lib/design/system/stale-parts.js +168 -0
  717. package/src/lib/design/system/stale-parts.js.map +1 -0
  718. package/src/lib/design/system/surface-nesting.d.ts +11 -0
  719. package/src/lib/design/system/surface-nesting.js +86 -0
  720. package/src/lib/design/system/surface-nesting.js.map +1 -0
  721. package/src/lib/design/system/system-command.js +11 -9
  722. package/src/lib/design/system/system-command.js.map +1 -1
  723. package/src/lib/design/system/system-modules.d.ts +17 -2
  724. package/src/lib/design/system/system-modules.js +18 -2
  725. package/src/lib/design/system/system-modules.js.map +1 -1
  726. package/src/lib/design/system/system-tsconfig.d.ts +9 -2
  727. package/src/lib/design/system/system-tsconfig.js +73 -13
  728. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  729. package/src/lib/design/system/task-command.d.ts +52 -0
  730. package/src/lib/design/system/task-command.js +271 -0
  731. package/src/lib/design/system/task-command.js.map +1 -0
  732. package/src/lib/design/system/theming-text.d.ts +2 -0
  733. package/src/lib/design/system/theming-text.js +6 -0
  734. package/src/lib/design/system/theming-text.js.map +1 -0
  735. package/src/lib/design/system/touched-parts.d.ts +16 -0
  736. package/src/lib/design/system/touched-parts.js +121 -0
  737. package/src/lib/design/system/touched-parts.js.map +1 -0
  738. package/src/lib/design/system/tracked-reads.d.ts +27 -0
  739. package/src/lib/design/system/tracked-reads.js +100 -0
  740. package/src/lib/design/system/tracked-reads.js.map +1 -0
  741. package/src/lib/design/system/ts-source.d.ts +2 -0
  742. package/src/lib/design/system/ts-source.js +15 -1
  743. package/src/lib/design/system/ts-source.js.map +1 -1
  744. package/src/lib/design/system/unchanged-rows.d.ts +24 -0
  745. package/src/lib/design/system/unchanged-rows.js +212 -0
  746. package/src/lib/design/system/unchanged-rows.js.map +1 -0
  747. package/src/lib/design/system/uncommitted-decisions.d.ts +4 -0
  748. package/src/lib/design/system/uncommitted-decisions.js +35 -0
  749. package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
  750. package/src/lib/design/system/uncovered-regions.d.ts +61 -0
  751. package/src/lib/design/system/uncovered-regions.js +171 -0
  752. package/src/lib/design/system/uncovered-regions.js.map +1 -0
  753. package/src/lib/design/system/unused-base-parts.d.ts +7 -0
  754. package/src/lib/design/system/unused-base-parts.js +76 -0
  755. package/src/lib/design/system/unused-base-parts.js.map +1 -0
  756. package/src/lib/design/system/visible-change-command.d.ts +60 -0
  757. package/src/lib/design/system/visible-change-command.js +310 -0
  758. package/src/lib/design/system/visible-change-command.js.map +1 -0
  759. package/src/lib/design/system/visible-change-parts.d.ts +28 -0
  760. package/src/lib/design/system/visible-change-parts.js +96 -0
  761. package/src/lib/design/system/visible-change-parts.js.map +1 -0
  762. package/src/lib/design/system/visible-change.d.ts +82 -0
  763. package/src/lib/design/system/visible-change.js +149 -0
  764. package/src/lib/design/system/visible-change.js.map +1 -0
  765. package/src/lib/design/system/write-origin.d.ts +12 -0
  766. package/src/lib/design/system/write-origin.js +18 -0
  767. package/src/lib/design/system/write-origin.js.map +1 -0
  768. package/src/lib/design/system-use.js +4 -4
  769. package/src/lib/design/system-use.js.map +1 -1
  770. package/src/lib/design/thumb.d.ts +37 -4
  771. package/src/lib/design/thumb.js +118 -21
  772. package/src/lib/design/thumb.js.map +1 -1
  773. package/src/lib/design/timings-command.d.ts +22 -0
  774. package/src/lib/design/timings-command.js +175 -0
  775. package/src/lib/design/timings-command.js.map +1 -0
  776. package/src/lib/design/timings.d.ts +117 -0
  777. package/src/lib/design/timings.js +296 -0
  778. package/src/lib/design/timings.js.map +1 -0
  779. package/src/lib/design/typecheck.d.ts +1 -1
  780. package/src/lib/design/typecheck.js +5 -5
  781. package/src/lib/design/typecheck.js.map +1 -1
  782. package/src/lib/design/unstable-cells.d.ts +23 -0
  783. package/src/lib/design/unstable-cells.js +40 -0
  784. package/src/lib/design/unstable-cells.js.map +1 -0
  785. package/src/lib/design/variant-diff.js +1 -1
  786. package/src/lib/design/variant-diff.js.map +1 -1
  787. package/src/lib/design/vite-cache.d.ts +11 -0
  788. package/src/lib/design/vite-cache.js +61 -0
  789. package/src/lib/design/vite-cache.js.map +1 -0
  790. package/src/lib/design/wait.d.ts +15 -0
  791. package/src/lib/design/wait.js +30 -0
  792. package/src/lib/design/wait.js.map +1 -0
  793. package/src/lib/design/warm-draw.d.ts +33 -0
  794. package/src/lib/design/warm-draw.js +74 -0
  795. package/src/lib/design/warm-draw.js.map +1 -0
  796. package/src/lib/design/warm-pages.d.ts +10 -2
  797. package/src/lib/design/warm-pages.js +6 -2
  798. package/src/lib/design/warm-pages.js.map +1 -1
  799. package/src/lib/design/work-root.d.ts +2 -0
  800. package/src/lib/design/work-root.js +8 -0
  801. package/src/lib/design/work-root.js.map +1 -0
  802. package/src/lib/json-file.d.ts +11 -0
  803. package/src/lib/json-file.js +21 -0
  804. package/src/lib/json-file.js.map +1 -0
  805. package/src/lib/plain-output.d.ts +27 -0
  806. package/src/lib/plain-output.js +66 -0
  807. package/src/lib/plain-output.js.map +1 -0
  808. package/src/lib/release.js +11 -3
  809. package/src/lib/release.js.map +1 -1
  810. package/src/lib/source-hash.d.ts +7 -0
  811. package/src/lib/source-hash.js +62 -0
  812. package/src/lib/source-hash.js.map +1 -0
  813. package/src/lib/update/agent-setup.js +2 -1
  814. package/src/lib/update/agent-setup.js.map +1 -1
  815. package/src/lib/update/commits.js +2 -2
  816. package/src/lib/update/commits.js.map +1 -1
  817. package/src/lib/update/migration-manifest.d.ts +12 -0
  818. package/src/lib/update/migration-manifest.js +13 -0
  819. package/src/lib/update/migration-manifest.js.map +1 -1
  820. package/src/lib/update/migration-record.js +2 -1
  821. package/src/lib/update/migration-record.js.map +1 -1
  822. package/src/lib/update/packages.js +4 -2
  823. package/src/lib/update/packages.js.map +1 -1
  824. package/src/lib/update/pending.js +2 -1
  825. package/src/lib/update/pending.js.map +1 -1
  826. package/src/lib/update/run-migrations.d.ts +3 -2
  827. package/src/lib/update/run-migrations.js +38 -5
  828. package/src/lib/update/run-migrations.js.map +1 -1
  829. package/src/lib/update/scan.js +8 -2
  830. package/src/lib/update/scan.js.map +1 -1
  831. package/src/lib/update/tasks.js +2 -1
  832. package/src/lib/update/tasks.js.map +1 -1
  833. package/src/lib/design/paths.js +0 -138
  834. package/src/lib/design/paths.js.map +0 -1
  835. package/src/lib/design/system/accept-command.d.ts +0 -7
  836. package/src/lib/design/system/accept-command.js +0 -55
  837. package/src/lib/design/system/accept-command.js.map +0 -1
@@ -0,0 +1,674 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.checkLiveActions = exports.liveLineOf = exports.toggleSyncFailureOf = exports.liveStateCompareOf = exports.liveDriftOf = exports.liveOutcomeOf = exports.nearestControlOf = exports.controlNameOf = exports.listenOutputsScriptOf = exports.awaitEmitted = exports.liveControlsScriptOf = void 0;
13
+ const fs_1 = require("fs");
14
+ const path_1 = require("path");
15
+ const browser_1 = require("../browser");
16
+ const serve_1 = require("../serve");
17
+ const shot_1 = require("../shot");
18
+ const thumb_1 = require("../thumb");
19
+ const actions_1 = require("./actions");
20
+ const action_press_1 = require("./action-press");
21
+ const harness_shot_1 = require("./harness-shot");
22
+ const live_compare_1 = require("./live-compare");
23
+ const pointer_focus_1 = require("./pointer-focus");
24
+ const reached_state_1 = require("./reached-state");
25
+ const resolve_product_1 = require("./resolve-product");
26
+ const system_modules_1 = require("./system-modules");
27
+ const ownedScript = (shell) => `
28
+ const shellHost = document.querySelector(${JSON.stringify(shell)});
29
+ const shellRoot = shellHost && window.ng ? window.ng.getComponent(shellHost) : null;
30
+ const owned = (element) => {
31
+ let owner = window.ng.getOwningComponent(element);
32
+
33
+ for (let depth = 0; owner && depth < 100; depth++) {
34
+ if (owner === shellRoot) return true;
35
+ owner = window.ng.getOwningComponent(window.ng.getHostElement(owner));
36
+ }
37
+
38
+ return false;
39
+ };`;
40
+ /**
41
+ * A script that scans the interactive elements under `roots` as the part check does and answers them with their
42
+ * centre relative to the first `frame` element, `aria-expanded`, `aria-current` and their `data-et-part` keys from the
43
+ * innermost out. With `shell` it keeps only the elements the shell component's view tree owns (Angular dev mode) and
44
+ * those in an overlay, whose host Angular creates outside any view.
45
+ */
46
+ const liveControlsScriptOf = (options) => `(() => {
47
+ const scanned = ${(0, actions_1.actionScanScriptOf)(options.roots)};
48
+ ${options.shell === null ? 'const keep = () => true;' : `${ownedScript(options.shell)}\n if (!window.ng) throw new Error('the app has no window.ng - the live action check needs a development build');\n if (!shellRoot) return null;\n const keep = (element) => owned(element) || !!element.closest(${JSON.stringify(action_press_1.OVERLAY_ROOTS)});`}
49
+ const frame = document.querySelector(${JSON.stringify(options.frame)})?.getBoundingClientRect() ?? { x: 0, y: 0 };
50
+ const counts = new Map();
51
+
52
+ return scanned.flatMap((found) => {
53
+ const element = document.querySelector('[data-et-action-probe="' + found.probe + '"]');
54
+
55
+ if (!element || !keep(element)) return [];
56
+
57
+ const box = element.getBoundingClientRect();
58
+ const parts = [];
59
+
60
+ for (let marked = element.closest('[data-et-part]'); marked; marked = marked.parentElement?.closest('[data-et-part]') ?? null)
61
+ parts.push(...(marked.getAttribute('data-et-part') ?? '').split(' ').filter(Boolean));
62
+
63
+ const occurrence = counts.get(found.key) ?? 0;
64
+
65
+ counts.set(found.key, occurrence + 1);
66
+
67
+ return [{
68
+ ...found,
69
+ occurrence,
70
+ x: Math.round(box.x + box.width / 2 - frame.x),
71
+ y: Math.round(box.y + box.height / 2 - frame.y),
72
+ expanded: element.getAttribute('aria-expanded'),
73
+ current: element.getAttribute('aria-current'),
74
+ overlay: !!element.closest(${JSON.stringify(action_press_1.OVERLAY_ROOTS)}),
75
+ parts,
76
+ }];
77
+ });
78
+ })()`;
79
+ exports.liveControlsScriptOf = liveControlsScriptOf;
80
+ /** Waits after a press until the declared `output` fired or the page went quiet, then until its animations settle. */
81
+ const awaitEmitted = (page, output) => __awaiter(void 0, void 0, void 0, function* () {
82
+ yield (0, action_press_1.awaitOutput)(page, output);
83
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
84
+ });
85
+ exports.awaitEmitted = awaitEmitted;
86
+ /** A script that records each output the shell's components emit in `window.__etDesignEmits`. */
87
+ const listenOutputsScriptOf = (shell) => `(() => {
88
+ ${ownedScript(shell)}
89
+ window.__etDesignEmits = [];
90
+ window.__etListened ??= new WeakSet();
91
+
92
+ for (const element of document.querySelectorAll('*')) {
93
+ const component = window.ng.getComponent(element);
94
+
95
+ if (!component || window.__etListened.has(component) || (component !== shellRoot && !owned(element))) continue;
96
+
97
+ window.__etListened.add(component);
98
+
99
+ for (const [output, property] of Object.entries(window.ng.getDirectiveMetadata(component)?.outputs ?? {}))
100
+ component[property]?.subscribe?.(() => window.__etDesignEmits.push({ output }));
101
+ }
102
+ })()`;
103
+ exports.listenOutputsScriptOf = listenOutputsScriptOf;
104
+ const idOf = (control) => `${control.key}#${control.occurrence}`;
105
+ /** The name a report line gives a control. */
106
+ const controlNameOf = (control) => control.occurrence === 0 ? control.key : `${control.key} (${control.occurrence + 1}.)`;
107
+ exports.controlNameOf = controlNameOf;
108
+ /** The design control of the same key nearest to `app`, as both sit in their host box. */
109
+ const nearestControlOf = (app, design) => design
110
+ .filter((candidate) => candidate.key === app.key)
111
+ .reduce((best, candidate) => best === null ||
112
+ Math.hypot(candidate.x - app.x, candidate.y - app.y) < Math.hypot(best.x - app.x, best.y - app.y)
113
+ ? candidate
114
+ : best, null);
115
+ exports.nearestControlOf = nearestControlOf;
116
+ /** What a press changed: the outputs it fired, the expanded controls after it, the controls that gained an `aria-current`, and the controls it added or removed. */
117
+ const liveOutcomeOf = (options) => {
118
+ const { before, after } = options;
119
+ const currentBefore = new Map(before.map((control) => [idOf(control), control.current]));
120
+ const gained = after
121
+ .filter((control) => control.current !== null && currentBefore.get(idOf(control)) !== control.current)
122
+ .map((control) => `${(0, exports.controlNameOf)(control)}=${control.current}`);
123
+ const ids = (controls) => new Set(controls.map(idOf));
124
+ const had = ids(before);
125
+ const has = ids(after);
126
+ return {
127
+ emitted: [...new Set(options.emitted)].sort(),
128
+ expanded: after.filter((control) => control.expanded === 'true').map(exports.controlNameOf),
129
+ current: gained.length === 0 ? null : gained.join(', '),
130
+ added: after.filter((control) => !had.has(idOf(control))).map(exports.controlNameOf),
131
+ removed: before.filter((control) => !has.has(idOf(control))).map(exports.controlNameOf),
132
+ };
133
+ };
134
+ exports.liveOutcomeOf = liveOutcomeOf;
135
+ const outcomeTextOf = (outcome, fields) => fields
136
+ .map((field) => {
137
+ const value = outcome[field];
138
+ return `${field} ${Array.isArray(value) ? (value.length > 0 ? value.join(', ') : 'none') : (value !== null && value !== void 0 ? value : 'unchanged')}`;
139
+ })
140
+ .join('; ');
141
+ /**
142
+ * The drift lines of the presses on several pages: a control, its declared action and input whose outcome differs
143
+ * between pages fails once, naming each page with what it did.
144
+ */
145
+ const liveDriftOf = (presses) => {
146
+ var _a, _b;
147
+ const groups = new Map();
148
+ for (const press of [...presses].sort((a, b) => a.page.localeCompare(b.page))) {
149
+ const group = `${press.control}\n${(_a = press.action) !== null && _a !== void 0 ? _a : ''}\n${press.input}`;
150
+ groups.set(group, [...((_b = groups.get(group)) !== null && _b !== void 0 ? _b : []), press]);
151
+ }
152
+ return [...groups.values()].flatMap((group) => {
153
+ const first = group[0];
154
+ const distinct = new Set(group.map((press) => JSON.stringify(press.outcome)));
155
+ if (!first || group.length < 2)
156
+ return [];
157
+ const fields = Object.keys(first.outcome).filter((field) => new Set(group.map((press) => JSON.stringify(press.outcome[field]))).size > 1);
158
+ return [
159
+ {
160
+ page: 'drift',
161
+ element: first.control,
162
+ input: first.input,
163
+ parts: [...new Set(group.flatMap((press) => [press.page, ...press.parts]))],
164
+ failure: distinct.size === 1
165
+ ? null
166
+ : `behaves differently per page: ${group.map((press) => `${press.page}: ${outcomeTextOf(press.outcome, fields)}`).join(' | ')}`,
167
+ },
168
+ ];
169
+ });
170
+ };
171
+ exports.liveDriftOf = liveDriftOf;
172
+ /** Whether the controls after a press show the `aria-expanded` values the declared state draws. */
173
+ const liveStateCompareOf = (options) => {
174
+ const keys = Object.keys(options.expected);
175
+ if (keys.length === 0)
176
+ return {
177
+ ok: false,
178
+ detail: `state ${options.state} draws no aria-expanded control, so a live page cannot tell it`,
179
+ };
180
+ const wrong = keys.flatMap((key) => {
181
+ var _a, _b;
182
+ const found = (_b = (_a = options.after.find((control) => control.key === key)) === null || _a === void 0 ? void 0 : _a.expanded) !== null && _b !== void 0 ? _b : 'absent';
183
+ return found === options.expected[key] ? [] : [`${key} aria-expanded ${found}, not ${options.expected[key]}`];
184
+ });
185
+ return { ok: wrong.length === 0, detail: wrong.join(', ') };
186
+ };
187
+ exports.liveStateCompareOf = liveStateCompareOf;
188
+ /**
189
+ * Whether a toggle control that opens an overlay keeps its pressed or expanded state equal to the overlay's open state
190
+ * after every click; answers the first click where they part, or `null`.
191
+ */
192
+ const toggleSyncFailureOf = (steps) => {
193
+ const first = steps[0];
194
+ if (!first || first.overlays === 0)
195
+ return null;
196
+ const attribute = first.pressed !== null ? 'aria-pressed' : first.expanded !== null ? 'aria-expanded' : null;
197
+ if (attribute === null)
198
+ return null;
199
+ for (const [index, step] of steps.entries()) {
200
+ const on = (attribute === 'aria-pressed' ? step.pressed : step.expanded) === 'true';
201
+ const open = step.overlays > 0;
202
+ if (on !== open)
203
+ return `click ${index + 1} leaves ${attribute} ${on}, but its overlay is ${open ? 'open' : 'closed'}`;
204
+ }
205
+ return null;
206
+ };
207
+ exports.toggleSyncFailureOf = toggleSyncFailureOf;
208
+ /** The line `design actions --live` prints for one checked control and input. */
209
+ const liveLineOf = ({ page, element, input, failure, warning }) => `${page} ${element}${input === null ? '' : ` ${input}`} ${failure === null ? `ok${warning ? ` (warning: ${warning})` : ''}` : `FAILED ${failure}`}`;
210
+ exports.liveLineOf = liveLineOf;
211
+ const LOCATE_TIMEOUT_MS = 5000;
212
+ const LOCATE_POLL_MS = 100;
213
+ const STABLE_SCANS = 3;
214
+ const STABLE_POLL_MS = 250;
215
+ const TOGGLE_CLICKS = 3;
216
+ const overlayCountOf = (page) => __awaiter(void 0, void 0, void 0, function* () {
217
+ return (yield page.evaluate(`[...document.querySelectorAll(${JSON.stringify(action_press_1.OVERLAY_ROOTS)})].reduce((count, root) => count + root.children.length, 0)`));
218
+ });
219
+ const messageOf = (error) => (error instanceof Error ? error.message : String(error));
220
+ /**
221
+ * Presses every shell control of the first live state of every live page with click, Enter and Space, checks that each
222
+ * reaches the action its page design declares (an output of a shell component fires, or the declared state's
223
+ * `aria-expanded` values show), and compares the outcome of each control across pages. With `part` it presses only the
224
+ * controls drawn by that part and keeps the lines of that page or part.
225
+ */
226
+ const checkLiveActions = (options) => __awaiter(void 0, void 0, void 0, function* () {
227
+ var _a, _b;
228
+ const { target, config, product, url, part, onLine } = options;
229
+ const live = (0, live_compare_1.liveSpecOf)({ target, product });
230
+ if (typeof live === 'string')
231
+ return live;
232
+ const { spec, dir } = live;
233
+ if (spec.shell === undefined)
234
+ return `the live spec has no "shell" selector of the app's shell component`;
235
+ const presetName = (_a = Object.keys(product.presets)[0]) !== null && _a !== void 0 ? _a : '';
236
+ const presetSize = product.presets[presetName];
237
+ if ((presetSize === null || presetSize === void 0 ? void 0 : presetSize.height) === undefined)
238
+ return `the product has no preset "${presetName}" with a height`;
239
+ const size = { width: presetSize.width, height: presetSize.height };
240
+ const shell = spec.shell;
241
+ if (!(yield (0, browser_1.chromiumOf)(target)))
242
+ return 'actions needs playwright or playwright-core in the checkout';
243
+ const queue = (0, thumb_1.createDrawQueue)({ target });
244
+ const server = yield (0, serve_1.createDesignServer)({ target, config, listen: true, port: 0 });
245
+ let shooter;
246
+ try {
247
+ yield server.listen();
248
+ const base = `http://localhost:${((_b = server.httpServer) === null || _b === void 0 ? void 0 : _b.address()).port}`;
249
+ shooter = (0, shot_1.createPartShooter)({ target, base, system: (0, system_modules_1.createSystemModules)({ target, config }), queue });
250
+ const pictures = shooter;
251
+ const slotFill = spec.frame ? (0, live_compare_1.frameContentOf)((0, fs_1.readFileSync)((0, path_1.resolve)(dir, spec.frame))) : null;
252
+ const statesCache = new Map();
253
+ const statesOf = (key) => __awaiter(void 0, void 0, void 0, function* () {
254
+ var _a, _b;
255
+ const cached = statesCache.get(key);
256
+ if (cached)
257
+ return cached;
258
+ const file = (_a = product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === key)) === null || _a === void 0 ? void 0 : _a.file;
259
+ const module = file
260
+ ? (yield server.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product: product.name })))
261
+ : {};
262
+ const loaded = (_b = module.default) === null || _b === void 0 ? void 0 : _b.states;
263
+ const names = loaded && typeof loaded === 'object' && !Array.isArray(loaded) ? Object.keys(loaded) : [];
264
+ statesCache.set(key, names);
265
+ return names;
266
+ });
267
+ const designControlsOf = (design) => __awaiter(void 0, void 0, void 0, function* () {
268
+ return queue.run((browser) => __awaiter(void 0, void 0, void 0, function* () {
269
+ const context = yield browser.newContext({ viewport: design.viewport, deviceScaleFactor: 1 });
270
+ try {
271
+ const page = yield context.newPage();
272
+ yield page.setContent(design.markup);
273
+ return (yield page.evaluate((0, exports.liveControlsScriptOf)({ roots: ['body'], frame: design.frame, shell: null })));
274
+ }
275
+ finally {
276
+ yield context.close();
277
+ }
278
+ }));
279
+ });
280
+ const targetCache = new Map();
281
+ const targetControlsOf = (owner, state) => {
282
+ var _a;
283
+ const key = `${owner}\n${state}`;
284
+ const cached = (_a = targetCache.get(key)) !== null && _a !== void 0 ? _a : (() => __awaiter(void 0, void 0, void 0, function* () {
285
+ var _a, _b;
286
+ const frame = (0, harness_shot_1.compareFrameOf)({ presets: product.presets, part: owner, preset: null });
287
+ const picture = yield pictures.pictureOf({
288
+ product: product.name,
289
+ part: owner,
290
+ state,
291
+ preset: typeof frame === 'string' ? null : frame.preset,
292
+ width: null,
293
+ sketch: null,
294
+ interaction: null,
295
+ bare: true,
296
+ emptySlots: true,
297
+ params: new URLSearchParams(),
298
+ });
299
+ return designControlsOf({
300
+ markup: (_a = picture.markup) !== null && _a !== void 0 ? _a : '',
301
+ frame: 'body',
302
+ viewport: typeof frame === 'string' || !frame.size
303
+ ? size
304
+ : { width: frame.size.width, height: (_b = frame.size.height) !== null && _b !== void 0 ? _b : size.height },
305
+ });
306
+ }))();
307
+ targetCache.set(key, cached);
308
+ return cached;
309
+ };
310
+ const ownerOf = (state, parts) => __awaiter(void 0, void 0, void 0, function* () {
311
+ for (const candidate of parts)
312
+ if ((yield statesOf(candidate)).includes(state))
313
+ return candidate;
314
+ return null;
315
+ });
316
+ const runs = Object.entries(spec.pages).flatMap(([name, page]) => {
317
+ const first = Object.values(page.states)[0];
318
+ return first ? [{ name, page, state: first, design: first.design }] : [];
319
+ });
320
+ const lines = [];
321
+ const kept = (line) => part === null || line.parts.includes(part);
322
+ const pushLine = (line) => {
323
+ lines.push(line);
324
+ if (kept(line))
325
+ onLine === null || onLine === void 0 ? void 0 : onLine(line);
326
+ };
327
+ const presses = [];
328
+ const press = (options) => __awaiter(void 0, void 0, void 0, function* () {
329
+ return queue.run((browser) => __awaiter(void 0, void 0, void 0, function* () {
330
+ var _a;
331
+ const context = yield browser.newContext(Object.assign({ viewport: size, deviceScaleFactor: 1 }, (spec.now !== undefined && { timezoneId: 'UTC' })));
332
+ try {
333
+ yield context.addInitScript(action_press_1.INIT_SCRIPT);
334
+ const { page, host } = yield (0, live_compare_1.openLivePage)({
335
+ context,
336
+ url,
337
+ size,
338
+ spec,
339
+ dir,
340
+ page: options.run.page,
341
+ state: options.run.state,
342
+ server: base,
343
+ checkout: target,
344
+ timeout: thumb_1.DRAW_TIMEOUT_MS,
345
+ });
346
+ const scan = () => __awaiter(void 0, void 0, void 0, function* () {
347
+ return (yield page.evaluate((0, exports.liveControlsScriptOf)({ roots: [host, action_press_1.OVERLAY_ROOTS], frame: host, shell })));
348
+ });
349
+ const locate = (want) => __awaiter(void 0, void 0, void 0, function* () {
350
+ var _a;
351
+ const deadline = Date.now() + LOCATE_TIMEOUT_MS;
352
+ for (;;) {
353
+ const found = (_a = (yield scan())) === null || _a === void 0 ? void 0 : _a.find((control) => control.key === want.key && control.occurrence === want.occurrence);
354
+ if (found)
355
+ return page.locator(`[data-et-action-probe="${found.probe}"]`);
356
+ if (Date.now() > deadline)
357
+ throw new live_compare_1.LiveError(`the page has no ${(0, exports.controlNameOf)(want)} after a fresh load`);
358
+ yield page.waitForTimeout(LOCATE_POLL_MS);
359
+ }
360
+ });
361
+ const stableScan = () => __awaiter(void 0, void 0, void 0, function* () {
362
+ const deadline = Date.now() + thumb_1.DRAW_TIMEOUT_MS;
363
+ let last = '';
364
+ let same = 0;
365
+ yield page.waitForLoadState('networkidle', { timeout: thumb_1.DRAW_TIMEOUT_MS }).catch(() => undefined);
366
+ for (;;) {
367
+ const controls = yield scan();
368
+ const shape = JSON.stringify(controls === null || controls === void 0 ? void 0 : controls.map(({ key, occurrence, expanded, current }) => [key, occurrence, expanded, current]));
369
+ same = shape === last ? same + 1 : 0;
370
+ last = shape;
371
+ if (same >= STABLE_SCANS - 1 || Date.now() > deadline)
372
+ return controls !== null && controls !== void 0 ? controls : [];
373
+ yield page.waitForTimeout(STABLE_POLL_MS);
374
+ }
375
+ });
376
+ yield page.mouse.move(-1, -1);
377
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
378
+ yield stableScan();
379
+ if (options.opener) {
380
+ yield (yield locate(options.opener)).click({ timeout: thumb_1.DRAW_TIMEOUT_MS });
381
+ yield page.mouse.move(-1, -1);
382
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
383
+ }
384
+ const before = yield stableScan();
385
+ const control = yield locate(options.pick);
386
+ yield page.evaluate((0, exports.listenOutputsScriptOf)(shell));
387
+ yield page.evaluate('window.__etPrevented = [];');
388
+ let clickRing = null;
389
+ let clickThenKeyRing = null;
390
+ let keyboardRing = null;
391
+ const overlaysBefore = options.input === 'click' ? yield overlayCountOf(page) : 0;
392
+ const toggleSteps = [];
393
+ const readToggle = () => __awaiter(void 0, void 0, void 0, function* () {
394
+ return toggleSteps.push(Object.assign(Object.assign({}, (yield control.evaluate((element) => ({
395
+ pressed: element.getAttribute('aria-pressed'),
396
+ expanded: element.getAttribute('aria-expanded'),
397
+ })))), { overlays: (yield overlayCountOf(page)) - overlaysBefore }));
398
+ });
399
+ if (options.input === 'dblclick') {
400
+ yield (0, action_press_1.watchMutations)(page);
401
+ yield control.dblclick({ timeout: thumb_1.DRAW_TIMEOUT_MS });
402
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
403
+ yield page.mouse.move(-1, -1);
404
+ }
405
+ else if (options.input === 'click') {
406
+ yield (0, pointer_focus_1.tabAwayFrom)(page, control);
407
+ yield (0, action_press_1.watchMutations)(page);
408
+ yield control.click({ timeout: thumb_1.DRAW_TIMEOUT_MS });
409
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
410
+ yield readToggle();
411
+ clickRing = yield (0, pointer_focus_1.ringProbeOrNullOf)(control);
412
+ if (clickRing) {
413
+ clickThenKeyRing = yield (0, pointer_focus_1.readRingAfterKey)({
414
+ page,
415
+ locator: control,
416
+ settle: (settled) => (0, action_press_1.settle)(settled, thumb_1.DRAW_TIMEOUT_MS),
417
+ });
418
+ }
419
+ yield page.mouse.move(-1, -1);
420
+ }
421
+ else {
422
+ const before = (_a = (yield (0, pointer_focus_1.ringProbeOrNullOf)(control))) === null || _a === void 0 ? void 0 : _a.style;
423
+ yield page.keyboard.press('Shift');
424
+ yield control.focus({ timeout: thumb_1.DRAW_TIMEOUT_MS });
425
+ if (options.input === 'Enter') {
426
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
427
+ const probe = yield (0, pointer_focus_1.ringProbeOrNullOf)(control);
428
+ keyboardRing = before && probe ? { before, probe } : null;
429
+ }
430
+ yield (0, action_press_1.watchMutations)(page);
431
+ yield page.keyboard.press(options.input);
432
+ }
433
+ yield (0, exports.awaitEmitted)(page, options.output);
434
+ const emitted = (yield page.evaluate('(window.__etDesignEmits ?? []).map((emit) => emit.output)'));
435
+ const prevented = (yield page.evaluate('window.__etPrevented')).length > 0;
436
+ const after = yield stableScan();
437
+ const first = toggleSteps[0];
438
+ const isToggle = !!first && first.overlays > 0 && (first.pressed !== null || first.expanded !== null);
439
+ if (isToggle) {
440
+ for (let click = 0; click < TOGGLE_CLICKS - 1; click++) {
441
+ yield control.click({ timeout: thumb_1.DRAW_TIMEOUT_MS });
442
+ yield page.mouse.move(-1, -1);
443
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
444
+ yield readToggle();
445
+ }
446
+ }
447
+ return {
448
+ before,
449
+ after,
450
+ emitted,
451
+ prevented,
452
+ clickRing,
453
+ clickThenKeyRing,
454
+ keyboardRing,
455
+ toggle: isToggle ? (0, exports.toggleSyncFailureOf)(toggleSteps) : undefined,
456
+ };
457
+ }
458
+ finally {
459
+ yield context.close();
460
+ }
461
+ }));
462
+ });
463
+ const check = (run, controls) => __awaiter(void 0, void 0, void 0, function* () {
464
+ const found = [];
465
+ yield Promise.all(controls.map((_a) => __awaiter(void 0, [_a], void 0, function* ({ app, declared, owner, parts, opener }) {
466
+ const name = (0, exports.controlNameOf)(app);
467
+ const action = declared === null
468
+ ? null
469
+ : declared
470
+ .trim()
471
+ .replace(/^dblclick:/u, '')
472
+ .startsWith('emit:')
473
+ ? (0, actions_1.parseAction)(declared, [])
474
+ : owner === null
475
+ ? `data-et-action="${declared}" names no state of ${parts.join(', ') || 'its part'}`
476
+ : (0, actions_1.parseAction)(declared, yield statesOf(owner));
477
+ if (action === null || typeof action === 'string') {
478
+ pushLine({
479
+ page: run.name,
480
+ element: name,
481
+ input: null,
482
+ parts,
483
+ failure: action !== null && action !== void 0 ? action : 'the page design declares no data-et-action for it',
484
+ });
485
+ }
486
+ const rings = { click: null, keyboard: null };
487
+ let toggle;
488
+ yield Promise.all((0, actions_1.actionInputsOf)(app.key, action).map((input) => __awaiter(void 0, void 0, void 0, function* () {
489
+ var _a, _b, _c, _d, _e, _f;
490
+ try {
491
+ const result = yield press({
492
+ run,
493
+ opener,
494
+ pick: app,
495
+ input,
496
+ output: typeof action === 'object' && (action === null || action === void 0 ? void 0 : action.kind) === 'emit' ? action.output : null,
497
+ });
498
+ const outcome = (0, exports.liveOutcomeOf)(result);
499
+ (_a = rings.click) !== null && _a !== void 0 ? _a : (rings.click = result.clickRing);
500
+ (_b = rings.clickThenKey) !== null && _b !== void 0 ? _b : (rings.clickThenKey = result.clickThenKeyRing);
501
+ (_c = rings.keyboard) !== null && _c !== void 0 ? _c : (rings.keyboard = result.keyboardRing);
502
+ if (input === 'click')
503
+ toggle = result.toggle;
504
+ presses.push({ page: run.name, control: name, action: declared, input, outcome, parts });
505
+ if (input === 'click' &&
506
+ action !== null &&
507
+ typeof action !== 'string' &&
508
+ action.kind === 'state' &&
509
+ owner !== null) {
510
+ const reached = yield targetControlsOf(owner, action.state);
511
+ for (const added of result.after.filter((control) => control.overlay && !result.before.some((had) => idOf(had) === idOf(control)))) {
512
+ const drawn = reached.find((control) => control.key === added.key && control.occurrence === added.occurrence);
513
+ found.push({
514
+ app: added,
515
+ declared: (_d = drawn === null || drawn === void 0 ? void 0 : drawn.action) !== null && _d !== void 0 ? _d : null,
516
+ owner: (drawn === null || drawn === void 0 ? void 0 : drawn.action) ? yield ownerOf(drawn.action, [owner, ...drawn.parts]) : null,
517
+ parts: [...new Set([...((_e = drawn === null || drawn === void 0 ? void 0 : drawn.parts) !== null && _e !== void 0 ? _e : []), ...parts])],
518
+ opener: app,
519
+ });
520
+ }
521
+ }
522
+ if (action === null || typeof action === 'string')
523
+ return;
524
+ const expectedOf = (state) => __awaiter(void 0, void 0, void 0, function* () {
525
+ return Object.fromEntries(owner === null
526
+ ? []
527
+ : (yield targetControlsOf(owner, state)).flatMap((control) => control.expanded === null ? [] : [[control.key, control.expanded]]));
528
+ });
529
+ const compare = action.kind === 'state' && owner !== null
530
+ ? (0, exports.liveStateCompareOf)({
531
+ state: action.state,
532
+ expected: yield expectedOf(action.state),
533
+ after: result.after,
534
+ })
535
+ : null;
536
+ const reached = action.kind === 'state' && owner !== null && compare && !compare.ok
537
+ ? yield (0, reached_state_1.reachedExpandedStateOf)({
538
+ goal: action.state,
539
+ states: yield statesOf(owner),
540
+ expectedOf,
541
+ after: result.after,
542
+ })
543
+ : null;
544
+ pushLine({
545
+ page: run.name,
546
+ element: name,
547
+ input,
548
+ parts,
549
+ failure: (0, actions_1.actionFailureOf)({
550
+ action,
551
+ target: action.kind === 'state' ? action.state : '',
552
+ input,
553
+ outcome: { emitted: result.emitted, prevented: result.prevented, compare, reached },
554
+ }),
555
+ });
556
+ }
557
+ catch (error) {
558
+ pushLine({
559
+ page: run.name,
560
+ element: name,
561
+ input,
562
+ parts,
563
+ failure: (_f = messageOf(error).split('\n')[0]) !== null && _f !== void 0 ? _f : '',
564
+ });
565
+ }
566
+ })));
567
+ if (toggle !== undefined) {
568
+ pushLine({ page: run.name, element: `${name} toggle`, input: null, parts, failure: toggle });
569
+ }
570
+ if (rings.click !== null) {
571
+ const { failure, warning } = (0, pointer_focus_1.pointerFocusVerdictOf)(Object.assign(Object.assign({}, rings), { activatable: declared !== null }));
572
+ pushLine({ page: run.name, element: `${name} pointer focus`, input: null, parts, failure, warning });
573
+ }
574
+ })));
575
+ return found;
576
+ });
577
+ yield Promise.all(runs.map((run) => __awaiter(void 0, void 0, void 0, function* () {
578
+ var _a, _b, _c, _d;
579
+ try {
580
+ const picture = yield pictures.pictureOf({
581
+ product: product.name,
582
+ part: run.name,
583
+ state: run.design,
584
+ preset: presetName,
585
+ width: null,
586
+ sketch: null,
587
+ interaction: null,
588
+ pan: (_a = run.state.pan) !== null && _a !== void 0 ? _a : null,
589
+ emptySlots: slotFill !== null,
590
+ slotFill,
591
+ compose: (_b = run.state.compose) !== null && _b !== void 0 ? _b : null,
592
+ params: new URLSearchParams(),
593
+ });
594
+ const design = yield designControlsOf({
595
+ markup: (_c = picture.markup) !== null && _c !== void 0 ? _c : '',
596
+ frame: `[data-et-part~="${run.name}"]`,
597
+ viewport: size,
598
+ });
599
+ const app = yield queue.run((browser) => __awaiter(void 0, void 0, void 0, function* () {
600
+ const context = yield browser.newContext({ viewport: size, deviceScaleFactor: 1 });
601
+ try {
602
+ const { page, host } = yield (0, live_compare_1.openLivePage)({
603
+ context,
604
+ url,
605
+ size,
606
+ spec,
607
+ dir,
608
+ page: run.page,
609
+ state: run.state,
610
+ server: base,
611
+ checkout: target,
612
+ timeout: thumb_1.DRAW_TIMEOUT_MS,
613
+ });
614
+ yield (0, action_press_1.settle)(page, thumb_1.DRAW_TIMEOUT_MS);
615
+ return (yield page.evaluate((0, exports.liveControlsScriptOf)({ roots: [host, action_press_1.OVERLAY_ROOTS], frame: host, shell })));
616
+ }
617
+ finally {
618
+ yield context.close();
619
+ }
620
+ }));
621
+ if (app === null) {
622
+ pushLine({
623
+ page: run.name,
624
+ element: `(no ${shell} on the page)`,
625
+ input: null,
626
+ parts: [run.name],
627
+ failure: null,
628
+ });
629
+ return;
630
+ }
631
+ const relevant = (parts) => part === null || part === run.name || parts.includes(part);
632
+ const controls = yield Promise.all(app.map((control) => __awaiter(void 0, void 0, void 0, function* () {
633
+ var _a, _b, _c;
634
+ const drawn = (0, exports.nearestControlOf)(control, design);
635
+ const parts = [run.name, ...((_a = drawn === null || drawn === void 0 ? void 0 : drawn.parts) !== null && _a !== void 0 ? _a : [])];
636
+ const declared = (_b = drawn === null || drawn === void 0 ? void 0 : drawn.action) !== null && _b !== void 0 ? _b : null;
637
+ return {
638
+ app: control,
639
+ declared,
640
+ owner: declared === null ? null : yield ownerOf(declared.trim(), (_c = drawn === null || drawn === void 0 ? void 0 : drawn.parts) !== null && _c !== void 0 ? _c : []),
641
+ parts,
642
+ opener: null,
643
+ };
644
+ })));
645
+ const reached = yield check(run, controls.filter((control) => relevant(control.parts)));
646
+ const unique = [...new Map(reached.map((control) => [idOf(control.app), control])).values()];
647
+ yield check(run, unique.filter((control) => relevant(control.parts)));
648
+ }
649
+ catch (error) {
650
+ pushLine({
651
+ page: run.name,
652
+ element: '-',
653
+ input: null,
654
+ parts: [run.name],
655
+ failure: error instanceof live_compare_1.LiveError ? error.message : ((_d = messageOf(error).split('\n')[0]) !== null && _d !== void 0 ? _d : ''),
656
+ });
657
+ }
658
+ })));
659
+ const order = (line) => `${line.page}\n${line.element}\n${line.input === null ? '' : actions_1.ACTION_INPUTS.indexOf(line.input)}`;
660
+ return {
661
+ lines: [...lines.sort((a, b) => order(a).localeCompare(order(b))), ...(0, exports.liveDriftOf)(presses)].filter(kept),
662
+ };
663
+ }
664
+ catch (error) {
665
+ return messageOf(error);
666
+ }
667
+ finally {
668
+ yield (shooter === null || shooter === void 0 ? void 0 : shooter.close());
669
+ yield queue.close();
670
+ yield server.close();
671
+ }
672
+ });
673
+ exports.checkLiveActions = checkLiveActions;
674
+ //# sourceMappingURL=live-actions.js.map