@ethlete/cli 3.0.0-next.25 → 3.0.0-next.27

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 (592) hide show
  1. package/CHANGELOG.md +417 -0
  2. package/build-info.json +1 -0
  3. package/design/define-call.ts +99 -31
  4. package/design/define-part.ts +50 -3
  5. package/design/icon-sheet.ts +1 -1
  6. package/design/interaction-rows.ts +13 -6
  7. package/design/logo-sheet.ts +52 -0
  8. package/design/mark-part.ts +51 -1
  9. package/design/motion-drive.ts +215 -0
  10. package/design/motion-runtime.ts +14 -2
  11. package/design/motion-tokens.ts +177 -0
  12. package/design/token-sheet.ts +1 -1
  13. package/design/web/frame-fill.ts +4 -0
  14. package/design/web/frame-fit.ts +7 -0
  15. package/design/web/frame-scheme.ts +44 -0
  16. package/design/web/frame-surfaces.ts +294 -0
  17. package/design/web/frame.ts +162 -43
  18. package/design/web/surface-interactive.css +42 -0
  19. package/design/with-action.ts +29 -0
  20. package/package.json +3 -1
  21. package/src/index.js +9 -1
  22. package/src/index.js.map +1 -1
  23. package/src/lib/design/asset-shot.js +2 -2
  24. package/src/lib/design/asset-shot.js.map +1 -1
  25. package/src/lib/design/build-watch.d.ts +26 -0
  26. package/src/lib/design/build-watch.js +138 -0
  27. package/src/lib/design/build-watch.js.map +1 -0
  28. package/src/lib/design/calls-tsconfig.d.ts +2 -0
  29. package/src/lib/design/calls-tsconfig.js +10 -3
  30. package/src/lib/design/calls-tsconfig.js.map +1 -1
  31. package/src/lib/design/check.d.ts +1 -0
  32. package/src/lib/design/check.js +195 -13
  33. package/src/lib/design/check.js.map +1 -1
  34. package/src/lib/design/commit-hunks.d.ts +22 -0
  35. package/src/lib/design/commit-hunks.js +173 -0
  36. package/src/lib/design/commit-hunks.js.map +1 -0
  37. package/src/lib/design/contact-sheet.d.ts +9 -0
  38. package/src/lib/design/contact-sheet.js +38 -4
  39. package/src/lib/design/contact-sheet.js.map +1 -1
  40. package/src/lib/design/design-command.d.ts +2 -0
  41. package/src/lib/design/design-command.js +183 -15
  42. package/src/lib/design/design-command.js.map +1 -1
  43. package/src/lib/design/draw-ledger.d.ts +36 -0
  44. package/src/lib/design/draw-ledger.js +52 -0
  45. package/src/lib/design/draw-ledger.js.map +1 -0
  46. package/src/lib/design/force-interactions.d.ts +1 -1
  47. package/src/lib/design/force-interactions.js +4 -2
  48. package/src/lib/design/force-interactions.js.map +1 -1
  49. package/src/lib/design/inbox-command.js +9 -5
  50. package/src/lib/design/inbox-command.js.map +1 -1
  51. package/src/lib/design/mcp-command.d.ts +28 -3
  52. package/src/lib/design/mcp-command.js +134 -21
  53. package/src/lib/design/mcp-command.js.map +1 -1
  54. package/src/lib/design/merge-compare.d.ts +10 -2
  55. package/src/lib/design/merge-compare.js +63 -11
  56. package/src/lib/design/merge-compare.js.map +1 -1
  57. package/src/lib/design/motion-command.js +10 -16
  58. package/src/lib/design/motion-command.js.map +1 -1
  59. package/src/lib/design/motion-shot.js +3 -2
  60. package/src/lib/design/motion-shot.js.map +1 -1
  61. package/src/lib/design/new-call.js +19 -10
  62. package/src/lib/design/new-call.js.map +1 -1
  63. package/src/lib/design/part-marks.d.ts +3 -2
  64. package/src/lib/design/part-marks.js +13 -5
  65. package/src/lib/design/part-marks.js.map +1 -1
  66. package/src/lib/design/paths.d.ts +42 -0
  67. package/src/lib/design/paths.js +50 -1
  68. package/src/lib/design/paths.js.map +1 -1
  69. package/src/lib/design/product-command.d.ts +1 -1
  70. package/src/lib/design/product-command.js +12 -14
  71. package/src/lib/design/product-command.js.map +1 -1
  72. package/src/lib/design/ready-shots.d.ts +29 -3
  73. package/src/lib/design/ready-shots.js +105 -5
  74. package/src/lib/design/ready-shots.js.map +1 -1
  75. package/src/lib/design/render-packages.d.ts +9 -17
  76. package/src/lib/design/render-packages.js +25 -63
  77. package/src/lib/design/render-packages.js.map +1 -1
  78. package/src/lib/design/render-worker.js +2 -3
  79. package/src/lib/design/render-worker.js.map +1 -1
  80. package/src/lib/design/render.d.ts +2 -0
  81. package/src/lib/design/render.js +32 -7
  82. package/src/lib/design/render.js.map +1 -1
  83. package/src/lib/design/serve.d.ts +23 -3
  84. package/src/lib/design/serve.js +288 -35
  85. package/src/lib/design/serve.js.map +1 -1
  86. package/src/lib/design/server-identity.d.ts +36 -0
  87. package/src/lib/design/server-identity.js +68 -0
  88. package/src/lib/design/server-identity.js.map +1 -0
  89. package/src/lib/design/settle-frames.d.ts +4 -0
  90. package/src/lib/design/settle-frames.js +22 -0
  91. package/src/lib/design/settle-frames.js.map +1 -0
  92. package/src/lib/design/shot-command.d.ts +30 -6
  93. package/src/lib/design/shot-command.js +144 -56
  94. package/src/lib/design/shot-command.js.map +1 -1
  95. package/src/lib/design/shot-store.d.ts +24 -0
  96. package/src/lib/design/shot-store.js +120 -0
  97. package/src/lib/design/shot-store.js.map +1 -0
  98. package/src/lib/design/shot.d.ts +71 -1
  99. package/src/lib/design/shot.js +253 -40
  100. package/src/lib/design/shot.js.map +1 -1
  101. package/src/lib/design/sketch-command.d.ts +6 -1
  102. package/src/lib/design/sketch-command.js +452 -136
  103. package/src/lib/design/sketch-command.js.map +1 -1
  104. package/src/lib/design/ssr-shims.d.ts +2 -0
  105. package/src/lib/design/ssr-shims.js +12 -1
  106. package/src/lib/design/ssr-shims.js.map +1 -1
  107. package/src/lib/design/stale-cli-dist.d.ts +11 -0
  108. package/src/lib/design/stale-cli-dist.js +56 -0
  109. package/src/lib/design/stale-cli-dist.js.map +1 -0
  110. package/src/lib/design/stamp.d.ts +18 -1
  111. package/src/lib/design/stamp.js +53 -7
  112. package/src/lib/design/stamp.js.map +1 -1
  113. package/src/lib/design/started-by-studio.d.ts +1 -0
  114. package/src/lib/design/started-by-studio.js +6 -0
  115. package/src/lib/design/started-by-studio.js.map +1 -0
  116. package/src/lib/design/studio-api.d.ts +35 -4
  117. package/src/lib/design/studio-api.js +312 -41
  118. package/src/lib/design/studio-api.js.map +1 -1
  119. package/src/lib/design/system/accept-command.d.ts +39 -5
  120. package/src/lib/design/system/accept-command.js +109 -25
  121. package/src/lib/design/system/accept-command.js.map +1 -1
  122. package/src/lib/design/system/accepted-pictures.d.ts +83 -0
  123. package/src/lib/design/system/accepted-pictures.js +324 -0
  124. package/src/lib/design/system/accepted-pictures.js.map +1 -0
  125. package/src/lib/design/system/action-lost.d.ts +59 -0
  126. package/src/lib/design/system/action-lost.js +120 -0
  127. package/src/lib/design/system/action-lost.js.map +1 -0
  128. package/src/lib/design/system/action-press.d.ts +23 -0
  129. package/src/lib/design/system/action-press.js +76 -0
  130. package/src/lib/design/system/action-press.js.map +1 -0
  131. package/src/lib/design/system/action-undeclared.d.ts +34 -0
  132. package/src/lib/design/system/action-undeclared.js +81 -0
  133. package/src/lib/design/system/action-undeclared.js.map +1 -0
  134. package/src/lib/design/system/actions-command.d.ts +101 -0
  135. package/src/lib/design/system/actions-command.js +695 -0
  136. package/src/lib/design/system/actions-command.js.map +1 -0
  137. package/src/lib/design/system/actions.d.ts +158 -0
  138. package/src/lib/design/system/actions.js +295 -0
  139. package/src/lib/design/system/actions.js.map +1 -0
  140. package/src/lib/design/system/app-files.d.ts +10 -0
  141. package/src/lib/design/system/app-files.js +159 -0
  142. package/src/lib/design/system/app-files.js.map +1 -0
  143. package/src/lib/design/system/bespoke-controls.d.ts +30 -0
  144. package/src/lib/design/system/bespoke-controls.js +147 -0
  145. package/src/lib/design/system/bespoke-controls.js.map +1 -0
  146. package/src/lib/design/system/build-ready-contract.d.ts +27 -0
  147. package/src/lib/design/system/build-ready-contract.js +12 -0
  148. package/src/lib/design/system/build-ready-contract.js.map +1 -0
  149. package/src/lib/design/system/check-rules.d.ts +1 -0
  150. package/src/lib/design/system/check-rules.js +82 -0
  151. package/src/lib/design/system/check-rules.js.map +1 -0
  152. package/src/lib/design/system/check-system.d.ts +62 -3
  153. package/src/lib/design/system/check-system.js +527 -34
  154. package/src/lib/design/system/check-system.js.map +1 -1
  155. package/src/lib/design/system/colour.d.ts +4 -1
  156. package/src/lib/design/system/colour.js +54 -2
  157. package/src/lib/design/system/colour.js.map +1 -1
  158. package/src/lib/design/system/comments/comment.d.ts +4 -1
  159. package/src/lib/design/system/comments/comment.js +13 -4
  160. package/src/lib/design/system/comments/comment.js.map +1 -1
  161. package/src/lib/design/system/comments/inbox.js +2 -2
  162. package/src/lib/design/system/comments/inbox.js.map +1 -1
  163. package/src/lib/design/system/compare-command.d.ts +119 -0
  164. package/src/lib/design/system/compare-command.js +558 -0
  165. package/src/lib/design/system/compare-command.js.map +1 -0
  166. package/src/lib/design/system/complete-command.js +7 -3
  167. package/src/lib/design/system/complete-command.js.map +1 -1
  168. package/src/lib/design/system/complete.d.ts +99 -3
  169. package/src/lib/design/system/complete.js +358 -88
  170. package/src/lib/design/system/complete.js.map +1 -1
  171. package/src/lib/design/system/component-outputs.d.ts +20 -0
  172. package/src/lib/design/system/component-outputs.js +86 -0
  173. package/src/lib/design/system/component-outputs.js.map +1 -0
  174. package/src/lib/design/system/contrast-check.d.ts +6 -1
  175. package/src/lib/design/system/contrast-check.js +179 -13
  176. package/src/lib/design/system/contrast-check.js.map +1 -1
  177. package/src/lib/design/system/demo-backdrop.d.ts +11 -0
  178. package/src/lib/design/system/demo-backdrop.js +41 -0
  179. package/src/lib/design/system/demo-backdrop.js.map +1 -0
  180. package/src/lib/design/system/design-hash.d.ts +31 -0
  181. package/src/lib/design/system/design-hash.js +73 -0
  182. package/src/lib/design/system/design-hash.js.map +1 -0
  183. package/src/lib/design/system/disabled-interaction.d.ts +8 -0
  184. package/src/lib/design/system/disabled-interaction.js +37 -0
  185. package/src/lib/design/system/disabled-interaction.js.map +1 -0
  186. package/src/lib/design/system/dom-command.d.ts +36 -0
  187. package/src/lib/design/system/dom-command.js +175 -0
  188. package/src/lib/design/system/dom-command.js.map +1 -0
  189. package/src/lib/design/system/drawn-open-points.d.ts +38 -0
  190. package/src/lib/design/system/drawn-open-points.js +94 -0
  191. package/src/lib/design/system/drawn-open-points.js.map +1 -0
  192. package/src/lib/design/system/dropped-props.d.ts +25 -0
  193. package/src/lib/design/system/dropped-props.js +159 -0
  194. package/src/lib/design/system/dropped-props.js.map +1 -0
  195. package/src/lib/design/system/embedded-actions.d.ts +21 -0
  196. package/src/lib/design/system/embedded-actions.js +37 -0
  197. package/src/lib/design/system/embedded-actions.js.map +1 -0
  198. package/src/lib/design/system/exceptions.js +2 -1
  199. package/src/lib/design/system/exceptions.js.map +1 -1
  200. package/src/lib/design/system/flows/flow.js +2 -1
  201. package/src/lib/design/system/flows/flow.js.map +1 -1
  202. package/src/lib/design/system/frozen-animations.d.ts +13 -0
  203. package/src/lib/design/system/frozen-animations.js +51 -0
  204. package/src/lib/design/system/frozen-animations.js.map +1 -0
  205. package/src/lib/design/system/go-batch.d.ts +24 -0
  206. package/src/lib/design/system/go-batch.js +110 -0
  207. package/src/lib/design/system/go-batch.js.map +1 -0
  208. package/src/lib/design/system/go-command.d.ts +4 -0
  209. package/src/lib/design/system/go-command.js +64 -0
  210. package/src/lib/design/system/go-command.js.map +1 -0
  211. package/src/lib/design/system/go-guard.d.ts +26 -0
  212. package/src/lib/design/system/go-guard.js +70 -0
  213. package/src/lib/design/system/go-guard.js.map +1 -0
  214. package/src/lib/design/system/go-step.d.ts +13 -0
  215. package/src/lib/design/system/go-step.js +84 -0
  216. package/src/lib/design/system/go-step.js.map +1 -0
  217. package/src/lib/design/system/handoff.js +2 -1
  218. package/src/lib/design/system/handoff.js.map +1 -1
  219. package/src/lib/design/system/harness-build-cache.d.ts +35 -0
  220. package/src/lib/design/system/harness-build-cache.js +175 -0
  221. package/src/lib/design/system/harness-build-cache.js.map +1 -0
  222. package/src/lib/design/system/harness-command.d.ts +7 -0
  223. package/src/lib/design/system/harness-command.js +51 -0
  224. package/src/lib/design/system/harness-command.js.map +1 -0
  225. package/src/lib/design/system/harness-config.d.ts +9 -0
  226. package/src/lib/design/system/harness-config.js +65 -0
  227. package/src/lib/design/system/harness-config.js.map +1 -0
  228. package/src/lib/design/system/harness-map.d.ts +44 -0
  229. package/src/lib/design/system/harness-map.js +126 -0
  230. package/src/lib/design/system/harness-map.js.map +1 -0
  231. package/src/lib/design/system/harness-samples.d.ts +20 -0
  232. package/src/lib/design/system/harness-samples.js +92 -0
  233. package/src/lib/design/system/harness-samples.js.map +1 -0
  234. package/src/lib/design/system/harness-server.d.ts +40 -0
  235. package/src/lib/design/system/harness-server.js +296 -0
  236. package/src/lib/design/system/harness-server.js.map +1 -0
  237. package/src/lib/design/system/imports.js +14 -1
  238. package/src/lib/design/system/imports.js.map +1 -1
  239. package/src/lib/design/system/in-order-at-once.d.ts +6 -0
  240. package/src/lib/design/system/in-order-at-once.js +28 -0
  241. package/src/lib/design/system/in-order-at-once.js.map +1 -0
  242. package/src/lib/design/system/inventory-approval.js +2 -1
  243. package/src/lib/design/system/inventory-approval.js.map +1 -1
  244. package/src/lib/design/system/inventory.d.ts +13 -4
  245. package/src/lib/design/system/inventory.js +36 -7
  246. package/src/lib/design/system/inventory.js.map +1 -1
  247. package/src/lib/design/system/list-system.d.ts +8 -1
  248. package/src/lib/design/system/list-system.js +13 -3
  249. package/src/lib/design/system/list-system.js.map +1 -1
  250. package/src/lib/design/system/live-actions.d.ts +121 -0
  251. package/src/lib/design/system/live-actions.js +665 -0
  252. package/src/lib/design/system/live-actions.js.map +1 -0
  253. package/src/lib/design/system/live-compare.d.ts +136 -0
  254. package/src/lib/design/system/live-compare.js +441 -0
  255. package/src/lib/design/system/live-compare.js.map +1 -0
  256. package/src/lib/design/system/live-uncovered.d.ts +40 -0
  257. package/src/lib/design/system/live-uncovered.js +123 -0
  258. package/src/lib/design/system/live-uncovered.js.map +1 -0
  259. package/src/lib/design/system/nested-scroll.d.ts +7 -0
  260. package/src/lib/design/system/nested-scroll.js +25 -0
  261. package/src/lib/design/system/nested-scroll.js.map +1 -0
  262. package/src/lib/design/system/notes/note.js +2 -1
  263. package/src/lib/design/system/notes/note.js.map +1 -1
  264. package/src/lib/design/system/occluded.d.ts +13 -0
  265. package/src/lib/design/system/occluded.js +111 -0
  266. package/src/lib/design/system/occluded.js.map +1 -0
  267. package/src/lib/design/system/open-points.d.ts +119 -0
  268. package/src/lib/design/system/open-points.js +185 -0
  269. package/src/lib/design/system/open-points.js.map +1 -0
  270. package/src/lib/design/system/part-build-ready.d.ts +39 -0
  271. package/src/lib/design/system/part-build-ready.js +107 -0
  272. package/src/lib/design/system/part-build-ready.js.map +1 -0
  273. package/src/lib/design/system/part-command.js +2 -9
  274. package/src/lib/design/system/part-command.js.map +1 -1
  275. package/src/lib/design/system/part-compare.d.ts +123 -0
  276. package/src/lib/design/system/part-compare.js +396 -0
  277. package/src/lib/design/system/part-compare.js.map +1 -0
  278. package/src/lib/design/system/part-go.d.ts +70 -0
  279. package/src/lib/design/system/part-go.js +94 -0
  280. package/src/lib/design/system/part-go.js.map +1 -0
  281. package/src/lib/design/system/part-ready.d.ts +90 -0
  282. package/src/lib/design/system/part-ready.js +172 -0
  283. package/src/lib/design/system/part-ready.js.map +1 -0
  284. package/src/lib/design/system/part-task.d.ts +147 -0
  285. package/src/lib/design/system/part-task.js +285 -0
  286. package/src/lib/design/system/part-task.js.map +1 -0
  287. package/src/lib/design/system/pointer-focus.d.ts +81 -0
  288. package/src/lib/design/system/pointer-focus.js +152 -0
  289. package/src/lib/design/system/pointer-focus.js.map +1 -0
  290. package/src/lib/design/system/prettier.d.ts +10 -0
  291. package/src/lib/design/system/prettier.js +36 -0
  292. package/src/lib/design/system/prettier.js.map +1 -0
  293. package/src/lib/design/system/reach.d.ts +12 -0
  294. package/src/lib/design/system/reach.js +186 -0
  295. package/src/lib/design/system/reach.js.map +1 -0
  296. package/src/lib/design/system/reachable-controls.d.ts +6 -0
  297. package/src/lib/design/system/reachable-controls.js +19 -0
  298. package/src/lib/design/system/reachable-controls.js.map +1 -0
  299. package/src/lib/design/system/reachable-files.d.ts +14 -0
  300. package/src/lib/design/system/reachable-files.js +101 -0
  301. package/src/lib/design/system/reachable-files.js.map +1 -0
  302. package/src/lib/design/system/reached-state.d.ts +23 -0
  303. package/src/lib/design/system/reached-state.js +53 -0
  304. package/src/lib/design/system/reached-state.js.map +1 -0
  305. package/src/lib/design/system/read-open-points.d.ts +33 -0
  306. package/src/lib/design/system/read-open-points.js +110 -0
  307. package/src/lib/design/system/read-open-points.js.map +1 -0
  308. package/src/lib/design/system/ready-command.d.ts +11 -0
  309. package/src/lib/design/system/ready-command.js +82 -0
  310. package/src/lib/design/system/ready-command.js.map +1 -0
  311. package/src/lib/design/system/render-check.d.ts +52 -0
  312. package/src/lib/design/system/render-check.js +479 -60
  313. package/src/lib/design/system/render-check.js.map +1 -1
  314. package/src/lib/design/system/resolve-product.d.ts +2 -1
  315. package/src/lib/design/system/resolve-product.js +25 -3
  316. package/src/lib/design/system/resolve-product.js.map +1 -1
  317. package/src/lib/design/system/rules/app-spec.d.ts +30 -0
  318. package/src/lib/design/system/rules/app-spec.js +87 -0
  319. package/src/lib/design/system/rules/app-spec.js.map +1 -0
  320. package/src/lib/design/system/rules/canonical-class.d.ts +2 -0
  321. package/src/lib/design/system/rules/canonical-class.js +36 -110
  322. package/src/lib/design/system/rules/canonical-class.js.map +1 -1
  323. package/src/lib/design/system/rules/capability-place.d.ts +44 -0
  324. package/src/lib/design/system/rules/capability-place.js +116 -0
  325. package/src/lib/design/system/rules/capability-place.js.map +1 -0
  326. package/src/lib/design/system/rules/denied-class.d.ts +9 -0
  327. package/src/lib/design/system/rules/denied-class.js +121 -0
  328. package/src/lib/design/system/rules/denied-class.js.map +1 -0
  329. package/src/lib/design/system/rules/exemptions.d.ts +18 -0
  330. package/src/lib/design/system/rules/exemptions.js +18 -0
  331. package/src/lib/design/system/rules/exemptions.js.map +1 -0
  332. package/src/lib/design/system/rules/flow.js +1 -1
  333. package/src/lib/design/system/rules/flow.js.map +1 -1
  334. package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
  335. package/src/lib/design/system/rules/glued-interpolation.js +61 -0
  336. package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
  337. package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
  338. package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
  339. package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
  340. package/src/lib/design/system/rules/implemented-components.js +45 -0
  341. package/src/lib/design/system/rules/implemented-components.js.map +1 -0
  342. package/src/lib/design/system/rules/implements.d.ts +8 -0
  343. package/src/lib/design/system/rules/implements.js +48 -0
  344. package/src/lib/design/system/rules/implements.js.map +1 -0
  345. package/src/lib/design/system/rules/inline-svg.js +4 -1
  346. package/src/lib/design/system/rules/inline-svg.js.map +1 -1
  347. package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
  348. package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
  349. package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
  350. package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
  351. package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
  352. package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
  353. package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
  354. package/src/lib/design/system/rules/inline-ui.js +100 -0
  355. package/src/lib/design/system/rules/inline-ui.js.map +1 -0
  356. package/src/lib/design/system/rules/motion.d.ts +2 -0
  357. package/src/lib/design/system/rules/motion.js +35 -2
  358. package/src/lib/design/system/rules/motion.js.map +1 -1
  359. package/src/lib/design/system/rules/native-title.d.ts +7 -0
  360. package/src/lib/design/system/rules/native-title.js +64 -0
  361. package/src/lib/design/system/rules/native-title.js.map +1 -0
  362. package/src/lib/design/system/rules/option-values.d.ts +15 -0
  363. package/src/lib/design/system/rules/option-values.js +145 -0
  364. package/src/lib/design/system/rules/option-values.js.map +1 -0
  365. package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
  366. package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
  367. package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
  368. package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
  369. package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
  370. package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
  371. package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
  372. package/src/lib/design/system/rules/part-rewrite.js +125 -0
  373. package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
  374. package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
  375. package/src/lib/design/system/rules/sample-default-known.js +17 -0
  376. package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
  377. package/src/lib/design/system/rules/sample-default.d.ts +22 -0
  378. package/src/lib/design/system/rules/sample-default.js +92 -0
  379. package/src/lib/design/system/rules/sample-default.js.map +1 -0
  380. package/src/lib/design/system/rules/stale-replace.js +45 -3
  381. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  382. package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
  383. package/src/lib/design/system/rules/state-in-component.js +101 -0
  384. package/src/lib/design/system/rules/state-in-component.js.map +1 -0
  385. package/src/lib/design/system/rules/tailwind-classes.d.ts +51 -0
  386. package/src/lib/design/system/rules/tailwind-classes.js +232 -0
  387. package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
  388. package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
  389. package/src/lib/design/system/rules/top-level-await.js +62 -0
  390. package/src/lib/design/system/rules/top-level-await.js.map +1 -0
  391. package/src/lib/design/system/rules/unbound-input-known.d.ts +5 -0
  392. package/src/lib/design/system/rules/unbound-input-known.js +47 -0
  393. package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
  394. package/src/lib/design/system/rules/unbound-input.d.ts +22 -0
  395. package/src/lib/design/system/rules/unbound-input.js +61 -0
  396. package/src/lib/design/system/rules/unbound-input.js.map +1 -0
  397. package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
  398. package/src/lib/design/system/rules/uncovered-region.js +36 -0
  399. package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
  400. package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
  401. package/src/lib/design/system/rules/undefined-class.js +32 -0
  402. package/src/lib/design/system/rules/undefined-class.js.map +1 -0
  403. package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
  404. package/src/lib/design/system/rules/undefined-token.js +7 -61
  405. package/src/lib/design/system/rules/undefined-token.js.map +1 -1
  406. package/src/lib/design/system/rules/utility-css.d.ts +2 -1
  407. package/src/lib/design/system/rules/utility-css.js +29 -14
  408. package/src/lib/design/system/rules/utility-css.js.map +1 -1
  409. package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
  410. package/src/lib/design/system/rules/view-coverage.js +51 -0
  411. package/src/lib/design/system/rules/view-coverage.js.map +1 -0
  412. package/src/lib/design/system/rules/visible-change.d.ts +20 -0
  413. package/src/lib/design/system/rules/visible-change.js +48 -0
  414. package/src/lib/design/system/rules/visible-change.js.map +1 -0
  415. package/src/lib/design/system/sdk-errors.d.ts +14 -0
  416. package/src/lib/design/system/sdk-errors.js +38 -0
  417. package/src/lib/design/system/sdk-errors.js.map +1 -0
  418. package/src/lib/design/system/see-through.d.ts +12 -0
  419. package/src/lib/design/system/see-through.js +112 -0
  420. package/src/lib/design/system/see-through.js.map +1 -0
  421. package/src/lib/design/system/settled-panes.d.ts +18 -0
  422. package/src/lib/design/system/settled-panes.js +70 -0
  423. package/src/lib/design/system/settled-panes.js.map +1 -0
  424. package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
  425. package/src/lib/design/system/sketch/after-merge.js +51 -0
  426. package/src/lib/design/system/sketch/after-merge.js.map +1 -0
  427. package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
  428. package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
  429. package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
  430. package/src/lib/design/system/sketch/baseline.d.ts +29 -2
  431. package/src/lib/design/system/sketch/baseline.js +33 -9
  432. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  433. package/src/lib/design/system/sketch/check-sketches.d.ts +11 -0
  434. package/src/lib/design/system/sketch/check-sketches.js +54 -6
  435. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  436. package/src/lib/design/system/sketch/cli-args.d.ts +12 -2
  437. package/src/lib/design/system/sketch/cli-args.js +18 -3
  438. package/src/lib/design/system/sketch/cli-args.js.map +1 -1
  439. package/src/lib/design/system/sketch/edit-sketch.d.ts +21 -0
  440. package/src/lib/design/system/sketch/edit-sketch.js +117 -0
  441. package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
  442. package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
  443. package/src/lib/design/system/sketch/frame-budget.js +23 -0
  444. package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
  445. package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
  446. package/src/lib/design/system/sketch/identical-renders.js +137 -0
  447. package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
  448. package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
  449. package/src/lib/design/system/sketch/merge-shared.js +7 -10
  450. package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
  451. package/src/lib/design/system/sketch/merge-step.d.ts +35 -0
  452. package/src/lib/design/system/sketch/merge-step.js +98 -0
  453. package/src/lib/design/system/sketch/merge-step.js.map +1 -0
  454. package/src/lib/design/system/sketch/merge.d.ts +10 -3
  455. package/src/lib/design/system/sketch/merge.js +122 -17
  456. package/src/lib/design/system/sketch/merge.js.map +1 -1
  457. package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
  458. package/src/lib/design/system/sketch/merged-layout.js +57 -0
  459. package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
  460. package/src/lib/design/system/sketch/merged-parts.d.ts +41 -11
  461. package/src/lib/design/system/sketch/merged-parts.js +113 -50
  462. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  463. package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
  464. package/src/lib/design/system/sketch/no-visible-change.js +16 -6
  465. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  466. package/src/lib/design/system/sketch/part-definition.d.ts +56 -0
  467. package/src/lib/design/system/sketch/part-definition.js +129 -13
  468. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  469. package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
  470. package/src/lib/design/system/sketch/rebase-port.js +170 -0
  471. package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
  472. package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
  473. package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
  474. package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
  475. package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
  476. package/src/lib/design/system/sketch/sketch-check-worker.js +27 -0
  477. package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
  478. package/src/lib/design/system/sketch/sketch-checker.d.ts +27 -0
  479. package/src/lib/design/system/sketch/sketch-checker.js +99 -0
  480. package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
  481. package/src/lib/design/system/sketch/sketch.d.ts +78 -2
  482. package/src/lib/design/system/sketch/sketch.js +247 -54
  483. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  484. package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
  485. package/src/lib/design/system/sketch/stale-base.js +56 -0
  486. package/src/lib/design/system/sketch/stale-base.js.map +1 -0
  487. package/src/lib/design/system/sketch/unchanged-states.d.ts +36 -1
  488. package/src/lib/design/system/sketch/unchanged-states.js +60 -17
  489. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  490. package/src/lib/design/system/sketch/unused-closure.js +26 -4
  491. package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
  492. package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
  493. package/src/lib/design/system/sketch/unused-files.js +6 -3
  494. package/src/lib/design/system/sketch/unused-files.js.map +1 -1
  495. package/src/lib/design/system/sketch/viewed-shots.d.ts +24 -0
  496. package/src/lib/design/system/sketch/viewed-shots.js +61 -0
  497. package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
  498. package/src/lib/design/system/slow-checks.d.ts +40 -0
  499. package/src/lib/design/system/slow-checks.js +197 -0
  500. package/src/lib/design/system/slow-checks.js.map +1 -0
  501. package/src/lib/design/system/slow-run.d.ts +57 -0
  502. package/src/lib/design/system/slow-run.js +253 -0
  503. package/src/lib/design/system/slow-run.js.map +1 -0
  504. package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
  505. package/src/lib/design/system/stale-design-mocks.js +59 -0
  506. package/src/lib/design/system/stale-design-mocks.js.map +1 -0
  507. package/src/lib/design/system/stale-dist.d.ts +25 -0
  508. package/src/lib/design/system/stale-dist.js +91 -0
  509. package/src/lib/design/system/stale-dist.js.map +1 -0
  510. package/src/lib/design/system/stale-parts.d.ts +30 -0
  511. package/src/lib/design/system/stale-parts.js +106 -0
  512. package/src/lib/design/system/stale-parts.js.map +1 -0
  513. package/src/lib/design/system/surface-nesting.d.ts +11 -0
  514. package/src/lib/design/system/surface-nesting.js +86 -0
  515. package/src/lib/design/system/surface-nesting.js.map +1 -0
  516. package/src/lib/design/system/system-command.js +8 -6
  517. package/src/lib/design/system/system-command.js.map +1 -1
  518. package/src/lib/design/system/system-modules.d.ts +16 -1
  519. package/src/lib/design/system/system-modules.js +18 -2
  520. package/src/lib/design/system/system-modules.js.map +1 -1
  521. package/src/lib/design/system/system-tsconfig.js +2 -2
  522. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  523. package/src/lib/design/system/task-command.d.ts +51 -0
  524. package/src/lib/design/system/task-command.js +233 -0
  525. package/src/lib/design/system/task-command.js.map +1 -0
  526. package/src/lib/design/system/theming-text.d.ts +2 -0
  527. package/src/lib/design/system/theming-text.js +6 -0
  528. package/src/lib/design/system/theming-text.js.map +1 -0
  529. package/src/lib/design/system/tom-confirm.d.ts +40 -0
  530. package/src/lib/design/system/tom-confirm.js +55 -0
  531. package/src/lib/design/system/tom-confirm.js.map +1 -0
  532. package/src/lib/design/system/touched-parts.d.ts +16 -0
  533. package/src/lib/design/system/touched-parts.js +122 -0
  534. package/src/lib/design/system/touched-parts.js.map +1 -0
  535. package/src/lib/design/system/ts-source.d.ts +5 -0
  536. package/src/lib/design/system/ts-source.js +35 -4
  537. package/src/lib/design/system/ts-source.js.map +1 -1
  538. package/src/lib/design/system/unchanged-rows.d.ts +15 -0
  539. package/src/lib/design/system/unchanged-rows.js +134 -0
  540. package/src/lib/design/system/unchanged-rows.js.map +1 -0
  541. package/src/lib/design/system/uncommitted-decisions.d.ts +6 -0
  542. package/src/lib/design/system/uncommitted-decisions.js +38 -0
  543. package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
  544. package/src/lib/design/system/uncovered-regions.d.ts +61 -0
  545. package/src/lib/design/system/uncovered-regions.js +171 -0
  546. package/src/lib/design/system/uncovered-regions.js.map +1 -0
  547. package/src/lib/design/system/unused-base-parts.d.ts +7 -0
  548. package/src/lib/design/system/unused-base-parts.js +76 -0
  549. package/src/lib/design/system/unused-base-parts.js.map +1 -0
  550. package/src/lib/design/system/visible-change-command.d.ts +48 -0
  551. package/src/lib/design/system/visible-change-command.js +308 -0
  552. package/src/lib/design/system/visible-change-command.js.map +1 -0
  553. package/src/lib/design/system/visible-change-parts.d.ts +28 -0
  554. package/src/lib/design/system/visible-change-parts.js +96 -0
  555. package/src/lib/design/system/visible-change-parts.js.map +1 -0
  556. package/src/lib/design/system/visible-change.d.ts +82 -0
  557. package/src/lib/design/system/visible-change.js +149 -0
  558. package/src/lib/design/system/visible-change.js.map +1 -0
  559. package/src/lib/design/thumb.d.ts +50 -6
  560. package/src/lib/design/thumb.js +154 -54
  561. package/src/lib/design/thumb.js.map +1 -1
  562. package/src/lib/design/typecheck.d.ts +1 -1
  563. package/src/lib/design/typecheck.js +3 -3
  564. package/src/lib/design/typecheck.js.map +1 -1
  565. package/src/lib/design/unstable-cells.d.ts +23 -0
  566. package/src/lib/design/unstable-cells.js +40 -0
  567. package/src/lib/design/unstable-cells.js.map +1 -0
  568. package/src/lib/design/variant-diff.js +1 -1
  569. package/src/lib/design/variant-diff.js.map +1 -1
  570. package/src/lib/design/wait.d.ts +15 -0
  571. package/src/lib/design/wait.js +30 -0
  572. package/src/lib/design/wait.js.map +1 -0
  573. package/src/lib/json-file.d.ts +11 -0
  574. package/src/lib/json-file.js +21 -0
  575. package/src/lib/json-file.js.map +1 -0
  576. package/src/lib/source-hash.d.ts +7 -0
  577. package/src/lib/source-hash.js +62 -0
  578. package/src/lib/source-hash.js.map +1 -0
  579. package/src/lib/update/agent-setup.js +2 -1
  580. package/src/lib/update/agent-setup.js.map +1 -1
  581. package/src/lib/update/migration-manifest.d.ts +12 -0
  582. package/src/lib/update/migration-manifest.js +13 -0
  583. package/src/lib/update/migration-manifest.js.map +1 -1
  584. package/src/lib/update/migration-record.js +2 -1
  585. package/src/lib/update/migration-record.js.map +1 -1
  586. package/src/lib/update/pending.js +2 -1
  587. package/src/lib/update/pending.js.map +1 -1
  588. package/src/lib/update/run-migrations.d.ts +3 -2
  589. package/src/lib/update/run-migrations.js +38 -5
  590. package/src/lib/update/run-migrations.js.map +1 -1
  591. package/src/lib/update/tasks.js +2 -1
  592. package/src/lib/update/tasks.js.map +1 -1
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REACH_STATEMENTS = exports.UNREACHABLE_RULE = exports.COVERED_RULE = void 0;
4
+ const see_through_1 = require("./see-through");
5
+ /** The rule a declared action or a projected region breaks when an opaque element of another subtree paints above it. */
6
+ exports.COVERED_RULE = 'COVERED';
7
+ /** The rule a declared action breaks when the state that draws it hides it, fades it out, shrinks it to nothing or buries it. */
8
+ exports.UNREACHABLE_RULE = 'UNREACHABLE';
9
+ const ACTION_SAMPLES_PER_SIDE = 3;
10
+ const REGION_SAMPLES_PER_SIDE = 5;
11
+ const OPAQUE = 0.95;
12
+ const PAN_STEP = 32;
13
+ const PAN_MAX_STEPS = 200;
14
+ /**
15
+ * The statements of the reach check inside the frame script of `render-check`. They use `root`, `report` and
16
+ * `pathOf` of that script. Each `data-et-action` element must be shown, sized and hit by a click at some point of its
17
+ * unclipped box; each point where an opaque element of another subtree paints above an action, or above a projected
18
+ * region nested in another projected region from inside that outer region, is a cover. An action inside such a nested
19
+ * region is preview content and is not judged. The click pass runs before `pointer-events` is forced on for the paint pass, and the force is removed.
20
+ */
21
+ exports.REACH_STATEMENTS = `
22
+ {
23
+ const floating = ${JSON.stringify(see_through_1.OVERLAY_PANE_SELECTOR + ', [role="tooltip"]')};
24
+ const alphaOf = (colour) => {
25
+ if (colour === 'transparent') return 0;
26
+ const slash = /\\/\\s*([\\d.]+)(%?)\\s*\\)$/.exec(colour);
27
+ if (slash) return parseFloat(slash[1]) / (slash[2] ? 100 : 1);
28
+ const rgba = /^rgba\\([^,]+,[^,]+,[^,]+,\\s*([\\d.]+)\\s*\\)$/.exec(colour);
29
+ return rgba ? parseFloat(rgba[1]) : 1;
30
+ };
31
+ const opacityOf = (element) => {
32
+ let opacity = 1;
33
+ for (let at = element; at; at = at.parentElement) opacity *= parseFloat(getComputedStyle(at).opacity);
34
+ return opacity;
35
+ };
36
+ const solid = (element) => {
37
+ const style = getComputedStyle(element);
38
+ const paints = element.matches('img, video, canvas, iframe, object, embed') || style.backgroundImage !== 'none' || alphaOf(style.backgroundColor) >= ${OPAQUE};
39
+ return paints && style.visibility === 'visible' && opacityOf(element) >= ${OPAQUE};
40
+ };
41
+ const layer = '[aria-modal="true"]';
42
+ let passive = new Set();
43
+ const coverOf = (hit, target, opaqueOnly, within) => {
44
+ if (!hit || target.contains(hit) || hit.contains(target) || hit.closest(floating) || hit.closest(layer) || !within.contains(hit)) return null;
45
+ if (passive.has(hit) && hit.closest('[aria-hidden="true"]')) return null;
46
+ const skip = hit.closest('[data-et-skip~="COVERED"]');
47
+ if (skip && !skip.contains(target)) return null;
48
+ for (let at = hit; at && !at.contains(target); at = at.parentElement) if (!opaqueOnly || solid(at)) return at;
49
+ return null;
50
+ };
51
+ const visibleBoxOf = (element) => {
52
+ const rect = element.getBoundingClientRect();
53
+ const box = { left: Math.max(rect.left, 0), top: Math.max(rect.top, 0), right: Math.min(rect.right, innerWidth), bottom: Math.min(rect.bottom, innerHeight) };
54
+ for (let at = element.parentElement; at && at !== document.documentElement; at = at.parentElement) {
55
+ const style = getComputedStyle(at);
56
+ if (style.overflowX === 'visible' && style.overflowY === 'visible') continue;
57
+ const clip = at.getBoundingClientRect();
58
+ const left = clip.left + at.clientLeft;
59
+ const top = clip.top + at.clientTop;
60
+ if (style.overflowX !== 'visible') [box.left, box.right] = [Math.max(box.left, left), Math.min(box.right, left + at.clientWidth)];
61
+ if (style.overflowY !== 'visible') [box.top, box.bottom] = [Math.max(box.top, top), Math.min(box.bottom, top + at.clientHeight)];
62
+ }
63
+ return box.right - box.left > 2 && box.bottom - box.top > 2 ? box : null;
64
+ };
65
+ const pointsOf = (box, perSide) => {
66
+ const points = [];
67
+ for (let x = 0; x < perSide; x++)
68
+ for (let y = 0; y < perSide; y++)
69
+ points.push([box.left + 1 + ((box.right - box.left - 2) * (x + 0.5)) / perSide, box.top + 1 + ((box.bottom - box.top - 2) * (y + 0.5)) / perSide]);
70
+ return points;
71
+ };
72
+ const coversOf = (target, box, perSide, opaqueOnly, within = document.documentElement) => {
73
+ const covers = new Map();
74
+ const points = pointsOf(box, perSide);
75
+ for (const [x, y] of points) {
76
+ const cover = coverOf(document.elementFromPoint(x, y), target, opaqueOnly, within);
77
+ if (cover) covers.set(cover, (covers.get(cover) ?? 0) + 1);
78
+ }
79
+ const hits = [...covers.values()].reduce((sum, count) => sum + count, 0);
80
+ const most = [...covers.entries()].sort((a, b) => b[1] - a[1])[0]?.[0] ?? null;
81
+ return { hits, total: points.length, most };
82
+ };
83
+ const labelOf = (element) => {
84
+ const text = (element.getAttribute('aria-label') || element.textContent || '').trim().replace(/\\s+/g, ' ');
85
+ const short = text.length > 32 ? text.slice(0, 31) + '…' : text;
86
+ return (short ? '"' + short + '" ' : '') + '(' + element.getAttribute('data-et-action') + ')';
87
+ };
88
+ const hiddenOf = (element) => {
89
+ let gone = null;
90
+ for (let at = element; at && at !== root; at = at.parentElement) {
91
+ if (at.hasAttribute('hidden') || at.matches('template')) return { skip: true };
92
+ if (!gone && getComputedStyle(at).display === 'none') gone = at;
93
+ }
94
+ if (gone) return { why: 'not displayed (display: none on ' + pathOf(gone) + ')' };
95
+ const style = getComputedStyle(element);
96
+ if (style.visibility !== 'visible') return { why: 'hidden (visibility: ' + style.visibility + ')' };
97
+ for (let at = element; at && at !== root; at = at.parentElement)
98
+ if (parseFloat(getComputedStyle(at).opacity) === 0) return { why: 'invisible (opacity 0 on ' + pathOf(at) + ')' };
99
+ const rect = element.getBoundingClientRect();
100
+ if (rect.width < 1 || rect.height < 1) return { why: 'zero-size (' + Math.round(rect.width) + 'x' + Math.round(rect.height) + ')' };
101
+ if (style.pointerEvents === 'none') return { why: 'not clickable (pointer-events: none)' };
102
+ return null;
103
+ };
104
+ const previewed = (element) => element.closest('[data-et-projected]')?.parentElement?.closest('[data-et-projected]');
105
+ const actions = reachableControlsOf(root, '[data-et-action]', true).filter((element) => !previewed(element));
106
+ const shownActions = [];
107
+ for (const element of actions) {
108
+ const hidden = hiddenOf(element);
109
+ if (hidden?.skip) continue;
110
+ if (hidden) report('${exports.UNREACHABLE_RULE}', element, labelOf(element) + ' is ' + hidden.why + ' in a state that declares it, so it can not be pressed');
111
+ else shownActions.push(element);
112
+ }
113
+ const force = document.createElement('style');
114
+ force.textContent = '* { pointer-events: auto !important; }';
115
+ const judge = (pose) => {
116
+ passive = new Set([...root.querySelectorAll('*')].filter((element) => getComputedStyle(element).pointerEvents === 'none'));
117
+ const sampled = [];
118
+ for (const element of shownActions) {
119
+ const box = visibleBoxOf(element);
120
+ if (box) sampled.push({ element, points: pointsOf(box, ${ACTION_SAMPLES_PER_SIDE}).map((point) => ({ point, click: null, cover: null })) });
121
+ }
122
+ for (const { points, element } of sampled)
123
+ for (const sample of points) sample.click = coverOf(document.elementFromPoint(...sample.point), element, false, document.documentElement);
124
+ document.head.append(force);
125
+ try {
126
+ for (const { points, element } of sampled)
127
+ for (const sample of points) sample.cover = coverOf(document.elementFromPoint(...sample.point), element, true, document.documentElement) ?? sample.click;
128
+ } finally {
129
+ force.remove();
130
+ }
131
+ for (const { element, points } of sampled) {
132
+ const counts = new Map();
133
+ for (const { cover } of points) if (cover) counts.set(cover, (counts.get(cover) ?? 0) + 1);
134
+ const hits = [...counts.values()].reduce((sum, count) => sum + count, 0);
135
+ if (hits === 0) continue;
136
+ const most = [...counts.entries()].sort((a, b) => b[1] - a[1])[0][0];
137
+ if (points.every(({ click }) => click)) {
138
+ report('${exports.UNREACHABLE_RULE}', element, labelOf(element) + ' is covered: a click at any point of it lands on ' + pathOf(most) + pose);
139
+ continue;
140
+ }
141
+ const under = solid(most) ? 'the opaque ' + pathOf(most) : pathOf(most) + ', which takes the click there';
142
+ report('${exports.COVERED_RULE}', element, labelOf(element) + ': ' + hits + ' of ' + points.length + ' points lie under ' + under + pose);
143
+ }
144
+ };
145
+ judge('');
146
+ const placesOf = (elements) => elements.map((element) => element.getBoundingClientRect()).map((rect) => [rect.left, rect.top]);
147
+ const wheel = (canvas, x, y) => canvas.dispatchEvent(new WheelEvent('wheel', { deltaX: x, deltaY: y, bubbles: true, cancelable: true }));
148
+ const canvases = new Set();
149
+ for (const element of shownActions)
150
+ for (let at = element.parentElement; at && at !== root; at = at.parentElement) {
151
+ const style = getComputedStyle(at);
152
+ if (style.overflowX !== 'visible' || style.overflowY !== 'visible') canvases.add(at);
153
+ }
154
+ for (const canvas of canvases) {
155
+ const inside = shownActions.filter((element) => canvas.contains(element));
156
+ for (const [dx, dy, way] of [[1, 0, 'right'], [-1, 0, 'left'], [0, 1, 'down'], [0, -1, 'up']]) {
157
+ const start = placesOf(inside);
158
+ for (let step = 1; step <= ${PAN_MAX_STEPS}; step++) {
159
+ const before = placesOf(inside).join(' ');
160
+ wheel(canvas, dx * ${PAN_STEP}, dy * ${PAN_STEP});
161
+ if (placesOf(inside).join(' ') === before) break;
162
+ judge(' when ' + pathOf(canvas) + ' is panned ' + step * ${PAN_STEP} + 'px ' + way);
163
+ }
164
+ const back = placesOf(inside)
165
+ .map(([left, top], index) => [left - start[index][0], top - start[index][1]])
166
+ .sort((a, b) => Math.abs(b[0]) + Math.abs(b[1]) - Math.abs(a[0]) - Math.abs(a[1]))[0];
167
+ if (back[0] || back[1]) wheel(canvas, back[0], back[1]);
168
+ }
169
+ }
170
+ document.head.append(force);
171
+ try {
172
+ for (const element of root.querySelectorAll('[data-et-projected]')) {
173
+ const outer = element.parentElement?.closest('[data-et-projected]');
174
+ if (!outer || element.closest('[inert], [aria-hidden="true"]') || element.getClientRects().length === 0) continue;
175
+ const box = visibleBoxOf(element);
176
+ if (!box) continue;
177
+ const covered = coversOf(element, box, ${REGION_SAMPLES_PER_SIDE}, true, outer);
178
+ if (covered.hits > 0)
179
+ report('${exports.COVERED_RULE}', element, 'the projected region "' + element.getAttribute('data-et-projected') + '": ' + covered.hits + ' of ' + covered.total + ' points lie under the opaque ' + pathOf(covered.most));
180
+ }
181
+ } finally {
182
+ force.remove();
183
+ }
184
+ }
185
+ `;
186
+ //# sourceMappingURL=reach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reach.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/reach.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AAEtD,yHAAyH;AAC5G,QAAA,YAAY,GAAG,SAAS,CAAC;AAEtC,iIAAiI;AACpH,QAAA,gBAAgB,GAAG,aAAa,CAAC;AAE9C,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;;;GAMG;AACU,QAAA,gBAAgB,GAAG;;uBAET,IAAI,CAAC,SAAS,CAAC,mCAAqB,GAAG,oBAAoB,CAAC;;;;;;;;;;;;;;;6JAe0E,MAAM;iFAClF,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAuE3D,wBAAgB;;;;;;;;;;iEAUqB,uBAAuB;;;;;;;;;;;;;;;;;;oBAkBpE,wBAAgB;;;;kBAIlB,oBAAY;;;;;;;;;;;;;;;;qCAgBO,aAAa;;+BAEnB,QAAQ,UAAU,QAAQ;;qEAEY,QAAQ;;;;;;;;;;;;;;;iDAe5B,uBAAuB;;oBAEpD,oBAAY;;;;;;CAM/B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * In-page statements that define `reachableControlsOf(scope, selector, keepHidden)`: the elements of `scope` matching
3
+ * `selector` that a render rule may judge. Subtrees under `[inert]` or `[aria-hidden="true"]` never count; elements
4
+ * under `hidden` or `display: none` are dropped unless `keepHidden` is set, for rules that report them as unreachable.
5
+ */
6
+ export declare const REACHABLE_CONTROLS_STATEMENTS = "\n const reachableControlsOf = (scope, selector, keepHidden) =>\n [...scope.querySelectorAll(selector)].filter((control) => {\n if (control.closest('[inert], [aria-hidden=\"true\"]')) return false;\n if (keepHidden) return true;\n for (let at = control; at && at !== scope.parentElement; at = at.parentElement)\n if (at.hasAttribute('hidden') || getComputedStyle(at).display === 'none') return false;\n return true;\n });\n";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REACHABLE_CONTROLS_STATEMENTS = void 0;
4
+ /**
5
+ * In-page statements that define `reachableControlsOf(scope, selector, keepHidden)`: the elements of `scope` matching
6
+ * `selector` that a render rule may judge. Subtrees under `[inert]` or `[aria-hidden="true"]` never count; elements
7
+ * under `hidden` or `display: none` are dropped unless `keepHidden` is set, for rules that report them as unreachable.
8
+ */
9
+ exports.REACHABLE_CONTROLS_STATEMENTS = `
10
+ const reachableControlsOf = (scope, selector, keepHidden) =>
11
+ [...scope.querySelectorAll(selector)].filter((control) => {
12
+ if (control.closest('[inert], [aria-hidden="true"]')) return false;
13
+ if (keepHidden) return true;
14
+ for (let at = control; at && at !== scope.parentElement; at = at.parentElement)
15
+ if (at.hasAttribute('hidden') || getComputedStyle(at).display === 'none') return false;
16
+ return true;
17
+ });
18
+ `;
19
+ //# sourceMappingURL=reachable-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reachable-controls.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/reachable-controls.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,6BAA6B,GAAG;;;;;;;;;CAS5C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ProductSource } from './base';
2
+ import { SharedDirs } from './imports';
3
+ import { ResolvedPart, ResolvedProduct } from './resolve-product';
4
+ export declare const repoRootOf: (source: ProductSource) => string;
5
+ /** The source file of an `@ethlete/<lib>/design[/<path>]` specifier in the repo at `root`, or `null` for any other specifier. */
6
+ export declare const sdkDesignFileOf: (root: string, specifier: string) => string | null;
7
+ /**
8
+ * The files the parts in `from` reach through relative, shared and system imports, with their
9
+ * sources, and the `@ethlete/<lib>/design` module files they reach. `from` defaults to every part.
10
+ */
11
+ export declare const reachableFilesOf: (product: ResolvedProduct & SharedDirs, from?: ResolvedPart[]) => {
12
+ files: Map<string, string>;
13
+ sdkDesign: Map<string, string>;
14
+ };
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.reachableFilesOf = exports.sdkDesignFileOf = exports.repoRootOf = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const postcss_1 = __importDefault(require("postcss"));
10
+ const vite_paths_1 = require("../vite-paths");
11
+ const imports_1 = require("./imports");
12
+ const resolve_product_1 = require("./resolve-product");
13
+ const ts_source_1 = require("./ts-source");
14
+ const SDK_DESIGN_MODULE = /^@ethlete\/([\w-]+)\/design((?:\/[\w-]+)*)$/u;
15
+ const repoRootOf = (source) => (0, path_1.resolve)((0, path_1.dirname)(source.configFile), '../..');
16
+ exports.repoRootOf = repoRootOf;
17
+ const stylesheetImportsOf = (css) => {
18
+ const imports = [];
19
+ try {
20
+ postcss_1.default.parse(css).walkAtRules('import', (rule) => {
21
+ var _a;
22
+ const match = /^(?:url\(\s*)?(?:['"]([^'"]+)['"]|([^'"\s)]+))/u.exec(rule.params.trim());
23
+ const specifier = (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : match === null || match === void 0 ? void 0 : match[2];
24
+ if (specifier)
25
+ imports.push(specifier);
26
+ });
27
+ }
28
+ catch (_a) {
29
+ return [];
30
+ }
31
+ return imports;
32
+ };
33
+ const relativeFileOf = (file, specifier) => {
34
+ var _a;
35
+ const path = (0, path_1.resolve)((0, path_1.dirname)(file), (_a = specifier.split('?')[0]) !== null && _a !== void 0 ? _a : specifier);
36
+ return path.endsWith('.css') ? ((0, fs_1.existsSync)(path) ? path : null) : (0, vite_paths_1.sourceFileOf)(path);
37
+ };
38
+ /** The source file of an `@ethlete/<lib>/design[/<path>]` specifier in the repo at `root`, or `null` for any other specifier. */
39
+ const sdkDesignFileOf = (root, specifier) => {
40
+ var _a, _b;
41
+ const match = SDK_DESIGN_MODULE.exec(specifier);
42
+ return match ? (0, vite_paths_1.sourceFileOf)((0, path_1.resolve)(root, 'libs', (_a = match[1]) !== null && _a !== void 0 ? _a : '', `design${(_b = match[2]) !== null && _b !== void 0 ? _b : ''}`)) : null;
43
+ };
44
+ exports.sdkDesignFileOf = sdkDesignFileOf;
45
+ const sdkDesignFilesOf = (root, specifiers) => {
46
+ const files = new Map();
47
+ const queue = specifiers.flatMap((specifier) => { var _a; return (_a = (0, exports.sdkDesignFileOf)(root, specifier)) !== null && _a !== void 0 ? _a : []; });
48
+ for (let file = queue.shift(); file !== undefined; file = queue.shift()) {
49
+ if (files.has(file) || !(0, fs_1.existsSync)(file))
50
+ continue;
51
+ const source = (0, fs_1.readFileSync)(file, 'utf8');
52
+ files.set(file, source);
53
+ const imports = file.endsWith('.css') ? stylesheetImportsOf(source) : (0, ts_source_1.importsOf)(source);
54
+ for (const specifier of imports) {
55
+ const found = specifier.startsWith('.') ? relativeFileOf(file, specifier) : (0, exports.sdkDesignFileOf)(root, specifier);
56
+ if (found && !files.has(found))
57
+ queue.push(found);
58
+ }
59
+ }
60
+ return files;
61
+ };
62
+ /**
63
+ * The files the parts in `from` reach through relative, shared and system imports, with their
64
+ * sources, and the `@ethlete/<lib>/design` module files they reach. `from` defaults to every part.
65
+ */
66
+ const reachableFilesOf = (product, from = product.parts) => {
67
+ var _a, _b;
68
+ const parts = new Map(product.parts.map((part) => [(0, resolve_product_1.partKeyOf)(part), part]));
69
+ const files = new Map();
70
+ const packages = new Set();
71
+ const queue = from.flatMap((part) => [part.file, ...(part.css ? [part.css] : [])]);
72
+ for (let file = queue.shift(); file !== undefined; file = queue.shift()) {
73
+ if (files.has(file) || !(0, fs_1.existsSync)(file))
74
+ continue;
75
+ const source = (0, fs_1.readFileSync)(file, 'utf8');
76
+ files.set(file, source);
77
+ const specifiers = file.endsWith('.css') ? stylesheetImportsOf(source) : (0, ts_source_1.importsOf)(source);
78
+ for (const specifier of specifiers) {
79
+ const imported = (0, imports_1.classifyImport)(specifier);
80
+ let found = null;
81
+ if (imported.kind === 'relative') {
82
+ found = relativeFileOf(file, specifier);
83
+ }
84
+ else if (imported.kind === 'other') {
85
+ packages.add(specifier);
86
+ }
87
+ else if (imported.kind === 'shared') {
88
+ found = (0, imports_1.sharedFileOf)({ dirs: (0, imports_1.sharedDirsOf)(product), path: imported.path });
89
+ }
90
+ else if (imported.kind === 'part') {
91
+ const part = parts.get((0, resolve_product_1.partKeyOf)(imported));
92
+ found = imported.stylesheet ? ((_a = part === null || part === void 0 ? void 0 : part.css) !== null && _a !== void 0 ? _a : null) : ((_b = part === null || part === void 0 ? void 0 : part.file) !== null && _b !== void 0 ? _b : null);
93
+ }
94
+ if (found && !files.has(found))
95
+ queue.push(found);
96
+ }
97
+ }
98
+ return { files, sdkDesign: sdkDesignFilesOf((0, exports.repoRootOf)(product), [...packages]) };
99
+ };
100
+ exports.reachableFilesOf = reachableFilesOf;
101
+ //# sourceMappingURL=reachable-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reachable-files.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/reachable-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { PixelCompare } from './part-compare';
2
+ /**
3
+ * What an app drawing that missed `goal` reached instead: the declared state it matches exactly, or the closest one by
4
+ * differing pixels. `compare` compares the app drawing with one state's design; a state it fails to draw is skipped.
5
+ */
6
+ export declare const reachedStateOf: (options: {
7
+ goal: string;
8
+ states: readonly string[];
9
+ compare: (state: string) => Promise<PixelCompare | null>;
10
+ }) => Promise<string>;
11
+ /**
12
+ * What a live page that missed `goal` reached instead, read from its `aria-expanded` controls: the declared states whose
13
+ * drawn controls it all shows, or the closest one by differing controls. A state that draws none is never reached.
14
+ */
15
+ export declare const reachedExpandedStateOf: (options: {
16
+ goal: string;
17
+ states: readonly string[];
18
+ expectedOf: (state: string) => Promise<Record<string, string>>;
19
+ after: readonly {
20
+ key: string;
21
+ expanded: string | null;
22
+ }[];
23
+ }) => Promise<string>;
@@ -0,0 +1,53 @@
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.reachedExpandedStateOf = exports.reachedStateOf = void 0;
13
+ /**
14
+ * What an app drawing that missed `goal` reached instead: the declared state it matches exactly, or the closest one by
15
+ * differing pixels. `compare` compares the app drawing with one state's design; a state it fails to draw is skipped.
16
+ */
17
+ const reachedStateOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const { goal, states, compare } = options;
19
+ const compared = yield Promise.all(states.map((state) => __awaiter(void 0, void 0, void 0, function* () { return ({ state, result: yield compare(state).catch(() => null) }); })));
20
+ const exact = compared.find(({ state, result }) => state !== goal && (result === null || result === void 0 ? void 0 : result.kind) === 'ok');
21
+ if (exact)
22
+ return `reaches state ${exact.state} instead`;
23
+ const closest = compared
24
+ .flatMap(({ state, result }) => ((result === null || result === void 0 ? void 0 : result.kind) === 'diff' ? [{ state, pixels: result.pixels }] : []))
25
+ .sort((a, b) => a.pixels - b.pixels)[0];
26
+ return closest
27
+ ? `reaches no declared state (closest ${closest.state}, ${closest.pixels} px)`
28
+ : 'reaches no declared state';
29
+ });
30
+ exports.reachedStateOf = reachedStateOf;
31
+ /**
32
+ * What a live page that missed `goal` reached instead, read from its `aria-expanded` controls: the declared states whose
33
+ * drawn controls it all shows, or the closest one by differing controls. A state that draws none is never reached.
34
+ */
35
+ const reachedExpandedStateOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const { goal, states, expectedOf, after } = options;
37
+ const compared = (yield Promise.all(states.map((state) => __awaiter(void 0, void 0, void 0, function* () { return ({ state, expected: yield expectedOf(state).catch(() => null) }); })))).flatMap(({ state, expected }) => {
38
+ const keys = Object.keys(expected !== null && expected !== void 0 ? expected : {});
39
+ if (!expected || keys.length === 0)
40
+ return [];
41
+ const differing = keys.filter((key) => { var _a, _b; return ((_b = (_a = after.find((control) => control.key === key)) === null || _a === void 0 ? void 0 : _a.expanded) !== null && _b !== void 0 ? _b : 'absent') !== expected[key]; }).length;
42
+ return [{ state, differing }];
43
+ });
44
+ const exact = compared.filter(({ state, differing }) => state !== goal && differing === 0).map(({ state }) => state);
45
+ if (exact.length > 0)
46
+ return `reaches state ${exact.join(' or ')} instead`;
47
+ const closest = compared.sort((a, b) => a.differing - b.differing)[0];
48
+ return closest
49
+ ? `reaches no declared state (closest ${closest.state}, ${closest.differing} control${closest.differing === 1 ? ' differs' : 's differ'})`
50
+ : 'reaches no declared state';
51
+ });
52
+ exports.reachedExpandedStateOf = reachedExpandedStateOf;
53
+ //# sourceMappingURL=reached-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reached-state.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/reached-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { CompletenessGap } from './complete';
2
+ import { OpenPoint, OpenPointsInput, PartOpenPoints } from './open-points';
3
+ import { RenderIssue } from './render-check';
4
+ import { ResolvedProduct } from './resolve-product';
5
+ /**
6
+ * The open points of every part of a product, read from its part files, comments and sketches, plus the
7
+ * `rendered` findings of a check that drew the parts.
8
+ */
9
+ export declare const readOpenPoints: (product: ResolvedProduct, rendered?: Pick<OpenPointsInput, "missingStates" | "contrasts" | "busyStates">) => PartOpenPoints[];
10
+ /** The points of one part, or none when it has no open point. */
11
+ export declare const partPointsOf: (list: PartOpenPoints[], part: string) => OpenPoint[];
12
+ /** The `CONTRAST` findings of a render check, once per part, state and path. */
13
+ export declare const contrastsOf: (issues: RenderIssue[]) => NonNullable<OpenPointsInput["contrasts"]>;
14
+ /** The controls of each part that lack a drawn state, from the gaps of a completeness check. */
15
+ export declare const missingStatesOf: (gaps: Map<string, CompletenessGap[] | string>) => NonNullable<OpenPointsInput["missingStates"]>;
16
+ /**
17
+ * The open points of `targets` as a sketch variant draws them, of the kinds the sketch closes itself, split into the
18
+ * ones the variant adds to the merged parts and the ones it inherits from them. `busy` names the drawn states of each
19
+ * side whose render shows ongoing work.
20
+ */
21
+ export declare const sketchOpenPointsOf: ({ merged, variant, targets, busy, }: {
22
+ merged: ResolvedProduct;
23
+ variant: ResolvedProduct;
24
+ targets: string[];
25
+ busy?: Record<"merged" | "variant", NonNullable<OpenPointsInput["busyStates"]>>;
26
+ }) => {
27
+ added: PartOpenPoints[];
28
+ inherited: PartOpenPoints[];
29
+ };
30
+ /** The own parts outside `foundations/` that have no `implements` link; parts from the base product are left out. */
31
+ export declare const unlinkedPartsOf: (product: ResolvedProduct) => string[];
32
+ /** One line per part of `targets` that declares instant state switches, with its reason. */
33
+ export declare const instantLinesOf: (product: ResolvedProduct, targets: string[]) => string[];
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.instantLinesOf = exports.unlinkedPartsOf = exports.sketchOpenPointsOf = exports.missingStatesOf = exports.contrastsOf = exports.partPointsOf = exports.readOpenPoints = void 0;
4
+ const comment_1 = require("./comments/comment");
5
+ const complete_1 = require("./complete");
6
+ const open_points_1 = require("./open-points");
7
+ const resolve_product_1 = require("./resolve-product");
8
+ const part_definition_1 = require("./sketch/part-definition");
9
+ const merged_parts_1 = require("./sketch/merged-parts");
10
+ const sketch_1 = require("./sketch/sketch");
11
+ const isPair = (pair) => pair.from !== null && pair.to !== null;
12
+ const motionOf = (source) => {
13
+ var _a;
14
+ const states = (0, part_definition_1.stateNamesOf)(source);
15
+ if (!states)
16
+ return {};
17
+ return {
18
+ motion: {
19
+ states,
20
+ motions: (0, part_definition_1.motionRefsOf)(source).motions.filter(isPair),
21
+ unreachable: ((_a = (0, part_definition_1.unreachableOf)(source)) !== null && _a !== void 0 ? _a : []).filter((pair) => { var _a; return !!((_a = pair.reason) === null || _a === void 0 ? void 0 : _a.trim()); }).filter(isPair),
22
+ instant: (0, part_definition_1.instantOf)(source).kind === 'declared',
23
+ },
24
+ };
25
+ };
26
+ const partInputsOf = (product) => product.parts.map((part) => (Object.assign({ key: (0, resolve_product_1.partKeyOf)(part), layer: part.layer, controls: (0, part_definition_1.declaresControlsOf)(part.source), declaredNoControls: (0, part_definition_1.declaresNoControlsOf)(part.source) }, motionOf(part.source))));
27
+ /**
28
+ * The open points of every part of a product, read from its part files, comments and sketches, plus the
29
+ * `rendered` findings of a check that drew the parts.
30
+ */
31
+ const readOpenPoints = (product, rendered = {}) => {
32
+ const source = { productDir: product.dir, product: product.name };
33
+ const directEdits = (0, merged_parts_1.directEditsOf)(product);
34
+ const editSketches = new Set(directEdits.flatMap(({ sketch }) => (sketch ? [sketch] : [])));
35
+ return (0, open_points_1.openPointsOf)(Object.assign({ parts: partInputsOf(product), comments: (0, comment_1.listComments)(Object.assign(Object.assign({}, source), { all: true })).comments.map((comment) => ({
36
+ id: comment.id,
37
+ part: comment.part,
38
+ state: comment.state,
39
+ answered: comment.addressed !== undefined,
40
+ resolved: comment.resolved !== undefined,
41
+ })), sketches: (0, sketch_1.listSketches)(source).flatMap((sketch) => {
42
+ var _a, _b;
43
+ return typeof sketch === 'string' || editSketches.has(sketch.target)
44
+ ? []
45
+ : [
46
+ {
47
+ name: sketch.name,
48
+ target: sketch.target,
49
+ targets: sketch.targets,
50
+ status: sketch.status,
51
+ decision: (_b = (_a = sketch.decision) === null || _a === void 0 ? void 0 : _a.kind) !== null && _b !== void 0 ? _b : null,
52
+ },
53
+ ];
54
+ }), directEdits }, rendered));
55
+ };
56
+ exports.readOpenPoints = readOpenPoints;
57
+ /** The points of one part, or none when it has no open point. */
58
+ const partPointsOf = (list, part) => { var _a, _b; return (_b = (_a = list.find((entry) => entry.part === part)) === null || _a === void 0 ? void 0 : _a.points) !== null && _b !== void 0 ? _b : []; };
59
+ exports.partPointsOf = partPointsOf;
60
+ /** The `CONTRAST` findings of a render check, once per part, state and path. */
61
+ const contrastsOf = (issues) => {
62
+ const seen = new Set();
63
+ return issues.flatMap(({ rule, part, state, path }) => {
64
+ const key = `${part} ${state} ${path}`;
65
+ if (rule !== 'CONTRAST' || seen.has(key))
66
+ return [];
67
+ seen.add(key);
68
+ return [{ part, state, path }];
69
+ });
70
+ };
71
+ exports.contrastsOf = contrastsOf;
72
+ /** The controls of each part that lack a drawn state, from the gaps of a completeness check. */
73
+ const missingStatesOf = (gaps) => [...gaps].flatMap(([part, found]) => typeof found === 'string'
74
+ ? []
75
+ : [...new Set(found.filter(complete_1.isMissingStateGap).map((gap) => gap.target.slice(part.length + 1)))].map((control) => ({ part, control })));
76
+ exports.missingStatesOf = missingStatesOf;
77
+ /**
78
+ * The open points of `targets` as a sketch variant draws them, of the kinds the sketch closes itself, split into the
79
+ * ones the variant adds to the merged parts and the ones it inherits from them. `busy` names the drawn states of each
80
+ * side whose render shows ongoing work.
81
+ */
82
+ const sketchOpenPointsOf = ({ merged, variant, targets, busy = { merged: [], variant: [] }, }) => {
83
+ const ownOf = (product, busyStates) => (0, open_points_1.openPointsOf)({
84
+ parts: partInputsOf(product).filter((part) => targets.includes(part.key)),
85
+ comments: [],
86
+ sketches: [],
87
+ busyStates,
88
+ }).flatMap(({ part, points }) => {
89
+ const own = points.filter((point) => open_points_1.SKETCH_KINDS.includes(point.kind));
90
+ return own.length > 0 ? [{ part, points: own }] : [];
91
+ });
92
+ return (0, open_points_1.sketchAddedPointsOf)(ownOf(merged, busy.merged), ownOf(variant, busy.variant));
93
+ };
94
+ exports.sketchOpenPointsOf = sketchOpenPointsOf;
95
+ /** The own parts outside `foundations/` that have no `implements` link; parts from the base product are left out. */
96
+ const unlinkedPartsOf = (product) => product.parts
97
+ .filter((part) => part.origin !== 'base' && part.layer !== 'foundations' && (0, part_definition_1.partLinkOf)(part.source).kind === 'none')
98
+ .map(resolve_product_1.partKeyOf);
99
+ exports.unlinkedPartsOf = unlinkedPartsOf;
100
+ /** One line per part of `targets` that declares instant state switches, with its reason. */
101
+ const instantLinesOf = (product, targets) => product.parts
102
+ .filter((part) => targets.includes((0, resolve_product_1.partKeyOf)(part)))
103
+ .flatMap((part) => {
104
+ const instant = (0, part_definition_1.instantOf)(part.source);
105
+ return instant.kind === 'declared'
106
+ ? [`${(0, resolve_product_1.partKeyOf)(part)} declares instant state switches (no motion between its states): ${instant.reason}`]
107
+ : [];
108
+ });
109
+ exports.instantLinesOf = instantLinesOf;
110
+ //# sourceMappingURL=read-open-points.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-open-points.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/read-open-points.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const READY_USAGE = "ready <layer>/<name> --product <name> [--url <app dev server url>]";
2
+ /**
3
+ * `et design ready <layer>/<name> …` checks a part and writes its check record, and exits 1 with its open points, its
4
+ * other blockers or its failed `design actions` lines while it has any. It runs the slow rules of the part first when
5
+ * their result is missing or stale.
6
+ */
7
+ export declare const designReady: (options: {
8
+ target: string;
9
+ argv: string[];
10
+ invocation: string;
11
+ }) => Promise<0 | 1 | 2>;