@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.
- package/CHANGELOG.md +481 -0
- package/build-info.json +1 -0
- package/design/arrow-anchor.ts +55 -0
- package/design/define-call.ts +75 -30
- package/design/define-part.ts +64 -4
- package/design/icon-sheet.ts +1 -1
- package/design/interaction-rows.ts +13 -6
- package/design/mark-part.ts +51 -1
- package/design/token-sheet.ts +1 -1
- package/design/web/frame-fit.ts +7 -0
- package/design/web/frame-surfaces.ts +294 -0
- package/design/web/frame.ts +69 -15
- package/design/web/surface-interactive.css +42 -0
- package/design/with-action.ts +29 -0
- package/package.json +3 -1
- package/src/index.js +9 -1
- package/src/index.js.map +1 -1
- package/src/lib/api/compose.js +3 -2
- package/src/lib/api/compose.js.map +1 -1
- package/src/lib/api/git.js +2 -1
- package/src/lib/api/git.js.map +1 -1
- package/src/lib/api/setup.js +2 -2
- package/src/lib/api/setup.js.map +1 -1
- package/src/lib/design/asset-shot.js +4 -4
- package/src/lib/design/asset-shot.js.map +1 -1
- package/src/lib/design/blank-png.d.ts +2 -0
- package/src/lib/design/blank-png.js +28 -0
- package/src/lib/design/blank-png.js.map +1 -0
- package/src/lib/design/build-watch.d.ts +26 -0
- package/src/lib/design/build-watch.js +138 -0
- package/src/lib/design/build-watch.js.map +1 -0
- package/src/lib/design/cache-entry.d.ts +8 -0
- package/src/lib/design/cache-entry.js +30 -0
- package/src/lib/design/cache-entry.js.map +1 -0
- package/src/lib/design/calls-tsconfig.js +20 -13
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/calls.js +3 -3
- package/src/lib/design/calls.js.map +1 -1
- package/src/lib/design/changed-parts.d.ts +1 -1
- package/src/lib/design/check.d.ts +2 -0
- package/src/lib/design/check.js +217 -24
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/code-hash.d.ts +30 -0
- package/src/lib/design/code-hash.js +118 -0
- package/src/lib/design/code-hash.js.map +1 -0
- package/src/lib/design/commit-hunks.d.ts +22 -0
- package/src/lib/design/commit-hunks.js +173 -0
- package/src/lib/design/commit-hunks.js.map +1 -0
- package/src/lib/design/design-command.d.ts +2 -0
- package/src/lib/design/design-command.js +271 -27
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/{paths.d.ts → design-config.d.ts} +34 -28
- package/src/lib/design/design-config.js +35 -0
- package/src/lib/design/design-config.js.map +1 -0
- package/src/lib/design/design-lint.d.ts +68 -0
- package/src/lib/design/design-lint.js +183 -0
- package/src/lib/design/design-lint.js.map +1 -0
- package/src/lib/design/draw-ledger.d.ts +6 -0
- package/src/lib/design/draw-ledger.js +10 -0
- package/src/lib/design/draw-ledger.js.map +1 -1
- package/src/lib/design/force-interactions.d.ts +3 -1
- package/src/lib/design/force-interactions.js +8 -4
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/generated-stylesheets.d.ts +1 -1
- package/src/lib/design/generated-stylesheets.js +2 -2
- package/src/lib/design/generated-stylesheets.js.map +1 -1
- package/src/lib/design/git-top.d.ts +5 -0
- package/src/lib/design/git-top.js +16 -0
- package/src/lib/design/git-top.js.map +1 -0
- package/src/lib/design/hooks-problem.d.ts +2 -0
- package/src/lib/design/hooks-problem.js +23 -0
- package/src/lib/design/hooks-problem.js.map +1 -0
- package/src/lib/design/inbox-command.js +9 -5
- package/src/lib/design/inbox-command.js.map +1 -1
- package/src/lib/design/index.d.ts +4 -1
- package/src/lib/design/index.js +4 -1
- package/src/lib/design/index.js.map +1 -1
- package/src/lib/design/is-running.d.ts +1 -0
- package/src/lib/design/is-running.js +14 -0
- package/src/lib/design/is-running.js.map +1 -0
- package/src/lib/design/legacy.js +3 -3
- package/src/lib/design/legacy.js.map +1 -1
- package/src/lib/design/mcp-command.d.ts +5 -1
- package/src/lib/design/mcp-command.js +27 -16
- package/src/lib/design/mcp-command.js.map +1 -1
- package/src/lib/design/merge-compare.d.ts +10 -2
- package/src/lib/design/merge-compare.js +63 -11
- package/src/lib/design/merge-compare.js.map +1 -1
- package/src/lib/design/motion-command.js +4 -4
- package/src/lib/design/motion-command.js.map +1 -1
- package/src/lib/design/motion-shot.js +3 -2
- package/src/lib/design/motion-shot.js.map +1 -1
- package/src/lib/design/new-call.js +22 -13
- package/src/lib/design/new-call.js.map +1 -1
- package/src/lib/design/old-shot-folders.d.ts +2 -0
- package/src/lib/design/old-shot-folders.js +26 -0
- package/src/lib/design/old-shot-folders.js.map +1 -0
- package/src/lib/design/package-root.d.ts +21 -0
- package/src/lib/design/package-root.js +79 -0
- package/src/lib/design/package-root.js.map +1 -0
- package/src/lib/design/parent-watch.d.ts +7 -0
- package/src/lib/design/parent-watch.js +23 -0
- package/src/lib/design/parent-watch.js.map +1 -0
- package/src/lib/design/part-marks.d.ts +3 -2
- package/src/lib/design/part-marks.js +15 -7
- package/src/lib/design/part-marks.js.map +1 -1
- package/src/lib/design/phase-timing.d.ts +5 -0
- package/src/lib/design/phase-timing.js +27 -0
- package/src/lib/design/phase-timing.js.map +1 -0
- package/src/lib/design/physical-cores.d.ts +12 -0
- package/src/lib/design/physical-cores.js +43 -0
- package/src/lib/design/physical-cores.js.map +1 -0
- package/src/lib/design/product-command.d.ts +1 -1
- package/src/lib/design/product-command.js +16 -18
- package/src/lib/design/product-command.js.map +1 -1
- package/src/lib/design/push-status.d.ts +30 -0
- package/src/lib/design/push-status.js +122 -0
- package/src/lib/design/push-status.js.map +1 -0
- package/src/lib/design/ready-shots.d.ts +21 -12
- package/src/lib/design/ready-shots.js +79 -44
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +7 -18
- package/src/lib/design/render-packages.js +24 -63
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +24 -6
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.d.ts +26 -3
- package/src/lib/design/render.js +52 -13
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/resident/client.d.ts +52 -0
- package/src/lib/design/resident/client.js +263 -0
- package/src/lib/design/resident/client.js.map +1 -0
- package/src/lib/design/resident/discovery.d.ts +21 -0
- package/src/lib/design/resident/discovery.js +63 -0
- package/src/lib/design/resident/discovery.js.map +1 -0
- package/src/lib/design/resident/resident-process.d.ts +19 -0
- package/src/lib/design/resident/resident-process.js +189 -0
- package/src/lib/design/resident/resident-process.js.map +1 -0
- package/src/lib/design/resident/server.d.ts +52 -0
- package/src/lib/design/resident/server.js +212 -0
- package/src/lib/design/resident/server.js.map +1 -0
- package/src/lib/design/run-abort.d.ts +9 -0
- package/src/lib/design/run-abort.js +45 -0
- package/src/lib/design/run-abort.js.map +1 -0
- package/src/lib/design/run-deadline.d.ts +19 -0
- package/src/lib/design/run-deadline.js +104 -0
- package/src/lib/design/run-deadline.js.map +1 -0
- package/src/lib/design/run-yield.d.ts +8 -0
- package/src/lib/design/run-yield.js +43 -0
- package/src/lib/design/run-yield.js.map +1 -0
- package/src/lib/design/serve-state.d.ts +15 -0
- package/src/lib/design/serve-state.js +56 -0
- package/src/lib/design/serve-state.js.map +1 -0
- package/src/lib/design/serve.d.ts +41 -3
- package/src/lib/design/serve.js +272 -54
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/server-identity.d.ts +40 -0
- package/src/lib/design/server-identity.js +71 -0
- package/src/lib/design/server-identity.js.map +1 -0
- package/src/lib/design/settle-frames.d.ts +4 -0
- package/src/lib/design/settle-frames.js +22 -0
- package/src/lib/design/settle-frames.js.map +1 -0
- package/src/lib/design/shot-board.d.ts +26 -0
- package/src/lib/design/shot-board.js +80 -0
- package/src/lib/design/shot-board.js.map +1 -0
- package/src/lib/design/shot-command.d.ts +26 -5
- package/src/lib/design/shot-command.js +143 -50
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot-store.d.ts +29 -3
- package/src/lib/design/shot-store.js +206 -36
- package/src/lib/design/shot-store.js.map +1 -1
- package/src/lib/design/shot.d.ts +60 -2
- package/src/lib/design/shot.js +238 -28
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-at.js +2 -1
- package/src/lib/design/sketch-at.js.map +1 -1
- package/src/lib/design/sketch-command.d.ts +19 -1
- package/src/lib/design/sketch-command.js +664 -159
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +1 -0
- package/src/lib/design/ssr-shims.js +3 -3
- package/src/lib/design/ssr-shims.js.map +1 -1
- package/src/lib/design/stale-cli-dist.d.ts +11 -0
- package/src/lib/design/stale-cli-dist.js +56 -0
- package/src/lib/design/stale-cli-dist.js.map +1 -0
- package/src/lib/design/stamp.d.ts +23 -1
- package/src/lib/design/stamp.js +56 -9
- package/src/lib/design/stamp.js.map +1 -1
- package/src/lib/design/started-by-studio.d.ts +1 -0
- package/src/lib/design/started-by-studio.js +6 -0
- package/src/lib/design/started-by-studio.js.map +1 -0
- package/src/lib/design/status.d.ts +1 -1
- package/src/lib/design/status.js +15 -4
- package/src/lib/design/status.js.map +1 -1
- package/src/lib/design/studio-api.d.ts +21 -10
- package/src/lib/design/studio-api.js +192 -88
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/accepted-pictures.d.ts +69 -0
- package/src/lib/design/system/accepted-pictures.js +346 -0
- package/src/lib/design/system/accepted-pictures.js.map +1 -0
- package/src/lib/design/system/action-cache.d.ts +45 -0
- package/src/lib/design/system/action-cache.js +72 -0
- package/src/lib/design/system/action-cache.js.map +1 -0
- package/src/lib/design/system/action-lost.d.ts +61 -0
- package/src/lib/design/system/action-lost.js +116 -0
- package/src/lib/design/system/action-lost.js.map +1 -0
- package/src/lib/design/system/action-press.d.ts +29 -0
- package/src/lib/design/system/action-press.js +88 -0
- package/src/lib/design/system/action-press.js.map +1 -0
- package/src/lib/design/system/action-undeclared.d.ts +34 -0
- package/src/lib/design/system/action-undeclared.js +81 -0
- package/src/lib/design/system/action-undeclared.js.map +1 -0
- package/src/lib/design/system/actions-command.d.ts +108 -0
- package/src/lib/design/system/actions-command.js +816 -0
- package/src/lib/design/system/actions-command.js.map +1 -0
- package/src/lib/design/system/actions.d.ts +181 -0
- package/src/lib/design/system/actions.js +333 -0
- package/src/lib/design/system/actions.js.map +1 -0
- package/src/lib/design/system/anti-alias.d.ts +2 -0
- package/src/lib/design/system/anti-alias.js +11 -0
- package/src/lib/design/system/anti-alias.js.map +1 -0
- package/src/lib/design/system/app-files.d.ts +10 -0
- package/src/lib/design/system/app-files.js +175 -0
- package/src/lib/design/system/app-files.js.map +1 -0
- package/src/lib/design/system/arrow-anchor.d.ts +9 -0
- package/src/lib/design/system/arrow-anchor.js +40 -0
- package/src/lib/design/system/arrow-anchor.js.map +1 -0
- package/src/lib/design/system/base-issues.d.ts +28 -0
- package/src/lib/design/system/base-issues.js +80 -0
- package/src/lib/design/system/base-issues.js.map +1 -0
- package/src/lib/design/system/base.d.ts +1 -1
- package/src/lib/design/system/base.js +2 -2
- package/src/lib/design/system/base.js.map +1 -1
- package/src/lib/design/system/baseline-history.d.ts +13 -0
- package/src/lib/design/system/baseline-history.js +40 -0
- package/src/lib/design/system/baseline-history.js.map +1 -0
- package/src/lib/design/system/bespoke-controls.d.ts +33 -0
- package/src/lib/design/system/bespoke-controls.js +149 -0
- package/src/lib/design/system/bespoke-controls.js.map +1 -0
- package/src/lib/design/system/build-ready-contract.d.ts +33 -0
- package/src/lib/design/system/build-ready-contract.js +18 -0
- package/src/lib/design/system/build-ready-contract.js.map +1 -0
- package/src/lib/design/system/build-running.d.ts +13 -0
- package/src/lib/design/system/build-running.js +48 -0
- package/src/lib/design/system/build-running.js.map +1 -0
- package/src/lib/design/system/check-record.d.ts +18 -0
- package/src/lib/design/system/check-record.js +47 -0
- package/src/lib/design/system/check-record.js.map +1 -0
- package/src/lib/design/system/check-rules.d.ts +1 -0
- package/src/lib/design/system/check-rules.js +100 -0
- package/src/lib/design/system/check-rules.js.map +1 -0
- package/src/lib/design/system/check-system.d.ts +83 -7
- package/src/lib/design/system/check-system.js +647 -68
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/comments/comment.d.ts +4 -1
- package/src/lib/design/system/comments/comment.js +13 -4
- package/src/lib/design/system/comments/comment.js.map +1 -1
- package/src/lib/design/system/comments/inbox.d.ts +1 -1
- package/src/lib/design/system/comments/inbox.js +2 -2
- package/src/lib/design/system/comments/inbox.js.map +1 -1
- package/src/lib/design/system/compare-cache.d.ts +20 -0
- package/src/lib/design/system/compare-cache.js +92 -0
- package/src/lib/design/system/compare-cache.js.map +1 -0
- package/src/lib/design/system/compare-command.d.ts +150 -0
- package/src/lib/design/system/compare-command.js +580 -0
- package/src/lib/design/system/compare-command.js.map +1 -0
- package/src/lib/design/system/complete-command.js +1 -1
- package/src/lib/design/system/complete-command.js.map +1 -1
- package/src/lib/design/system/complete.d.ts +63 -2
- package/src/lib/design/system/complete.js +281 -71
- package/src/lib/design/system/complete.js.map +1 -1
- package/src/lib/design/system/component-outputs.d.ts +20 -0
- package/src/lib/design/system/component-outputs.js +86 -0
- package/src/lib/design/system/component-outputs.js.map +1 -0
- package/src/lib/design/system/contrast-check.d.ts +1 -1
- package/src/lib/design/system/contrast-check.js +14 -3
- package/src/lib/design/system/contrast-check.js.map +1 -1
- package/src/lib/design/system/decision-refs.d.ts +5 -0
- package/src/lib/design/system/decision-refs.js +21 -0
- package/src/lib/design/system/decision-refs.js.map +1 -0
- package/src/lib/design/system/demo-backdrop.d.ts +11 -0
- package/src/lib/design/system/demo-backdrop.js +41 -0
- package/src/lib/design/system/demo-backdrop.js.map +1 -0
- package/src/lib/design/system/design-hash.d.ts +52 -0
- package/src/lib/design/system/design-hash.js +132 -0
- package/src/lib/design/system/design-hash.js.map +1 -0
- package/src/lib/design/system/disabled-interaction.d.ts +8 -0
- package/src/lib/design/system/disabled-interaction.js +37 -0
- package/src/lib/design/system/disabled-interaction.js.map +1 -0
- package/src/lib/design/system/dom-command.d.ts +36 -0
- package/src/lib/design/system/dom-command.js +178 -0
- package/src/lib/design/system/dom-command.js.map +1 -0
- package/src/lib/design/system/drawn-open-points.d.ts +26 -4
- package/src/lib/design/system/drawn-open-points.js +65 -14
- package/src/lib/design/system/drawn-open-points.js.map +1 -1
- package/src/lib/design/system/dropped-props.d.ts +39 -0
- package/src/lib/design/system/dropped-props.js +271 -0
- package/src/lib/design/system/dropped-props.js.map +1 -0
- package/src/lib/design/system/embedded-actions.d.ts +21 -0
- package/src/lib/design/system/embedded-actions.js +37 -0
- package/src/lib/design/system/embedded-actions.js.map +1 -0
- package/src/lib/design/system/exceptions.js +2 -1
- package/src/lib/design/system/exceptions.js.map +1 -1
- package/src/lib/design/system/flows/flow.js +2 -1
- package/src/lib/design/system/flows/flow.js.map +1 -1
- package/src/lib/design/system/frozen-animations.d.ts +13 -0
- package/src/lib/design/system/frozen-animations.js +51 -0
- package/src/lib/design/system/frozen-animations.js.map +1 -0
- package/src/lib/design/system/grid-report.d.ts +5 -0
- package/src/lib/design/system/grid-report.js +78 -0
- package/src/lib/design/system/grid-report.js.map +1 -0
- package/src/lib/design/system/handoff.js +2 -1
- package/src/lib/design/system/handoff.js.map +1 -1
- package/src/lib/design/system/harness-build-cache.d.ts +49 -0
- package/src/lib/design/system/harness-build-cache.js +188 -0
- package/src/lib/design/system/harness-build-cache.js.map +1 -0
- package/src/lib/design/system/harness-command.d.ts +7 -0
- package/src/lib/design/system/harness-command.js +51 -0
- package/src/lib/design/system/harness-command.js.map +1 -0
- package/src/lib/design/system/harness-config.d.ts +9 -0
- package/src/lib/design/system/harness-config.js +65 -0
- package/src/lib/design/system/harness-config.js.map +1 -0
- package/src/lib/design/system/harness-inputs.d.ts +17 -0
- package/src/lib/design/system/harness-inputs.js +160 -0
- package/src/lib/design/system/harness-inputs.js.map +1 -0
- package/src/lib/design/system/harness-map.d.ts +44 -0
- package/src/lib/design/system/harness-map.js +126 -0
- package/src/lib/design/system/harness-map.js.map +1 -0
- package/src/lib/design/system/harness-samples.d.ts +20 -0
- package/src/lib/design/system/harness-samples.js +92 -0
- package/src/lib/design/system/harness-samples.js.map +1 -0
- package/src/lib/design/system/harness-server.d.ts +51 -0
- package/src/lib/design/system/harness-server.js +306 -0
- package/src/lib/design/system/harness-server.js.map +1 -0
- package/src/lib/design/system/harness-shot.d.ts +78 -0
- package/src/lib/design/system/harness-shot.js +349 -0
- package/src/lib/design/system/harness-shot.js.map +1 -0
- package/src/lib/design/system/harness-watch.d.ts +79 -0
- package/src/lib/design/system/harness-watch.js +334 -0
- package/src/lib/design/system/harness-watch.js.map +1 -0
- package/src/lib/design/system/implementation-baseline.d.ts +20 -0
- package/src/lib/design/system/implementation-baseline.js +44 -0
- package/src/lib/design/system/implementation-baseline.js.map +1 -0
- package/src/lib/design/system/imports.js +14 -1
- package/src/lib/design/system/imports.js.map +1 -1
- package/src/lib/design/system/in-order-at-once.d.ts +6 -0
- package/src/lib/design/system/in-order-at-once.js +28 -0
- package/src/lib/design/system/in-order-at-once.js.map +1 -0
- package/src/lib/design/system/inventory-approval.js +2 -1
- package/src/lib/design/system/inventory-approval.js.map +1 -1
- package/src/lib/design/system/inventory.d.ts +13 -4
- package/src/lib/design/system/inventory.js +36 -7
- package/src/lib/design/system/inventory.js.map +1 -1
- package/src/lib/design/system/leftover-gate-files.d.ts +2 -0
- package/src/lib/design/system/leftover-gate-files.js +15 -0
- package/src/lib/design/system/leftover-gate-files.js.map +1 -0
- package/src/lib/design/system/lib-build-lock.d.ts +18 -0
- package/src/lib/design/system/lib-build-lock.js +111 -0
- package/src/lib/design/system/lib-build-lock.js.map +1 -0
- package/src/lib/design/system/link-free.d.ts +12 -0
- package/src/lib/design/system/link-free.js +125 -0
- package/src/lib/design/system/link-free.js.map +1 -0
- package/src/lib/design/system/list-system.d.ts +8 -8
- package/src/lib/design/system/list-system.js +19 -80
- package/src/lib/design/system/list-system.js.map +1 -1
- package/src/lib/design/system/live-actions.d.ts +121 -0
- package/src/lib/design/system/live-actions.js +674 -0
- package/src/lib/design/system/live-actions.js.map +1 -0
- package/src/lib/design/system/live-compare.d.ts +136 -0
- package/src/lib/design/system/live-compare.js +441 -0
- package/src/lib/design/system/live-compare.js.map +1 -0
- package/src/lib/design/system/live-uncovered.d.ts +45 -0
- package/src/lib/design/system/live-uncovered.js +158 -0
- package/src/lib/design/system/live-uncovered.js.map +1 -0
- package/src/lib/design/system/nested-scroll.d.ts +7 -0
- package/src/lib/design/system/nested-scroll.js +25 -0
- package/src/lib/design/system/nested-scroll.js.map +1 -0
- package/src/lib/design/system/no-verdict.d.ts +13 -0
- package/src/lib/design/system/no-verdict.js +17 -0
- package/src/lib/design/system/no-verdict.js.map +1 -0
- package/src/lib/design/system/notes/note.js +2 -1
- package/src/lib/design/system/notes/note.js.map +1 -1
- package/src/lib/design/system/occluded.d.ts +13 -0
- package/src/lib/design/system/occluded.js +111 -0
- package/src/lib/design/system/occluded.js.map +1 -0
- package/src/lib/design/system/off-centre.d.ts +11 -0
- package/src/lib/design/system/off-centre.js +74 -0
- package/src/lib/design/system/off-centre.js.map +1 -0
- package/src/lib/design/system/open-points-cache.d.ts +11 -0
- package/src/lib/design/system/open-points-cache.js +27 -0
- package/src/lib/design/system/open-points-cache.js.map +1 -0
- package/src/lib/design/system/open-points-runner.d.ts +43 -0
- package/src/lib/design/system/open-points-runner.js +119 -0
- package/src/lib/design/system/open-points-runner.js.map +1 -0
- package/src/lib/design/system/open-points-worker.d.ts +1 -0
- package/src/lib/design/system/open-points-worker.js +28 -0
- package/src/lib/design/system/open-points-worker.js.map +1 -0
- package/src/lib/design/system/open-points.d.ts +24 -6
- package/src/lib/design/system/open-points.js +59 -30
- package/src/lib/design/system/open-points.js.map +1 -1
- package/src/lib/design/system/part-build-ready.d.ts +45 -0
- package/src/lib/design/system/part-build-ready.js +135 -0
- package/src/lib/design/system/part-build-ready.js.map +1 -0
- package/src/lib/design/system/part-command.js +2 -9
- package/src/lib/design/system/part-command.js.map +1 -1
- package/src/lib/design/system/part-compare.d.ts +139 -0
- package/src/lib/design/system/part-compare.js +501 -0
- package/src/lib/design/system/part-compare.js.map +1 -0
- package/src/lib/design/system/part-picture-cache.d.ts +23 -0
- package/src/lib/design/system/part-picture-cache.js +68 -0
- package/src/lib/design/system/part-picture-cache.js.map +1 -0
- package/src/lib/design/system/part-ready.d.ts +71 -7
- package/src/lib/design/system/part-ready.js +128 -19
- package/src/lib/design/system/part-ready.js.map +1 -1
- package/src/lib/design/system/part-task.d.ts +167 -0
- package/src/lib/design/system/part-task.js +331 -0
- package/src/lib/design/system/part-task.js.map +1 -0
- package/src/lib/design/system/pixel-cache.d.ts +16 -0
- package/src/lib/design/system/pixel-cache.js +79 -0
- package/src/lib/design/system/pixel-cache.js.map +1 -0
- package/src/lib/design/system/pointer-focus.d.ts +89 -0
- package/src/lib/design/system/pointer-focus.js +175 -0
- package/src/lib/design/system/pointer-focus.js.map +1 -0
- package/src/lib/design/system/prettier.d.ts +10 -0
- package/src/lib/design/system/prettier.js +37 -0
- package/src/lib/design/system/prettier.js.map +1 -0
- package/src/lib/design/system/problem.d.ts +6 -0
- package/src/lib/design/system/product.js +2 -2
- package/src/lib/design/system/product.js.map +1 -1
- package/src/lib/design/system/reach.d.ts +12 -0
- package/src/lib/design/system/reach.js +186 -0
- package/src/lib/design/system/reach.js.map +1 -0
- package/src/lib/design/system/reachable-controls.d.ts +6 -0
- package/src/lib/design/system/reachable-controls.js +19 -0
- package/src/lib/design/system/reachable-controls.js.map +1 -0
- package/src/lib/design/system/reachable-files.d.ts +14 -0
- package/src/lib/design/system/reachable-files.js +101 -0
- package/src/lib/design/system/reachable-files.js.map +1 -0
- package/src/lib/design/system/reached-state.d.ts +23 -0
- package/src/lib/design/system/reached-state.js +53 -0
- package/src/lib/design/system/reached-state.js.map +1 -0
- package/src/lib/design/system/read-open-points.d.ts +9 -3
- package/src/lib/design/system/read-open-points.js +38 -9
- package/src/lib/design/system/read-open-points.js.map +1 -1
- package/src/lib/design/system/ready-command.d.ts +6 -2
- package/src/lib/design/system/ready-command.js +52 -15
- package/src/lib/design/system/ready-command.js.map +1 -1
- package/src/lib/design/system/record-settled.d.ts +24 -0
- package/src/lib/design/system/record-settled.js +50 -0
- package/src/lib/design/system/record-settled.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +68 -1
- package/src/lib/design/system/render-check.js +427 -114
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/render-issue-key.d.ts +9 -0
- package/src/lib/design/system/render-issue-key.js +27 -0
- package/src/lib/design/system/render-issue-key.js.map +1 -0
- package/src/lib/design/system/resolve-product.d.ts +4 -1
- package/src/lib/design/system/resolve-product.js +19 -3
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rule-baseline.d.ts +53 -0
- package/src/lib/design/system/rule-baseline.js +124 -0
- package/src/lib/design/system/rule-baseline.js.map +1 -0
- package/src/lib/design/system/rule-skips.d.ts +20 -0
- package/src/lib/design/system/rule-skips.js +36 -0
- package/src/lib/design/system/rule-skips.js.map +1 -0
- package/src/lib/design/system/rules/app-spec.d.ts +30 -0
- package/src/lib/design/system/rules/app-spec.js +87 -0
- package/src/lib/design/system/rules/app-spec.js.map +1 -0
- package/src/lib/design/system/rules/canonical-class.d.ts +6 -0
- package/src/lib/design/system/rules/canonical-class.js +92 -113
- package/src/lib/design/system/rules/canonical-class.js.map +1 -1
- package/src/lib/design/system/rules/capability-place.d.ts +46 -0
- package/src/lib/design/system/rules/capability-place.js +129 -0
- package/src/lib/design/system/rules/capability-place.js.map +1 -0
- package/src/lib/design/system/rules/command-text.d.ts +7 -0
- package/src/lib/design/system/rules/command-text.js +72 -0
- package/src/lib/design/system/rules/command-text.js.map +1 -0
- package/src/lib/design/system/rules/denied-class.d.ts +9 -0
- package/src/lib/design/system/rules/denied-class.js +121 -0
- package/src/lib/design/system/rules/denied-class.js.map +1 -0
- package/src/lib/design/system/rules/design-coverage.d.ts +30 -0
- package/src/lib/design/system/rules/design-coverage.js +205 -0
- package/src/lib/design/system/rules/design-coverage.js.map +1 -0
- package/src/lib/design/system/rules/exemptions.d.ts +18 -0
- package/src/lib/design/system/rules/exemptions.js +18 -0
- package/src/lib/design/system/rules/exemptions.js.map +1 -0
- package/src/lib/design/system/rules/flow.js +1 -1
- package/src/lib/design/system/rules/flow.js.map +1 -1
- package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
- package/src/lib/design/system/rules/glued-interpolation.js +77 -0
- package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
- package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
- package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
- package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
- package/src/lib/design/system/rules/implemented-components.js +45 -0
- package/src/lib/design/system/rules/implemented-components.js.map +1 -0
- package/src/lib/design/system/rules/implements-unrendered.d.ts +13 -0
- package/src/lib/design/system/rules/implements-unrendered.js +63 -0
- package/src/lib/design/system/rules/implements-unrendered.js.map +1 -0
- package/src/lib/design/system/rules/implements.d.ts +2 -1
- package/src/lib/design/system/rules/implements.js +26 -21
- package/src/lib/design/system/rules/implements.js.map +1 -1
- package/src/lib/design/system/rules/inline-svg.js +4 -1
- package/src/lib/design/system/rules/inline-svg.js.map +1 -1
- package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
- package/src/lib/design/system/rules/inline-ui.js +100 -0
- package/src/lib/design/system/rules/inline-ui.js.map +1 -0
- package/src/lib/design/system/rules/motion.d.ts +1 -1
- package/src/lib/design/system/rules/motion.js +31 -17
- package/src/lib/design/system/rules/motion.js.map +1 -1
- package/src/lib/design/system/rules/native-title.d.ts +7 -0
- package/src/lib/design/system/rules/native-title.js +74 -0
- package/src/lib/design/system/rules/native-title.js.map +1 -0
- package/src/lib/design/system/rules/option-values.d.ts +1 -1
- package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
- package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
- package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
- package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
- package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
- package/src/lib/design/system/rules/part-rewrite.js +125 -0
- package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
- package/src/lib/design/system/rules/pending-state.d.ts +39 -0
- package/src/lib/design/system/rules/pending-state.js +289 -0
- package/src/lib/design/system/rules/pending-state.js.map +1 -0
- package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
- package/src/lib/design/system/rules/sample-default-known.js +17 -0
- package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
- package/src/lib/design/system/rules/sample-default.d.ts +22 -0
- package/src/lib/design/system/rules/sample-default.js +92 -0
- package/src/lib/design/system/rules/sample-default.js.map +1 -0
- package/src/lib/design/system/rules/sdk-attribute-value.d.ts +10 -0
- package/src/lib/design/system/rules/sdk-attribute-value.js +78 -0
- package/src/lib/design/system/rules/sdk-attribute-value.js.map +1 -0
- package/src/lib/design/system/rules/sdk-private-var.d.ts +9 -0
- package/src/lib/design/system/rules/sdk-private-var.js +54 -0
- package/src/lib/design/system/rules/sdk-private-var.js.map +1 -0
- package/src/lib/design/system/rules/skips.d.ts +4 -0
- package/src/lib/design/system/rules/skips.js +27 -0
- package/src/lib/design/system/rules/skips.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.js +5 -0
- package/src/lib/design/system/rules/stale-replace.js.map +1 -1
- package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
- package/src/lib/design/system/rules/state-in-component.js +101 -0
- package/src/lib/design/system/rules/state-in-component.js.map +1 -0
- package/src/lib/design/system/rules/tailwind-classes.d.ts +52 -0
- package/src/lib/design/system/rules/tailwind-classes.js +237 -0
- package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
- package/src/lib/design/system/rules/token-selectors.js +10 -3
- package/src/lib/design/system/rules/token-selectors.js.map +1 -1
- package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
- package/src/lib/design/system/rules/top-level-await.js +62 -0
- package/src/lib/design/system/rules/top-level-await.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input-known.d.ts +7 -0
- package/src/lib/design/system/rules/unbound-input-known.js +44 -0
- package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input.d.ts +24 -0
- package/src/lib/design/system/rules/unbound-input.js +67 -0
- package/src/lib/design/system/rules/unbound-input.js.map +1 -0
- package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
- package/src/lib/design/system/rules/uncovered-region.js +36 -0
- package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
- package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
- package/src/lib/design/system/rules/undefined-class.js +41 -0
- package/src/lib/design/system/rules/undefined-class.js.map +1 -0
- package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
- package/src/lib/design/system/rules/undefined-token.js +7 -61
- package/src/lib/design/system/rules/undefined-token.js.map +1 -1
- package/src/lib/design/system/rules/utility-css.d.ts +2 -1
- package/src/lib/design/system/rules/utility-css.js +40 -13
- package/src/lib/design/system/rules/utility-css.js.map +1 -1
- package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
- package/src/lib/design/system/rules/view-coverage.js +51 -0
- package/src/lib/design/system/rules/view-coverage.js.map +1 -0
- package/src/lib/design/system/rules/visible-change.d.ts +19 -0
- package/src/lib/design/system/rules/visible-change.js +48 -0
- package/src/lib/design/system/rules/visible-change.js.map +1 -0
- package/src/lib/design/system/sdk-declarations.d.ts +10 -0
- package/src/lib/design/system/sdk-declarations.js +177 -0
- package/src/lib/design/system/sdk-declarations.js.map +1 -0
- package/src/lib/design/system/sdk-errors.d.ts +14 -0
- package/src/lib/design/system/sdk-errors.js +38 -0
- package/src/lib/design/system/sdk-errors.js.map +1 -0
- package/src/lib/design/system/sdk-selectors.d.ts +18 -0
- package/src/lib/design/system/sdk-selectors.js +131 -0
- package/src/lib/design/system/sdk-selectors.js.map +1 -0
- package/src/lib/design/system/see-through.d.ts +12 -0
- package/src/lib/design/system/see-through.js +112 -0
- package/src/lib/design/system/see-through.js.map +1 -0
- package/src/lib/design/system/served-cache.d.ts +99 -0
- package/src/lib/design/system/served-cache.js +202 -0
- package/src/lib/design/system/served-cache.js.map +1 -0
- package/src/lib/design/system/settled-panes.d.ts +23 -0
- package/src/lib/design/system/settled-panes.js +71 -0
- package/src/lib/design/system/settled-panes.js.map +1 -0
- package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
- package/src/lib/design/system/sketch/after-merge.js +51 -0
- package/src/lib/design/system/sketch/after-merge.js.map +1 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
- package/src/lib/design/system/sketch/baseline.d.ts +36 -2
- package/src/lib/design/system/sketch/baseline.js +76 -13
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-format.js +3 -9
- package/src/lib/design/system/sketch/check-format.js.map +1 -1
- package/src/lib/design/system/sketch/check-sketches.d.ts +10 -0
- package/src/lib/design/system/sketch/check-sketches.js +50 -4
- package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
- package/src/lib/design/system/sketch/clean-copy.d.ts +18 -0
- package/src/lib/design/system/sketch/clean-copy.js +104 -0
- package/src/lib/design/system/sketch/clean-copy.js.map +1 -0
- package/src/lib/design/system/sketch/cli-args.d.ts +13 -3
- package/src/lib/design/system/sketch/cli-args.js +20 -5
- package/src/lib/design/system/sketch/cli-args.js.map +1 -1
- package/src/lib/design/system/sketch/covered-diffs.d.ts +40 -0
- package/src/lib/design/system/sketch/covered-diffs.js +106 -0
- package/src/lib/design/system/sketch/covered-diffs.js.map +1 -0
- package/src/lib/design/system/sketch/edit-sketch.d.ts +29 -0
- package/src/lib/design/system/sketch/edit-sketch.js +169 -0
- package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
- package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
- package/src/lib/design/system/sketch/frame-budget.js +23 -0
- package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
- package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
- package/src/lib/design/system/sketch/identical-renders.js +143 -0
- package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
- package/src/lib/design/system/sketch/merge-commit.d.ts +20 -0
- package/src/lib/design/system/sketch/merge-commit.js +72 -0
- package/src/lib/design/system/sketch/merge-commit.js.map +1 -0
- package/src/lib/design/system/sketch/merge-runner.d.ts +20 -0
- package/src/lib/design/system/sketch/merge-runner.js +73 -0
- package/src/lib/design/system/sketch/merge-runner.js.map +1 -0
- package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
- package/src/lib/design/system/sketch/merge-shared.js +7 -10
- package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
- package/src/lib/design/system/sketch/merge-step.d.ts +47 -0
- package/src/lib/design/system/sketch/merge-step.js +110 -0
- package/src/lib/design/system/sketch/merge-step.js.map +1 -0
- package/src/lib/design/system/sketch/merge-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/merge-worker.js +14 -0
- package/src/lib/design/system/sketch/merge-worker.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +19 -5
- package/src/lib/design/system/sketch/merge.js +245 -82
- package/src/lib/design/system/sketch/merge.js.map +1 -1
- package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
- package/src/lib/design/system/sketch/merged-layout.js +57 -0
- package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
- package/src/lib/design/system/sketch/merged-parts.d.ts +31 -30
- package/src/lib/design/system/sketch/merged-parts.js +99 -84
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
- package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
- package/src/lib/design/system/sketch/no-visible-change.js +16 -6
- package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
- package/src/lib/design/system/sketch/note-language.d.ts +7 -0
- package/src/lib/design/system/sketch/note-language.js +83 -0
- package/src/lib/design/system/sketch/note-language.js.map +1 -0
- package/src/lib/design/system/sketch/part-definition.d.ts +27 -1
- package/src/lib/design/system/sketch/part-definition.js +109 -17
- package/src/lib/design/system/sketch/part-definition.js.map +1 -1
- package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
- package/src/lib/design/system/sketch/rebase-port.js +215 -0
- package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
- package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-check-cache.d.ts +11 -0
- package/src/lib/design/system/sketch/sketch-check-cache.js +22 -0
- package/src/lib/design/system/sketch/sketch-check-cache.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js +32 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-checker.d.ts +40 -0
- package/src/lib/design/system/sketch/sketch-checker.js +109 -0
- package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch.d.ts +100 -8
- package/src/lib/design/system/sketch/sketch.js +279 -36
- package/src/lib/design/system/sketch/sketch.js.map +1 -1
- package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
- package/src/lib/design/system/sketch/stale-base.js +56 -0
- package/src/lib/design/system/sketch/stale-base.js.map +1 -0
- package/src/lib/design/system/sketch/unchanged-states.d.ts +39 -3
- package/src/lib/design/system/sketch/unchanged-states.js +75 -23
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/unused-closure.js +16 -4
- package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
- package/src/lib/design/system/sketch/viewed-shots.d.ts +32 -0
- package/src/lib/design/system/sketch/viewed-shots.js +54 -0
- package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
- package/src/lib/design/system/skip-classes.d.ts +3 -0
- package/src/lib/design/system/skip-classes.js +17 -0
- package/src/lib/design/system/skip-classes.js.map +1 -0
- package/src/lib/design/system/slot-hosts.d.ts +38 -0
- package/src/lib/design/system/slot-hosts.js +93 -0
- package/src/lib/design/system/slot-hosts.js.map +1 -0
- package/src/lib/design/system/slow-checks.d.ts +44 -0
- package/src/lib/design/system/slow-checks.js +250 -0
- package/src/lib/design/system/slow-checks.js.map +1 -0
- package/src/lib/design/system/slow-run.d.ts +67 -0
- package/src/lib/design/system/slow-run.js +312 -0
- package/src/lib/design/system/slow-run.js.map +1 -0
- package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
- package/src/lib/design/system/stale-design-mocks.js +59 -0
- package/src/lib/design/system/stale-design-mocks.js.map +1 -0
- package/src/lib/design/system/stale-dist.d.ts +61 -0
- package/src/lib/design/system/stale-dist.js +141 -0
- package/src/lib/design/system/stale-dist.js.map +1 -0
- package/src/lib/design/system/stale-parts.d.ts +45 -0
- package/src/lib/design/system/stale-parts.js +168 -0
- package/src/lib/design/system/stale-parts.js.map +1 -0
- package/src/lib/design/system/surface-nesting.d.ts +11 -0
- package/src/lib/design/system/surface-nesting.js +86 -0
- package/src/lib/design/system/surface-nesting.js.map +1 -0
- package/src/lib/design/system/system-command.js +11 -9
- package/src/lib/design/system/system-command.js.map +1 -1
- package/src/lib/design/system/system-modules.d.ts +17 -2
- package/src/lib/design/system/system-modules.js +18 -2
- package/src/lib/design/system/system-modules.js.map +1 -1
- package/src/lib/design/system/system-tsconfig.d.ts +9 -2
- package/src/lib/design/system/system-tsconfig.js +73 -13
- package/src/lib/design/system/system-tsconfig.js.map +1 -1
- package/src/lib/design/system/task-command.d.ts +52 -0
- package/src/lib/design/system/task-command.js +271 -0
- package/src/lib/design/system/task-command.js.map +1 -0
- package/src/lib/design/system/theming-text.d.ts +2 -0
- package/src/lib/design/system/theming-text.js +6 -0
- package/src/lib/design/system/theming-text.js.map +1 -0
- package/src/lib/design/system/touched-parts.d.ts +16 -0
- package/src/lib/design/system/touched-parts.js +121 -0
- package/src/lib/design/system/touched-parts.js.map +1 -0
- package/src/lib/design/system/tracked-reads.d.ts +27 -0
- package/src/lib/design/system/tracked-reads.js +100 -0
- package/src/lib/design/system/tracked-reads.js.map +1 -0
- package/src/lib/design/system/ts-source.d.ts +2 -0
- package/src/lib/design/system/ts-source.js +15 -1
- package/src/lib/design/system/ts-source.js.map +1 -1
- package/src/lib/design/system/unchanged-rows.d.ts +24 -0
- package/src/lib/design/system/unchanged-rows.js +212 -0
- package/src/lib/design/system/unchanged-rows.js.map +1 -0
- package/src/lib/design/system/uncommitted-decisions.d.ts +4 -0
- package/src/lib/design/system/uncommitted-decisions.js +35 -0
- package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
- package/src/lib/design/system/uncovered-regions.d.ts +61 -0
- package/src/lib/design/system/uncovered-regions.js +171 -0
- package/src/lib/design/system/uncovered-regions.js.map +1 -0
- package/src/lib/design/system/unused-base-parts.d.ts +7 -0
- package/src/lib/design/system/unused-base-parts.js +76 -0
- package/src/lib/design/system/unused-base-parts.js.map +1 -0
- package/src/lib/design/system/visible-change-command.d.ts +60 -0
- package/src/lib/design/system/visible-change-command.js +310 -0
- package/src/lib/design/system/visible-change-command.js.map +1 -0
- package/src/lib/design/system/visible-change-parts.d.ts +28 -0
- package/src/lib/design/system/visible-change-parts.js +96 -0
- package/src/lib/design/system/visible-change-parts.js.map +1 -0
- package/src/lib/design/system/visible-change.d.ts +82 -0
- package/src/lib/design/system/visible-change.js +149 -0
- package/src/lib/design/system/visible-change.js.map +1 -0
- package/src/lib/design/system/write-origin.d.ts +12 -0
- package/src/lib/design/system/write-origin.js +18 -0
- package/src/lib/design/system/write-origin.js.map +1 -0
- package/src/lib/design/system-use.js +4 -4
- package/src/lib/design/system-use.js.map +1 -1
- package/src/lib/design/thumb.d.ts +37 -4
- package/src/lib/design/thumb.js +118 -21
- package/src/lib/design/thumb.js.map +1 -1
- package/src/lib/design/timings-command.d.ts +22 -0
- package/src/lib/design/timings-command.js +175 -0
- package/src/lib/design/timings-command.js.map +1 -0
- package/src/lib/design/timings.d.ts +117 -0
- package/src/lib/design/timings.js +296 -0
- package/src/lib/design/timings.js.map +1 -0
- package/src/lib/design/typecheck.d.ts +1 -1
- package/src/lib/design/typecheck.js +5 -5
- package/src/lib/design/typecheck.js.map +1 -1
- package/src/lib/design/unstable-cells.d.ts +23 -0
- package/src/lib/design/unstable-cells.js +40 -0
- package/src/lib/design/unstable-cells.js.map +1 -0
- package/src/lib/design/variant-diff.js +1 -1
- package/src/lib/design/variant-diff.js.map +1 -1
- package/src/lib/design/vite-cache.d.ts +11 -0
- package/src/lib/design/vite-cache.js +61 -0
- package/src/lib/design/vite-cache.js.map +1 -0
- package/src/lib/design/wait.d.ts +15 -0
- package/src/lib/design/wait.js +30 -0
- package/src/lib/design/wait.js.map +1 -0
- package/src/lib/design/warm-draw.d.ts +33 -0
- package/src/lib/design/warm-draw.js +74 -0
- package/src/lib/design/warm-draw.js.map +1 -0
- package/src/lib/design/warm-pages.d.ts +10 -2
- package/src/lib/design/warm-pages.js +6 -2
- package/src/lib/design/warm-pages.js.map +1 -1
- package/src/lib/design/work-root.d.ts +2 -0
- package/src/lib/design/work-root.js +8 -0
- package/src/lib/design/work-root.js.map +1 -0
- package/src/lib/json-file.d.ts +11 -0
- package/src/lib/json-file.js +21 -0
- package/src/lib/json-file.js.map +1 -0
- package/src/lib/plain-output.d.ts +27 -0
- package/src/lib/plain-output.js +66 -0
- package/src/lib/plain-output.js.map +1 -0
- package/src/lib/release.js +11 -3
- package/src/lib/release.js.map +1 -1
- package/src/lib/source-hash.d.ts +7 -0
- package/src/lib/source-hash.js +62 -0
- package/src/lib/source-hash.js.map +1 -0
- package/src/lib/update/agent-setup.js +2 -1
- package/src/lib/update/agent-setup.js.map +1 -1
- package/src/lib/update/commits.js +2 -2
- package/src/lib/update/commits.js.map +1 -1
- package/src/lib/update/migration-manifest.d.ts +12 -0
- package/src/lib/update/migration-manifest.js +13 -0
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/migration-record.js +2 -1
- package/src/lib/update/migration-record.js.map +1 -1
- package/src/lib/update/packages.js +4 -2
- package/src/lib/update/packages.js.map +1 -1
- package/src/lib/update/pending.js +2 -1
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/run-migrations.d.ts +3 -2
- package/src/lib/update/run-migrations.js +38 -5
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/scan.js +8 -2
- package/src/lib/update/scan.js.map +1 -1
- package/src/lib/update/tasks.js +2 -1
- package/src/lib/update/tasks.js.map +1 -1
- package/src/lib/design/paths.js +0 -138
- package/src/lib/design/paths.js.map +0 -1
- package/src/lib/design/system/accept-command.d.ts +0 -7
- package/src/lib/design/system/accept-command.js +0 -55
- package/src/lib/design/system/accept-command.js.map +0 -1
|
@@ -9,21 +9,56 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.renderIssuesOf = exports.groupedIssueLinesOf = exports.renderIssueLineOf = void 0;
|
|
12
|
+
exports.renderIssuesOf = exports.inspectRetryingTimeouts = exports.RENDER_TIMEOUT = exports.RENDER_ISSUES = exports.INSPECTS_AT_ONCE = exports.uniqueIssuesOf = exports.BASELINED_RENDER_RULES = exports.WARNING_RULES = exports.groupedIssueLinesOf = exports.ownerPartOf = exports.renderIssueLineOf = exports.busyStatesOf = void 0;
|
|
13
|
+
const rxjs_1 = require("rxjs");
|
|
14
|
+
const run_yield_1 = require("../run-yield");
|
|
13
15
|
const browser_1 = require("../browser");
|
|
16
|
+
const vite_cache_1 = require("../vite-cache");
|
|
14
17
|
const contrast_check_1 = require("./contrast-check");
|
|
15
18
|
const complete_1 = require("./complete");
|
|
19
|
+
const action_undeclared_1 = require("./action-undeclared");
|
|
20
|
+
const disabled_interaction_1 = require("./disabled-interaction");
|
|
21
|
+
const arrow_anchor_1 = require("./arrow-anchor");
|
|
22
|
+
const off_centre_1 = require("./off-centre");
|
|
16
23
|
const css_source_1 = require("./css-source");
|
|
17
24
|
const serve_1 = require("../serve");
|
|
18
25
|
const shot_1 = require("../shot");
|
|
19
26
|
const thumb_1 = require("../thumb");
|
|
20
|
-
const
|
|
27
|
+
const grid_report_1 = require("./grid-report");
|
|
28
|
+
const sdk_errors_1 = require("./sdk-errors");
|
|
21
29
|
const resolve_product_1 = require("./resolve-product");
|
|
22
30
|
const system_modules_1 = require("./system-modules");
|
|
23
|
-
const unchanged_states_1 = require("./sketch/unchanged-states");
|
|
24
31
|
const option_values_1 = require("./rules/option-values");
|
|
32
|
+
const see_through_1 = require("./see-through");
|
|
33
|
+
const surface_nesting_1 = require("./surface-nesting");
|
|
34
|
+
const nested_scroll_1 = require("./nested-scroll");
|
|
35
|
+
const skip_classes_1 = require("./skip-classes");
|
|
36
|
+
const actions_1 = require("./actions");
|
|
37
|
+
const no_verdict_1 = require("./no-verdict");
|
|
38
|
+
const reach_1 = require("./reach");
|
|
39
|
+
const reachable_controls_1 = require("./reachable-controls");
|
|
40
|
+
const compare_cache_1 = require("./compare-cache");
|
|
41
|
+
const render_issue_key_1 = require("./render-issue-key");
|
|
42
|
+
const served_cache_1 = require("./served-cache");
|
|
43
|
+
const code_hash_1 = require("../code-hash");
|
|
44
|
+
const BUSY_MARK = 'BUSY';
|
|
45
|
+
/** @internal The states the busy marks of `issues` name, once each. */
|
|
46
|
+
const busyStatesOf = (issues) => {
|
|
47
|
+
const seen = new Set();
|
|
48
|
+
return issues.flatMap(({ rule, product, part, state, sketch }) => {
|
|
49
|
+
const key = JSON.stringify([product, part, state, sketch]);
|
|
50
|
+
if (rule !== BUSY_MARK || seen.has(key))
|
|
51
|
+
return [];
|
|
52
|
+
seen.add(key);
|
|
53
|
+
return [{ product, part, state, sketch }];
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
exports.busyStatesOf = busyStatesOf;
|
|
25
57
|
const renderIssueLineOf = (issue) => `${issue.rule} ${issue.product} ${issue.part} ${issue.state} at ${issue.size}: ${issue.path} - ${issue.detail}`;
|
|
26
58
|
exports.renderIssueLineOf = renderIssueLineOf;
|
|
59
|
+
/** The part whose code draws the element of an issue: the innermost embedded part on its path, else the drawn part. */
|
|
60
|
+
const ownerPartOf = (issue) => { var _a, _b; return (_b = (_a = [...issue.path.matchAll(/\[data-et-part=([^\]]+)\]/gu)].pop()) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : issue.part; };
|
|
61
|
+
exports.ownerPartOf = ownerPartOf;
|
|
27
62
|
const SCHEME_IN_DETAIL = / in the (light|dark) scheme/u;
|
|
28
63
|
/** The render issues as lines, one per finding that repeats across states, sizes, schemes and variants, with where it was found. */
|
|
29
64
|
const groupedIssueLinesOf = (issues) => {
|
|
@@ -60,13 +95,17 @@ const SINGLE_LINE = 'button, [role="button"], [role="tab"], [role="switch"], [ro
|
|
|
60
95
|
* Reads the rule breaks in a drawn frame. A string, not a function: the build would add helpers to a
|
|
61
96
|
* function that the page does not have.
|
|
62
97
|
*/
|
|
63
|
-
const ESCAPABLE =
|
|
64
|
-
|
|
98
|
+
const ESCAPABLE = skip_classes_1.ESCAPABLE_RULES;
|
|
99
|
+
/** The render rules that warn instead of failing. A new rule fails, with a rule baseline for its old hits (ADR 0201). */
|
|
100
|
+
exports.WARNING_RULES = new Set(['UNDEFINED-CLASS', 'EMBED-SCALE']);
|
|
101
|
+
/** The render rules whose hits on merged parts the rule baseline of their product lists (ADR 0201). */
|
|
102
|
+
exports.BASELINED_RENDER_RULES = new Set([off_centre_1.OFF_CENTRE_RULE]);
|
|
103
|
+
const BUSY_SELECTOR = '[aria-busy="true"], [data-loading="true"]';
|
|
65
104
|
// complete.ts and this module sit in an import cycle: read PLAIN_CONTROL_SELECTOR here, a top-level copy can be undefined.
|
|
66
105
|
const inspectFrame = (options) => `((options) => {
|
|
67
106
|
const root = document.getElementById('root');
|
|
68
107
|
const refused = root.innerText.trim();
|
|
69
|
-
if (refused.startsWith('design-explore:')) return [{ rule: 'RENDER', path: '#root', detail: refused.split('\\n')
|
|
108
|
+
if (refused.startsWith('design-explore:')) return options.sdkStylesOnly ? [] : [{ rule: 'RENDER', path: '#root', detail: refused.split('\\n').map((line) => line.trim()).filter(Boolean).join(' - ') }];
|
|
70
109
|
|
|
71
110
|
const found = [];
|
|
72
111
|
const seen = new Set();
|
|
@@ -92,7 +131,7 @@ const inspectFrame = (options) => `((options) => {
|
|
|
92
131
|
};
|
|
93
132
|
const pathOf = (element) => {
|
|
94
133
|
const names = [];
|
|
95
|
-
for (let at = element; at && at !== root && names.length <
|
|
134
|
+
for (let at = element; at && at !== root && names.length < ${render_issue_key_1.PATH_DEPTH}; at = at.parentElement) names.unshift(nameOf(at));
|
|
96
135
|
return names.join(' > ');
|
|
97
136
|
};
|
|
98
137
|
const report = (rule, element, detail) => {
|
|
@@ -105,9 +144,22 @@ const inspectFrame = (options) => `((options) => {
|
|
|
105
144
|
const sizeOf = (element) =>
|
|
106
145
|
element.scrollWidth + 'x' + element.scrollHeight + ' in ' + element.clientWidth + 'x' + element.clientHeight;
|
|
107
146
|
|
|
147
|
+
if (options.sdkStylesOnly) {
|
|
148
|
+
for (const element of root.querySelectorAll('.et-visually-hidden')) {
|
|
149
|
+
if (element.getClientRects().length === 0) continue;
|
|
150
|
+
const style = getComputedStyle(element);
|
|
151
|
+
if (style.position !== 'absolute' || style.clipPath === 'none')
|
|
152
|
+
report('UNSTYLED-SDK', element, 'the visually hidden "' + element.textContent.trim().slice(0, 32) + '" draws in the picture, so an SDK component here renders without its styles');
|
|
153
|
+
}
|
|
154
|
+
return found;
|
|
155
|
+
}
|
|
156
|
+
|
|
108
157
|
const partRoot = root.querySelector('[data-et-part]') ?? root.querySelector(':scope > :not(style)');
|
|
109
158
|
if (!partRoot) return found;
|
|
110
159
|
|
|
160
|
+
const busy = root.querySelector('${BUSY_SELECTOR}');
|
|
161
|
+
if (busy) found.push({ rule: '${BUSY_MARK}', path: pathOf(busy), detail: 'draws ongoing work' });
|
|
162
|
+
|
|
111
163
|
const sheets = [...document.styleSheets].map((sheet) => {
|
|
112
164
|
try {
|
|
113
165
|
return [...sheet.cssRules].map((rule) => rule.cssText).join('\\n');
|
|
@@ -170,19 +222,31 @@ const inspectFrame = (options) => `((options) => {
|
|
|
170
222
|
}
|
|
171
223
|
|
|
172
224
|
const clips = (value) => value === 'hidden' || value === 'clip';
|
|
225
|
+
const isMoved = (style) => style.transform !== 'none' || (style.translate && style.translate !== 'none');
|
|
226
|
+
const isPanned = (style) => (style.translate && style.translate !== 'none') || style.transform.startsWith('matrix(1, 0, 0, 1,');
|
|
227
|
+
const scaledChildOf = (element) =>
|
|
228
|
+
[...element.children].find((child) => {
|
|
229
|
+
const style = getComputedStyle(child);
|
|
230
|
+
return isMoved(style) && !isPanned(style);
|
|
231
|
+
});
|
|
173
232
|
const drawnSizeOf = (element) => {
|
|
174
|
-
|
|
175
|
-
|
|
233
|
+
const scaled = element.hasAttribute('data-et-embed-box') ? element.firstElementChild : scaledChildOf(element);
|
|
234
|
+
if (!scaled) return { width: element.scrollWidth, height: element.scrollHeight };
|
|
235
|
+
const rect = scaled.getBoundingClientRect();
|
|
176
236
|
return { width: Math.floor(rect.width), height: Math.floor(rect.height) };
|
|
177
237
|
};
|
|
238
|
+
const clipMarginOf = (style, axis) => (style[axis] === 'clip' ? parseFloat((style.overflowClipMargin ?? '').split(' ').pop()) || 0 : 0);
|
|
239
|
+
const drawsByClipping = (element) => element.closest('.et-spinner') !== null;
|
|
240
|
+
const pans = (element, style) => /^grab/.test(style.cursor) || [...element.children].some((child) => isPanned(getComputedStyle(child)));
|
|
178
241
|
for (const element of root.querySelectorAll('*')) {
|
|
179
242
|
const style = getComputedStyle(element);
|
|
180
243
|
const drawn = drawnSizeOf(element);
|
|
181
|
-
const cutX = clips(style.overflowX) && drawn.width > element.clientWidth;
|
|
182
|
-
const cutY = clips(style.overflowY) && drawn.height > element.clientHeight;
|
|
183
|
-
const cutsOnPurpose = style.textOverflow === 'ellipsis' || style.webkitLineClamp !== 'none';
|
|
244
|
+
const cutX = clips(style.overflowX) && drawn.width > element.clientWidth + clipMarginOf(style, 'overflowX');
|
|
245
|
+
const cutY = clips(style.overflowY) && drawn.height > element.clientHeight + clipMarginOf(style, 'overflowY');
|
|
246
|
+
const cutsOnPurpose = style.textOverflow === 'ellipsis' || style.webkitLineClamp !== 'none' || pans(element, style) || drawsByClipping(element);
|
|
184
247
|
if ((cutX || cutY) && !cutsOnPurpose) report('CLIPPED', element, 'content ' + drawn.width + 'x' + drawn.height + ' in ' + element.clientWidth + 'x' + element.clientHeight);
|
|
185
248
|
}
|
|
249
|
+
${nested_scroll_1.NESTED_SCROLL_STATEMENTS}
|
|
186
250
|
|
|
187
251
|
const px = (value) => parseFloat(value) || 0;
|
|
188
252
|
const invisible = (colour) => colour === 'transparent' || /^rgba\\(.*,\\s*0\\)$/.test(colour);
|
|
@@ -198,16 +262,39 @@ const inspectFrame = (options) => `((options) => {
|
|
|
198
262
|
const rect = at.getBoundingClientRect();
|
|
199
263
|
const left = rect.left + at.clientLeft;
|
|
200
264
|
const top = rect.top + at.clientTop;
|
|
265
|
+
const marginX = clipMarginOf(style, 'overflowX');
|
|
266
|
+
const marginY = clipMarginOf(style, 'overflowY');
|
|
201
267
|
const box = {
|
|
202
|
-
left: style.overflowX === 'visible' ? -Infinity : left,
|
|
203
|
-
right: style.overflowX === 'visible' ? Infinity : left + at.clientWidth,
|
|
204
|
-
top: style.overflowY === 'visible' ? -Infinity : top,
|
|
205
|
-
bottom: style.overflowY === 'visible' ? Infinity : top + at.clientHeight,
|
|
268
|
+
left: style.overflowX === 'visible' ? -Infinity : left - marginX,
|
|
269
|
+
right: style.overflowX === 'visible' ? Infinity : left + at.clientWidth + marginX,
|
|
270
|
+
top: style.overflowY === 'visible' ? -Infinity : top - marginY,
|
|
271
|
+
bottom: style.overflowY === 'visible' ? Infinity : top + at.clientHeight + marginY,
|
|
206
272
|
};
|
|
207
|
-
return { name: pathOf(at), box };
|
|
273
|
+
return { name: pathOf(at), box, style, element: at };
|
|
208
274
|
}
|
|
209
275
|
return frameBox();
|
|
210
276
|
};
|
|
277
|
+
const movedBetween = (from, clipper) => {
|
|
278
|
+
for (let at = from; at && at !== clipper; at = at.parentElement) {
|
|
279
|
+
const style = getComputedStyle(at);
|
|
280
|
+
if (isMoved(style)) return true;
|
|
281
|
+
}
|
|
282
|
+
return false;
|
|
283
|
+
};
|
|
284
|
+
const ringClipOf = (element) => {
|
|
285
|
+
const clip = clipOf(element.parentElement);
|
|
286
|
+
if (!clip.element) return clip;
|
|
287
|
+
const moved = movedBetween(element, clip.element);
|
|
288
|
+
const panX = moved || clip.element.scrollWidth > clip.element.clientWidth;
|
|
289
|
+
const panY = moved || clip.element.scrollHeight > clip.element.clientHeight;
|
|
290
|
+
const box = {
|
|
291
|
+
left: panX ? -Infinity : clip.box.left,
|
|
292
|
+
right: panX ? Infinity : clip.box.right,
|
|
293
|
+
top: panY ? -Infinity : clip.box.top,
|
|
294
|
+
bottom: panY ? Infinity : clip.box.bottom,
|
|
295
|
+
};
|
|
296
|
+
return { ...clip, box };
|
|
297
|
+
};
|
|
211
298
|
const pastOf = (rect, reach, box) =>
|
|
212
299
|
Math.max(
|
|
213
300
|
rect.left >= box.left ? box.left - (rect.left - reach.left) : 0,
|
|
@@ -237,13 +324,44 @@ const inspectFrame = (options) => `((options) => {
|
|
|
237
324
|
if (rect.width === 0 && rect.height === 0) continue;
|
|
238
325
|
const outline = style.outlineStyle !== 'none' && !invisible(style.outlineColor) ? Math.max(0, px(style.outlineWidth) + px(style.outlineOffset)) : 0;
|
|
239
326
|
const shadow = shadowReachOf(style.boxShadow);
|
|
240
|
-
const clip =
|
|
327
|
+
const clip = ringClipOf(element);
|
|
241
328
|
const outlinePast = outline > 0 ? pastOf(rect, { left: outline, right: outline, top: outline, bottom: outline }, clip.box) : 0;
|
|
242
329
|
const shadowPast = pastOf(rect, shadow, clip.box);
|
|
243
330
|
if (outlinePast > 1) report('CLIPPED', element, 'outline ' + Math.round(outlinePast) + 'px past ' + clip.name);
|
|
244
331
|
else if (shadowPast > 1) report('CLIPPED', element, 'box-shadow ' + Math.round(shadowPast) + 'px past ' + clip.name);
|
|
245
332
|
}
|
|
246
333
|
|
|
334
|
+
const unseen = (element) => {
|
|
335
|
+
if (getComputedStyle(element).visibility === 'hidden' || element.closest('[inert], [aria-hidden="true"]')) return true;
|
|
336
|
+
for (let at = element; at && at !== root; at = at.parentElement) if (getComputedStyle(at).opacity === '0') return true;
|
|
337
|
+
return false;
|
|
338
|
+
};
|
|
339
|
+
${reachable_controls_1.REACHABLE_CONTROLS_STATEMENTS}
|
|
340
|
+
const interactive = ${JSON.stringify(actions_1.INTERACTIVE_SELECTOR)};
|
|
341
|
+
for (const element of reachableControlsOf(root, interactive)) {
|
|
342
|
+
const rect = element.getBoundingClientRect();
|
|
343
|
+
if (rect.width === 0 || rect.height === 0) continue;
|
|
344
|
+
const clip = clipOf(element.parentElement);
|
|
345
|
+
if (!clip.style || unseen(element)) continue;
|
|
346
|
+
const shown = {
|
|
347
|
+
width: Math.min(rect.right, clip.box.right) - Math.max(rect.left, clip.box.left),
|
|
348
|
+
height: Math.min(rect.bottom, clip.box.bottom) - Math.max(rect.top, clip.box.top),
|
|
349
|
+
};
|
|
350
|
+
if (shown.width <= 0 || shown.height <= 0) continue;
|
|
351
|
+
const cuts = [];
|
|
352
|
+
if (clips(clip.style.overflowX) && rect.width - shown.width > 1) cuts.push(Math.round(rect.width - shown.width) + 'px of its width');
|
|
353
|
+
if (clips(clip.style.overflowY) && rect.height - shown.height > 1) cuts.push(Math.round(rect.height - shown.height) + 'px of its height');
|
|
354
|
+
if (cuts.length) report('CUT-CONTROL', element, cuts.join(' and ') + ' is cut by ' + clip.name + ', so the control is only partly reachable');
|
|
355
|
+
}
|
|
356
|
+
for (const element of root.querySelectorAll('[data-et-skip~="CLIPPED"]')) {
|
|
357
|
+
if (reachableControlsOf(element, interactive).length === 0) continue;
|
|
358
|
+
const path = pathOf(element);
|
|
359
|
+
if (seen.has('SKIP-SCOPE' + path)) continue;
|
|
360
|
+
seen.add('SKIP-SCOPE' + path);
|
|
361
|
+
found.push({ rule: 'SKIP-SCOPE', path, detail: 'data-et-skip=CLIPPED on ' + path + ' covers interactive controls - put the skip on the clipped element itself' });
|
|
362
|
+
}
|
|
363
|
+
${reach_1.REACH_STATEMENTS}
|
|
364
|
+
|
|
247
365
|
const metrics = document.createElement('canvas').getContext('2d');
|
|
248
366
|
for (const element of root.querySelectorAll('*')) {
|
|
249
367
|
const style = getComputedStyle(element);
|
|
@@ -287,6 +405,7 @@ const inspectFrame = (options) => `((options) => {
|
|
|
287
405
|
for (const [block, nodes] of groups) {
|
|
288
406
|
const style = getComputedStyle(block);
|
|
289
407
|
if (!singleLine(block) && style.whiteSpace !== 'nowrap' && style.textWrapMode !== 'nowrap') continue;
|
|
408
|
+
if (style.webkitLineClamp !== 'none') continue;
|
|
290
409
|
const lines = [];
|
|
291
410
|
for (const node of nodes) {
|
|
292
411
|
const range = document.createRange();
|
|
@@ -303,6 +422,8 @@ const inspectFrame = (options) => `((options) => {
|
|
|
303
422
|
}
|
|
304
423
|
}
|
|
305
424
|
${contrast_check_1.CONTRAST_STATEMENTS}
|
|
425
|
+
${see_through_1.SEE_THROUGH_STATEMENTS}
|
|
426
|
+
${surface_nesting_1.SURFACE_STATEMENTS}
|
|
306
427
|
const ownedOf = (element) => {
|
|
307
428
|
const slotted = (element.getAttribute('data-et-slot') ?? '').split(' ').filter(Boolean);
|
|
308
429
|
for (let at = element; at && at !== root; at = at.parentElement)
|
|
@@ -313,17 +434,25 @@ ${contrast_check_1.CONTRAST_STATEMENTS}
|
|
|
313
434
|
}
|
|
314
435
|
return true;
|
|
315
436
|
};
|
|
437
|
+
const textOf = (node) =>
|
|
438
|
+
[...node.childNodes]
|
|
439
|
+
.map((child) => (child.nodeType === Node.TEXT_NODE ? child.data : child.nodeType === Node.ELEMENT_NODE && !child.matches('style, script, template') ? textOf(child) : ''))
|
|
440
|
+
.join('');
|
|
316
441
|
if (options.part !== null)
|
|
317
442
|
for (const element of root.querySelectorAll(options.controlInputs)) {
|
|
318
443
|
if (element.getClientRects().length === 0 || element.closest('[data-et-control]') || !ownedOf(element)) continue;
|
|
319
444
|
if (element.matches('[role="option"], [role^="menuitem"]') && element.closest('[data-et-surface]')) continue;
|
|
320
445
|
const sdk = element.parentElement?.closest(options.sdkControls);
|
|
321
446
|
if (sdk && root.contains(sdk)) continue;
|
|
322
|
-
const text = (element.
|
|
447
|
+
const text = (element.getAttribute('aria-label') || textOf(element).trim() || element.getAttribute('placeholder') || '').replace(/\\s+/g, ' ');
|
|
323
448
|
const cls = [...element.classList].find((name) => !/^et-(surface|color)--/.test(name));
|
|
324
449
|
const named = element.tagName.toLowerCase() + (cls ? '.' + cls : '') + (text ? ' "' + (text.length > 32 ? text.slice(0, 31) + '…' : text) + '"' : '');
|
|
325
450
|
report('CONTROL-PART-INPUT', element, named + ' is a control without data-et-control, so no control check sees it - mark it with control(markup, name) from @ethlete/components/design/control and declare the name in controls');
|
|
326
451
|
}
|
|
452
|
+
${action_undeclared_1.ACTION_UNDECLARED_STATEMENTS}
|
|
453
|
+
${arrow_anchor_1.ARROW_ANCHOR_STATEMENTS}
|
|
454
|
+
${off_centre_1.OFF_CENTRE_STATEMENTS}
|
|
455
|
+
${disabled_interaction_1.DISABLED_INTERACTION_STATEMENTS}
|
|
327
456
|
return found;
|
|
328
457
|
})(${JSON.stringify(Object.assign(Object.assign({}, options), { escapable: ESCAPABLE, controlInputs: complete_1.PLAIN_CONTROL_SELECTOR, sdkControls: complete_1.SDK_CONTROLS.join(', ') }))})`;
|
|
329
458
|
const stringsOf = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === 'string') : [];
|
|
@@ -346,30 +475,164 @@ const firstOfEach = (issues) => {
|
|
|
346
475
|
return true;
|
|
347
476
|
});
|
|
348
477
|
};
|
|
478
|
+
const uniqueIssuesOf = (issues) => {
|
|
479
|
+
const seen = new Set();
|
|
480
|
+
return issues.filter((issue) => {
|
|
481
|
+
const perState = issue.rule !== 'SKIP-SCOPE';
|
|
482
|
+
const key = JSON.stringify([
|
|
483
|
+
issue.product,
|
|
484
|
+
issue.part,
|
|
485
|
+
issue.sketch,
|
|
486
|
+
perState ? issue.state : null,
|
|
487
|
+
perState ? issue.size : null,
|
|
488
|
+
issue.rule,
|
|
489
|
+
issue.path,
|
|
490
|
+
issue.detail,
|
|
491
|
+
]);
|
|
492
|
+
if (seen.has(key))
|
|
493
|
+
return false;
|
|
494
|
+
seen.add(key);
|
|
495
|
+
return true;
|
|
496
|
+
});
|
|
497
|
+
};
|
|
498
|
+
exports.uniqueIssuesOf = uniqueIssuesOf;
|
|
349
499
|
const widthsOf = (value) => Array.isArray(value)
|
|
350
500
|
? value.filter((width) => typeof width === 'number' && Number.isInteger(width) && width > 0)
|
|
351
501
|
: [];
|
|
502
|
+
const PART_TIMEOUT_MS = 120000;
|
|
503
|
+
/** @internal How many frames of one part `inspect` draws at once, each on a page of its own. */
|
|
504
|
+
exports.INSPECTS_AT_ONCE = 4;
|
|
505
|
+
/** The cache folder of the render issues of each part, kept with the responses its drawing loaded. */
|
|
506
|
+
exports.RENDER_ISSUES = 'render-issues';
|
|
507
|
+
const RENDER_ISSUES_LIMIT = 64 * 1024 * 1024;
|
|
508
|
+
const embedControlsOf = (controls) => typeof controls === 'object' && controls !== null
|
|
509
|
+
? Object.entries(controls)
|
|
510
|
+
.filter(([, declared]) => typeof (declared === null || declared === void 0 ? void 0 : declared.part) === 'string')
|
|
511
|
+
.map(([name]) => name)
|
|
512
|
+
: [];
|
|
513
|
+
/** The render rule of a part whose drawing did not finish in time, apart from a part that failed to draw. */
|
|
514
|
+
exports.RENDER_TIMEOUT = 'RENDER-TIMEOUT';
|
|
515
|
+
const timedOutKeyOf = (address) => JSON.stringify([address.product, address.part, address.sketch]);
|
|
516
|
+
/** @internal Inspects `frames`, then the parts that timed out once more alone, and keeps that second answer. */
|
|
517
|
+
const inspectRetryingTimeouts = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
518
|
+
var _a;
|
|
519
|
+
const inspectOf = (_a = options.inspectOf) !== null && _a !== void 0 ? _a : inspect;
|
|
520
|
+
const first = yield inspectOf(options);
|
|
521
|
+
const timedOut = new Set(first.filter((issue) => issue.rule === exports.RENDER_TIMEOUT).map(timedOutKeyOf));
|
|
522
|
+
if (timedOut.size === 0)
|
|
523
|
+
return first;
|
|
524
|
+
const again = yield inspectOf(Object.assign(Object.assign({}, options), { frames: options.frames.filter((frame) => timedOut.has(timedOutKeyOf(frame.address))), onPart: undefined }));
|
|
525
|
+
return [...first.filter((issue) => !timedOut.has(timedOutKeyOf(issue))), ...again];
|
|
526
|
+
});
|
|
527
|
+
exports.inspectRetryingTimeouts = inspectRetryingTimeouts;
|
|
528
|
+
const inspectedFrameOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
529
|
+
const { page, base, frame } = options;
|
|
530
|
+
yield page.emulateMedia({ colorScheme: frame.contrast.scheme });
|
|
531
|
+
yield page.setViewportSize(frame.viewport);
|
|
532
|
+
yield (0, thumb_1.openFrame)(page, `${base}/frame.html?${frame.search}`);
|
|
533
|
+
yield (0, thumb_1.awaitSettled)(page);
|
|
534
|
+
const inspected = {
|
|
535
|
+
fixed: frame.fixed,
|
|
536
|
+
fit: frame.fit,
|
|
537
|
+
skips: frame.skips,
|
|
538
|
+
namespaces: frame.namespaces,
|
|
539
|
+
contrast: frame.contrast,
|
|
540
|
+
part: frame.controlInputs ? frame.address.part : null,
|
|
541
|
+
embedControls: frame.embedControls,
|
|
542
|
+
};
|
|
543
|
+
const inFrame = (yield page.evaluate(inspectFrame(inspected)));
|
|
544
|
+
yield page.evaluate((0, shot_1.emptySlotsScriptOf)(frame.address.part));
|
|
545
|
+
const unstyled = (yield page.evaluate(inspectFrame(Object.assign(Object.assign({}, inspected), { sdkStylesOnly: true }))));
|
|
546
|
+
const { product, part, state, sketch } = frame.address;
|
|
547
|
+
return [...inFrame, ...unstyled].map((issue) => (Object.assign(Object.assign({}, issue), { product, part, state, sketch, size: frame.size })));
|
|
548
|
+
});
|
|
352
549
|
const inspect = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
353
|
-
|
|
550
|
+
var _a, _b, _c, _d, _e;
|
|
551
|
+
const { browser, base, frames, cache } = options;
|
|
552
|
+
const timeoutMs = (_a = options.timeoutMs) !== null && _a !== void 0 ? _a : PART_TIMEOUT_MS;
|
|
354
553
|
const context = yield browser.newContext();
|
|
554
|
+
let requested = [];
|
|
555
|
+
yield context.addInitScript(action_undeclared_1.CLICK_LISTENER_INIT_SCRIPT);
|
|
556
|
+
if (cache)
|
|
557
|
+
(0, served_cache_1.recordRequests)(context, () => requested);
|
|
355
558
|
const issues = [];
|
|
559
|
+
const groups = new Map();
|
|
560
|
+
for (const frame of frames) {
|
|
561
|
+
const { product, part, sketch } = frame.address;
|
|
562
|
+
const key = JSON.stringify([product, part, sketch]);
|
|
563
|
+
groups.set(key, [...((_b = groups.get(key)) !== null && _b !== void 0 ? _b : []), frame]);
|
|
564
|
+
}
|
|
356
565
|
try {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
yield
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
566
|
+
let lanes = [];
|
|
567
|
+
let done = 0;
|
|
568
|
+
for (const group of groups.values()) {
|
|
569
|
+
yield (0, run_yield_1.yieldRun)();
|
|
570
|
+
const started = Date.now();
|
|
571
|
+
const first = (_c = group[0]) === null || _c === void 0 ? void 0 : _c.address;
|
|
572
|
+
const key = cache ? (0, compare_cache_1.cacheKeyOf)([cache.salt, group]) : null;
|
|
573
|
+
const hit = cache && key ? yield (0, served_cache_1.servedHitOf)(cache, key) : null;
|
|
574
|
+
if (hit) {
|
|
575
|
+
issues.push(...hit);
|
|
576
|
+
done++;
|
|
577
|
+
if (first)
|
|
578
|
+
(_d = options.onPart) === null || _d === void 0 ? void 0 : _d.call(options, { done, total: groups.size, part: first.part, ms: Date.now() - started });
|
|
579
|
+
continue;
|
|
580
|
+
}
|
|
581
|
+
const width = Math.min(exports.INSPECTS_AT_ONCE, group.length);
|
|
582
|
+
while (lanes.length < width) {
|
|
583
|
+
const page = yield context.newPage();
|
|
584
|
+
if (cache)
|
|
585
|
+
yield (yield context.newCDPSession(page)).send('Network.setCacheDisabled', { cacheDisabled: true });
|
|
586
|
+
lanes.push({ page, sdkErrors: (0, sdk_errors_1.watchSdkErrorLines)(page) });
|
|
587
|
+
}
|
|
588
|
+
requested = [];
|
|
589
|
+
const found = group.map(() => []);
|
|
590
|
+
let next = 0;
|
|
591
|
+
const drawn = Promise.all(lanes.slice(0, width).map((_a) => __awaiter(void 0, [_a], void 0, function* ({ page }) {
|
|
592
|
+
for (let at = next++; at < group.length; at = next++) {
|
|
593
|
+
const frame = group[at];
|
|
594
|
+
if (frame)
|
|
595
|
+
found[at] = yield inspectedFrameOf({ page, base, frame });
|
|
596
|
+
}
|
|
370
597
|
})));
|
|
371
|
-
|
|
372
|
-
|
|
598
|
+
drawn.catch(() => undefined);
|
|
599
|
+
const result = yield (0, rxjs_1.firstValueFrom)((0, rxjs_1.race)((0, rxjs_1.from)(drawn).pipe((0, rxjs_1.map)(() => 'drawn')), (0, rxjs_1.timer)(timeoutMs).pipe((0, rxjs_1.map)(() => 'timeout'))));
|
|
600
|
+
if (result === 'timeout') {
|
|
601
|
+
yield Promise.all(lanes.map(({ page }) => page.close().catch(() => undefined)));
|
|
602
|
+
lanes = [];
|
|
603
|
+
if (first)
|
|
604
|
+
issues.push({
|
|
605
|
+
rule: exports.RENDER_TIMEOUT,
|
|
606
|
+
product: first.product,
|
|
607
|
+
part: first.part,
|
|
608
|
+
state: '-',
|
|
609
|
+
size: '-',
|
|
610
|
+
path: '-',
|
|
611
|
+
detail: `drawing the part did not finish within ${Math.round(timeoutMs / 1000)}s`,
|
|
612
|
+
sketch: first.sketch,
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
else {
|
|
616
|
+
const groupIssues = found.flat();
|
|
617
|
+
if (first)
|
|
618
|
+
for (const line of new Set(lanes.flatMap(({ sdkErrors }) => sdkErrors.drain())))
|
|
619
|
+
groupIssues.push({
|
|
620
|
+
rule: 'RENDER',
|
|
621
|
+
product: first.product,
|
|
622
|
+
part: first.part,
|
|
623
|
+
state: '-',
|
|
624
|
+
size: '-',
|
|
625
|
+
path: '-',
|
|
626
|
+
detail: `logged SDK error ${line.split('\n')[0]}`,
|
|
627
|
+
sketch: first.sketch,
|
|
628
|
+
});
|
|
629
|
+
issues.push(...groupIssues);
|
|
630
|
+
if (cache && key)
|
|
631
|
+
yield (0, served_cache_1.writeServed)(cache, { key, requested, value: groupIssues });
|
|
632
|
+
}
|
|
633
|
+
done++;
|
|
634
|
+
if (first)
|
|
635
|
+
(_e = options.onPart) === null || _e === void 0 ? void 0 : _e.call(options, { done, total: groups.size, part: first.part, ms: Date.now() - started });
|
|
373
636
|
}
|
|
374
637
|
}
|
|
375
638
|
finally {
|
|
@@ -383,35 +646,48 @@ const inspect = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
383
646
|
* its content. Answers the rule breaks it finds, or why it could not draw.
|
|
384
647
|
*/
|
|
385
648
|
const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
386
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
649
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
387
650
|
const { target, config, jobs } = options;
|
|
388
651
|
const resolveChromium = (_a = options.chromiumOf) !== null && _a !== void 0 ? _a : browser_1.chromiumOf;
|
|
652
|
+
const timeoutMs = (_b = options.partTimeoutMs) !== null && _b !== void 0 ? _b : (0, no_verdict_1.loadScaledMs)(PART_TIMEOUT_MS);
|
|
389
653
|
if (jobs.length === 0)
|
|
390
654
|
return { issues: [], warnings: [], grids: [], drawn: [] };
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
655
|
+
const chromium = yield resolveChromium(target);
|
|
656
|
+
if (!chromium)
|
|
657
|
+
return {
|
|
658
|
+
unavailable: `neither ${target} nor this package (${__dirname}) resolves playwright or playwright-core, so there is no Chromium to launch`,
|
|
659
|
+
};
|
|
660
|
+
const { warm } = options;
|
|
661
|
+
const queue = warm ? warm.queue() : (0, thumb_1.createDrawQueue)({ target, chromiumOf: resolveChromium });
|
|
662
|
+
const server = warm ? yield warm.server(config) : yield (0, serve_1.createDesignServer)({ target, config, listen: true, port: 0 });
|
|
396
663
|
try {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
const
|
|
664
|
+
if (!warm)
|
|
665
|
+
yield server.listen();
|
|
666
|
+
const address = (_c = server.httpServer) === null || _c === void 0 ? void 0 : _c.address();
|
|
667
|
+
const base = `http://localhost:${address.port}`;
|
|
668
|
+
const cache = options.cached
|
|
669
|
+
? {
|
|
670
|
+
store: (0, served_cache_1.createServedCache)((0, vite_cache_1.viteCacheOf)(target, exports.RENDER_ISSUES), RENDER_ISSUES_LIMIT),
|
|
671
|
+
served: (0, served_cache_1.createServedHashes)(base, (0, served_cache_1.fetchServedOf)((0, served_cache_1.reachableBaseOf)(address))),
|
|
672
|
+
salt: `${(0, code_hash_1.renderInspectCodeOf)()} ${(0, compare_cache_1.browserVersionOf)(chromium.from)}`,
|
|
673
|
+
}
|
|
674
|
+
: undefined;
|
|
400
675
|
const system = (0, system_modules_1.createSystemModules)({ target, config });
|
|
401
|
-
shots = (0, shot_1.createPartShooter)({ target, base, system, queue });
|
|
402
676
|
const frames = [];
|
|
403
677
|
const issues = [];
|
|
404
678
|
const grids = [];
|
|
405
679
|
const gridWarnings = [];
|
|
406
680
|
const baselines = new Map();
|
|
407
|
-
|
|
681
|
+
const mergedSkips = new Map();
|
|
682
|
+
const framed = new Map();
|
|
683
|
+
for (const { product, sketch, parts, unchanged } of jobs) {
|
|
408
684
|
const skips = {};
|
|
409
685
|
const drawn = system.drawnOf(product, sketch);
|
|
410
686
|
if (!drawn)
|
|
411
687
|
continue;
|
|
412
688
|
const optionValuesOf = (0, option_values_1.optionValuesChecker)({ target, config, parts: drawn.parts });
|
|
413
689
|
const merged = sketch ? system.productOf(product) : null;
|
|
414
|
-
const mergedOptionValuesOf = (0, option_values_1.optionValuesChecker)({ target, config, parts: (
|
|
690
|
+
const mergedOptionValuesOf = (0, option_values_1.optionValuesChecker)({ target, config, parts: (_d = merged === null || merged === void 0 ? void 0 : merged.parts) !== null && _d !== void 0 ? _d : [] });
|
|
415
691
|
const namespaces = namespacesOf(drawn.parts.map((part) => part.cssSource));
|
|
416
692
|
const schemes = (0, contrast_check_1.schemesOf)(drawn.parts.map((part) => part.cssSource));
|
|
417
693
|
for (const part of drawn.parts) {
|
|
@@ -429,17 +705,17 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
429
705
|
state: '-',
|
|
430
706
|
size: '-',
|
|
431
707
|
path: '-',
|
|
432
|
-
detail: (
|
|
708
|
+
detail: (_e = loaded.error.split('\n')[0]) !== null && _e !== void 0 ? _e : '',
|
|
433
709
|
sketch,
|
|
434
710
|
});
|
|
435
711
|
continue;
|
|
436
712
|
}
|
|
437
713
|
const definition = loaded.module.default;
|
|
438
|
-
skips[key] = stringsOf((
|
|
714
|
+
skips[key] = stringsOf((_f = definition === null || definition === void 0 ? void 0 : definition.checks) === null || _f === void 0 ? void 0 : _f.skip);
|
|
439
715
|
if (parts && !parts.includes(key))
|
|
440
716
|
continue;
|
|
441
717
|
const states = (definition === null || definition === void 0 ? void 0 : definition.states) && typeof definition.states === 'object' ? Object.keys(definition.states) : [];
|
|
442
|
-
const grid = (0,
|
|
718
|
+
const grid = (0, grid_report_1.gridReportOf)(definition === null || definition === void 0 ? void 0 : definition.grid, states);
|
|
443
719
|
const mergedPart = merged === null || merged === void 0 ? void 0 : merged.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === key);
|
|
444
720
|
const mergedDefinition = mergedPart
|
|
445
721
|
? (yield server.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file: mergedPart.file, product })))['default']
|
|
@@ -460,27 +736,16 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
460
736
|
sketch,
|
|
461
737
|
});
|
|
462
738
|
}
|
|
463
|
-
const
|
|
464
|
-
|
|
465
|
-
const foundSketch = compare
|
|
466
|
-
? system.sketchesOf(product).find((candidate) => candidate.target === sketch.target)
|
|
467
|
-
: null;
|
|
468
|
-
const unchanged = baseline && foundSketch && sketch
|
|
469
|
-
? yield (0, unchanged_states_1.unchangedStatesOf)({
|
|
470
|
-
product: baseline,
|
|
471
|
-
sketch: foundSketch,
|
|
472
|
-
variant: sketch.variant,
|
|
473
|
-
part: key,
|
|
474
|
-
compareFrames: false,
|
|
475
|
-
states: states.filter(complete_1.isInteractionState),
|
|
476
|
-
pictureOf: shots.pictureOf,
|
|
477
|
-
load: ({ file, product: name, sketch: variant }) => server.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product: name, sketch: variant })),
|
|
478
|
-
})
|
|
739
|
+
const mergedStates = (mergedDefinition === null || mergedDefinition === void 0 ? void 0 : mergedDefinition.states) && typeof mergedDefinition.states === 'object'
|
|
740
|
+
? Object.keys(mergedDefinition.states)
|
|
479
741
|
: [];
|
|
480
|
-
|
|
742
|
+
const base = mergedPart ? { controls: mergedDefinition === null || mergedDefinition === void 0 ? void 0 : mergedDefinition.controls, states: mergedStates } : null;
|
|
743
|
+
for (const gap of (0, complete_1.introducedControlStateGapsOf)({
|
|
481
744
|
part: key,
|
|
482
745
|
controls: definition === null || definition === void 0 ? void 0 : definition.controls,
|
|
483
|
-
states
|
|
746
|
+
states,
|
|
747
|
+
sketch: !!sketch,
|
|
748
|
+
base,
|
|
484
749
|
}))
|
|
485
750
|
issues.push({
|
|
486
751
|
rule: gap.code,
|
|
@@ -506,8 +771,8 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
506
771
|
sketch,
|
|
507
772
|
}));
|
|
508
773
|
}
|
|
509
|
-
const exceptions = (0, contrast_check_1.contrastExceptionsOf)((
|
|
510
|
-
const pairs = (0, contrast_check_1.contrastPairsOf)((
|
|
774
|
+
const exceptions = (0, contrast_check_1.contrastExceptionsOf)((_g = definition === null || definition === void 0 ? void 0 : definition.contrast) === null || _g === void 0 ? void 0 : _g.exceptions);
|
|
775
|
+
const pairs = (0, contrast_check_1.contrastPairsOf)((_h = definition === null || definition === void 0 ? void 0 : definition.contrast) === null || _h === void 0 ? void 0 : _h.pairs);
|
|
511
776
|
exceptions.problems.forEach((detail) => issues.push({ rule: 'CONTRAST', product, part: key, state: '-', size: '-', path: '-', detail, sketch }));
|
|
512
777
|
const sizesOf = (widths, presets) => part.layer === 'pages'
|
|
513
778
|
? Object.keys(presets).map((preset) => ({ preset, width: null }))
|
|
@@ -516,35 +781,44 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
516
781
|
: [{ preset: null, width: null }];
|
|
517
782
|
const sizes = sizesOf(widthsOf(definition === null || definition === void 0 ? void 0 : definition.widths), drawn.presets);
|
|
518
783
|
const controlInputs = part.layer !== 'foundations';
|
|
784
|
+
const embedControls = embedControlsOf(definition === null || definition === void 0 ? void 0 : definition.controls);
|
|
519
785
|
const baselineKey = JSON.stringify([product, key]);
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
:
|
|
524
|
-
|
|
525
|
-
|
|
786
|
+
framed.set(JSON.stringify([product, key, sketch]), typeof (definition === null || definition === void 0 ? void 0 : definition.frame) === 'function');
|
|
787
|
+
if (merged && mergedPart && !baselines.has(baselineKey)) {
|
|
788
|
+
const mergedContrast = {
|
|
789
|
+
exceptions: (0, contrast_check_1.contrastExceptionsOf)((_j = mergedDefinition === null || mergedDefinition === void 0 ? void 0 : mergedDefinition.contrast) === null || _j === void 0 ? void 0 : _j.exceptions).selectors,
|
|
790
|
+
pairs: (0, contrast_check_1.contrastPairsOf)((_k = mergedDefinition === null || mergedDefinition === void 0 ? void 0 : mergedDefinition.contrast) === null || _k === void 0 ? void 0 : _k.pairs),
|
|
791
|
+
};
|
|
792
|
+
const measured = new Set();
|
|
793
|
+
mergedSkips.set(baselineKey, stringsOf((_l = mergedDefinition === null || mergedDefinition === void 0 ? void 0 : mergedDefinition.checks) === null || _l === void 0 ? void 0 : _l.skip));
|
|
794
|
+
framed.set(JSON.stringify([product, key, null]), typeof (mergedDefinition === null || mergedDefinition === void 0 ? void 0 : mergedDefinition.frame) === 'function');
|
|
795
|
+
baselines.set(baselineKey, mergedStates.flatMap((state) => sizesOf(widthsOf(mergedDefinition === null || mergedDefinition === void 0 ? void 0 : mergedDefinition.widths), merged.presets).flatMap(({ preset, width }) => schemes.flatMap((scheme) => {
|
|
796
|
+
var _a;
|
|
526
797
|
const address = { product, part: key, state, preset, width, sketch: null, interaction: null };
|
|
527
798
|
const frame = (0, shot_1.partFrameOf)(Object.assign({ system }, address));
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
},
|
|
543
|
-
|
|
544
|
-
|
|
799
|
+
if (frame instanceof Error)
|
|
800
|
+
return [];
|
|
801
|
+
const pairs = measured.has(scheme) ? [] : mergedContrast.pairs;
|
|
802
|
+
measured.add(scheme);
|
|
803
|
+
return [
|
|
804
|
+
{
|
|
805
|
+
address,
|
|
806
|
+
size: preset !== null && preset !== void 0 ? preset : (width ? `${width}px` : 'fitted'),
|
|
807
|
+
search: frame.search.toString(),
|
|
808
|
+
viewport: (0, shot_1.viewportOf)(frame.size),
|
|
809
|
+
fixed: ((_a = frame.size) === null || _a === void 0 ? void 0 : _a.height) !== undefined,
|
|
810
|
+
fit: frame.size === null,
|
|
811
|
+
skips,
|
|
812
|
+
namespaces,
|
|
813
|
+
contrast: { exceptions: mergedContrast.exceptions, pairs, scheme },
|
|
814
|
+
controlInputs,
|
|
815
|
+
embedControls,
|
|
816
|
+
},
|
|
817
|
+
];
|
|
818
|
+
}))));
|
|
545
819
|
}
|
|
546
820
|
const measuresPairs = new Set();
|
|
547
|
-
for (const state of states) {
|
|
821
|
+
for (const state of states.filter((name) => { var _a; return !((_a = unchanged === null || unchanged === void 0 ? void 0 : unchanged[key]) === null || _a === void 0 ? void 0 : _a.includes(name)); })) {
|
|
548
822
|
for (const { preset, width } of sizes) {
|
|
549
823
|
for (const scheme of schemes) {
|
|
550
824
|
const address = { product, part: key, state, preset, width, sketch, interaction: null };
|
|
@@ -556,11 +830,12 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
556
830
|
size: preset !== null && preset !== void 0 ? preset : (width ? `${width}px` : 'fitted'),
|
|
557
831
|
search: frame.search.toString(),
|
|
558
832
|
viewport: (0, shot_1.viewportOf)(frame.size),
|
|
559
|
-
fixed: ((
|
|
833
|
+
fixed: ((_m = frame.size) === null || _m === void 0 ? void 0 : _m.height) !== undefined,
|
|
560
834
|
fit: frame.size === null,
|
|
561
835
|
skips,
|
|
562
836
|
namespaces,
|
|
563
837
|
controlInputs,
|
|
838
|
+
embedControls,
|
|
564
839
|
contrast: {
|
|
565
840
|
exceptions: exceptions.selectors,
|
|
566
841
|
pairs: measuresPairs.has(scheme) ? [] : pairs,
|
|
@@ -573,26 +848,64 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
573
848
|
}
|
|
574
849
|
}
|
|
575
850
|
}
|
|
576
|
-
const
|
|
577
|
-
const
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
851
|
+
const asked = new Set(((_o = options.before) !== null && _o !== void 0 ? _o : []).map(({ product, part }) => JSON.stringify([product, part])));
|
|
852
|
+
const inspectBaselineOf = (keys) => {
|
|
853
|
+
const baseline = keys.flatMap((key) => {
|
|
854
|
+
var _a;
|
|
855
|
+
return ((_a = baselines.get(key)) !== null && _a !== void 0 ? _a : []).map((frame) => {
|
|
856
|
+
var _a;
|
|
857
|
+
return (Object.assign(Object.assign({}, frame), { skips: Object.assign(Object.assign({}, frame.skips), { [frame.address.part]: (_a = mergedSkips.get(key)) !== null && _a !== void 0 ? _a : [] }) }));
|
|
858
|
+
});
|
|
859
|
+
});
|
|
860
|
+
return baseline.length > 0
|
|
861
|
+
? queue.run((browser) => inspect({ browser, base, frames: baseline, cache, timeoutMs }))
|
|
862
|
+
: [];
|
|
863
|
+
};
|
|
864
|
+
const askedInProduct = Promise.resolve(inspectBaselineOf([...asked]));
|
|
865
|
+
askedInProduct.catch(() => undefined);
|
|
866
|
+
const all = yield queue.run((browser) => (0, exports.inspectRetryingTimeouts)({
|
|
867
|
+
browser,
|
|
868
|
+
base,
|
|
869
|
+
frames,
|
|
870
|
+
cache,
|
|
871
|
+
timeoutMs,
|
|
872
|
+
onPart: ({ done, total, part, ms }) => { var _a; return (_a = options.onProgress) === null || _a === void 0 ? void 0 : _a.call(options, `[${done}/${total}] ${part} ${Math.round(ms / 1000)}s`); },
|
|
873
|
+
}));
|
|
874
|
+
const inspected = (0, exports.uniqueIssuesOf)(all.filter((issue) => issue.rule !== BUSY_MARK));
|
|
875
|
+
const isInput = render_issue_key_1.isControlInput;
|
|
876
|
+
const sketched = inspected.filter((issue) => issue.sketch && !exports.WARNING_RULES.has(issue.rule));
|
|
877
|
+
const keyOf = (issue) => JSON.stringify([issue.product, issue.part]);
|
|
878
|
+
const compared = [...new Set([...sketched.map(keyOf), ...asked])];
|
|
879
|
+
const comparedAt = new Map(compared.map((key, index) => [key, index]));
|
|
880
|
+
const inProduct = [
|
|
881
|
+
...(yield askedInProduct),
|
|
882
|
+
...(yield inspectBaselineOf(compared.filter((key) => !asked.has(key)))),
|
|
883
|
+
].sort((a, b) => { var _a, _b; return ((_a = comparedAt.get(keyOf(a))) !== null && _a !== void 0 ? _a : 0) - ((_b = comparedAt.get(keyOf(b))) !== null && _b !== void 0 ? _b : 0); });
|
|
581
884
|
const elementOf = (issue) => JSON.stringify([issue.product, issue.part, issue.path]);
|
|
582
|
-
const
|
|
583
|
-
|
|
584
|
-
|
|
885
|
+
const sameIssueOf = render_issue_key_1.sameRenderIssueKeyOf;
|
|
886
|
+
const framedOf = (issue, sketch) => { var _a; return (_a = framed.get(JSON.stringify([issue.product, issue.part, sketch]))) !== null && _a !== void 0 ? _a : false; };
|
|
887
|
+
const existing = new Set(inProduct.flatMap((issue) => [sameIssueOf(issue, null), sameIssueOf(issue, framedOf(issue, null))]));
|
|
888
|
+
const isOld = (issue) => existing.has(sameIssueOf(issue, null)) ||
|
|
889
|
+
(framedOf(issue, issue.sketch) !== framedOf(issue, null) &&
|
|
890
|
+
existing.has(sameIssueOf(issue, framedOf(issue, issue.sketch))));
|
|
585
891
|
const mergedInputs = inspected.filter((issue) => isInput(issue) && !issue.sketch);
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
892
|
+
const undrawnBase = [
|
|
893
|
+
...new Set(inProduct.filter((issue) => issue.rule === exports.RENDER_TIMEOUT).map((issue) => issue.part)),
|
|
894
|
+
];
|
|
895
|
+
issues.push(...inspected.filter((issue) => !issue.sketch && !exports.WARNING_RULES.has(issue.rule) && !isInput(issue)), ...sketched.filter((issue) => !isOld(issue)));
|
|
896
|
+
return Object.assign(Object.assign({ issues, warnings: [
|
|
590
897
|
...gridWarnings,
|
|
591
898
|
...mergedInputs.filter((issue, index) => mergedInputs.findIndex((other) => elementOf(other) === elementOf(issue)) === index),
|
|
592
|
-
...firstOfEach(inspected.filter((issue) => WARNING_RULES.has(issue.rule))),
|
|
593
|
-
],
|
|
594
|
-
|
|
595
|
-
|
|
899
|
+
...firstOfEach(inspected.filter((issue) => exports.WARNING_RULES.has(issue.rule))),
|
|
900
|
+
], grids, busy: (0, exports.busyStatesOf)(all) }, (undrawnBase.length > 0
|
|
901
|
+
? {
|
|
902
|
+
noVerdict: (0, no_verdict_1.noVerdictOf)(`the base of ${undrawnBase.join(', ')} did not draw within ${Math.round(timeoutMs / 1000)}s, so its problems could not be told apart from the sketch's`),
|
|
903
|
+
}
|
|
904
|
+
: {})), { before: (0, exports.uniqueIssuesOf)(inProduct.filter((issue) => asked.has(JSON.stringify([issue.product, issue.part])) &&
|
|
905
|
+
issue.rule !== BUSY_MARK &&
|
|
906
|
+
issue.rule !== exports.RENDER_TIMEOUT &&
|
|
907
|
+
!exports.WARNING_RULES.has(issue.rule) &&
|
|
908
|
+
!isInput(issue))), drawn: frames
|
|
596
909
|
.filter(({ contrast }) => contrast.scheme !== 'dark')
|
|
597
910
|
.map(({ address }) => {
|
|
598
911
|
var _a;
|
|
@@ -603,8 +916,7 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
603
916
|
size: (_a = address.preset) !== null && _a !== void 0 ? _a : (address.width ? `${address.width}px` : 'fitted'),
|
|
604
917
|
sketch: address.sketch,
|
|
605
918
|
});
|
|
606
|
-
})
|
|
607
|
-
};
|
|
919
|
+
}) });
|
|
608
920
|
}
|
|
609
921
|
catch (error) {
|
|
610
922
|
if (error instanceof thumb_1.ThumbUnavailableError)
|
|
@@ -612,7 +924,8 @@ const renderIssuesOf = (options) => __awaiter(void 0, void 0, void 0, function*
|
|
|
612
924
|
throw error;
|
|
613
925
|
}
|
|
614
926
|
finally {
|
|
615
|
-
|
|
927
|
+
if (!warm)
|
|
928
|
+
yield Promise.all([queue.close(), server.close()]);
|
|
616
929
|
}
|
|
617
930
|
});
|
|
618
931
|
exports.renderIssuesOf = renderIssuesOf;
|