@empline/preflight 1.1.11 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (709) hide show
  1. package/dist/checks/consolidated/auth-storage-state.d.ts +3 -0
  2. package/dist/checks/consolidated/auth-storage-state.d.ts.map +1 -0
  3. package/dist/checks/consolidated/auth-storage-state.js +146 -0
  4. package/dist/checks/consolidated/auth-storage-state.js.map +1 -0
  5. package/dist/checks/consolidated/business.d.ts +50 -0
  6. package/dist/checks/consolidated/business.d.ts.map +1 -0
  7. package/dist/checks/consolidated/business.js +252 -0
  8. package/dist/checks/consolidated/business.js.map +1 -0
  9. package/dist/checks/consolidated/caching-strategy.d.ts +104 -0
  10. package/dist/checks/consolidated/caching-strategy.d.ts.map +1 -0
  11. package/dist/checks/consolidated/caching-strategy.js +725 -0
  12. package/dist/checks/consolidated/caching-strategy.js.map +1 -0
  13. package/dist/checks/consolidated/code-quality.d.ts +83 -0
  14. package/dist/checks/consolidated/code-quality.d.ts.map +1 -0
  15. package/dist/checks/consolidated/code-quality.js +445 -0
  16. package/dist/checks/consolidated/code-quality.js.map +1 -0
  17. package/dist/checks/consolidated/console-statements.d.ts +32 -0
  18. package/dist/checks/consolidated/console-statements.d.ts.map +1 -0
  19. package/dist/checks/consolidated/console-statements.js +304 -0
  20. package/dist/checks/consolidated/console-statements.js.map +1 -0
  21. package/dist/checks/consolidated/css-advanced-validation.d.ts +24 -0
  22. package/dist/checks/consolidated/css-advanced-validation.d.ts.map +1 -0
  23. package/dist/checks/consolidated/css-advanced-validation.js +415 -0
  24. package/dist/checks/consolidated/css-advanced-validation.js.map +1 -0
  25. package/dist/checks/consolidated/css-organization.d.ts +14 -0
  26. package/dist/checks/consolidated/css-organization.d.ts.map +1 -0
  27. package/dist/checks/consolidated/css-organization.js +432 -0
  28. package/dist/checks/consolidated/css-organization.js.map +1 -0
  29. package/dist/checks/consolidated/css-runtime-validation.d.ts +22 -0
  30. package/dist/checks/consolidated/css-runtime-validation.d.ts.map +1 -0
  31. package/dist/checks/consolidated/css-runtime-validation.js +330 -0
  32. package/dist/checks/consolidated/css-runtime-validation.js.map +1 -0
  33. package/dist/checks/consolidated/css-variable-validation.d.ts +17 -0
  34. package/dist/checks/consolidated/css-variable-validation.d.ts.map +1 -0
  35. package/dist/checks/consolidated/css-variable-validation.js +412 -0
  36. package/dist/checks/consolidated/css-variable-validation.js.map +1 -0
  37. package/dist/checks/consolidated/dark-mode-consistency.d.ts +23 -0
  38. package/dist/checks/consolidated/dark-mode-consistency.d.ts.map +1 -0
  39. package/dist/checks/consolidated/dark-mode-consistency.js +291 -0
  40. package/dist/checks/consolidated/dark-mode-consistency.js.map +1 -0
  41. package/dist/checks/consolidated/database.d.ts +95 -0
  42. package/dist/checks/consolidated/database.d.ts.map +1 -0
  43. package/dist/checks/consolidated/database.js +427 -0
  44. package/dist/checks/consolidated/database.js.map +1 -0
  45. package/dist/checks/consolidated/e2e-checks.d.ts +52 -0
  46. package/dist/checks/consolidated/e2e-checks.d.ts.map +1 -0
  47. package/dist/checks/consolidated/e2e-checks.js +157 -0
  48. package/dist/checks/consolidated/e2e-checks.js.map +1 -0
  49. package/dist/checks/consolidated/e2e-regression-coverage.d.ts +14 -0
  50. package/dist/checks/consolidated/e2e-regression-coverage.d.ts.map +1 -0
  51. package/dist/checks/consolidated/e2e-regression-coverage.js +151 -0
  52. package/dist/checks/consolidated/e2e-regression-coverage.js.map +1 -0
  53. package/dist/checks/consolidated/e2e-validation.d.ts +137 -0
  54. package/dist/checks/consolidated/e2e-validation.d.ts.map +1 -0
  55. package/dist/checks/consolidated/e2e-validation.js +1001 -0
  56. package/dist/checks/consolidated/e2e-validation.js.map +1 -0
  57. package/dist/checks/consolidated/enterprise-baseline.d.ts +9 -0
  58. package/dist/checks/consolidated/enterprise-baseline.d.ts.map +1 -0
  59. package/dist/checks/consolidated/enterprise-baseline.js +277 -0
  60. package/dist/checks/consolidated/enterprise-baseline.js.map +1 -0
  61. package/dist/checks/consolidated/generate-pageload-config.d.ts +6 -0
  62. package/dist/checks/consolidated/generate-pageload-config.d.ts.map +1 -0
  63. package/dist/checks/consolidated/generate-pageload-config.js +161 -0
  64. package/dist/checks/consolidated/generate-pageload-config.js.map +1 -0
  65. package/dist/checks/consolidated/hardened-checks.d.ts +276 -0
  66. package/dist/checks/consolidated/hardened-checks.d.ts.map +1 -0
  67. package/dist/checks/consolidated/hardened-checks.js +3056 -0
  68. package/dist/checks/consolidated/hardened-checks.js.map +1 -0
  69. package/dist/checks/consolidated/homepage-ux.d.ts +12 -0
  70. package/dist/checks/consolidated/homepage-ux.d.ts.map +1 -0
  71. package/dist/checks/consolidated/homepage-ux.js +242 -0
  72. package/dist/checks/consolidated/homepage-ux.js.map +1 -0
  73. package/dist/checks/consolidated/images.d.ts +76 -0
  74. package/dist/checks/consolidated/images.d.ts.map +1 -0
  75. package/dist/checks/consolidated/images.js +311 -0
  76. package/dist/checks/consolidated/images.js.map +1 -0
  77. package/dist/checks/consolidated/import-cycles.d.ts +63 -0
  78. package/dist/checks/consolidated/import-cycles.d.ts.map +1 -0
  79. package/dist/checks/consolidated/import-cycles.js +291 -0
  80. package/dist/checks/consolidated/import-cycles.js.map +1 -0
  81. package/dist/checks/consolidated/imports.d.ts +112 -0
  82. package/dist/checks/consolidated/imports.d.ts.map +1 -0
  83. package/dist/checks/consolidated/imports.js +977 -0
  84. package/dist/checks/consolidated/imports.js.map +1 -0
  85. package/dist/checks/consolidated/inline-style-conflicts.d.ts +21 -0
  86. package/dist/checks/consolidated/inline-style-conflicts.d.ts.map +1 -0
  87. package/dist/checks/consolidated/inline-style-conflicts.js +300 -0
  88. package/dist/checks/consolidated/inline-style-conflicts.js.map +1 -0
  89. package/dist/checks/consolidated/lib-organization.d.ts +12 -0
  90. package/dist/checks/consolidated/lib-organization.d.ts.map +1 -0
  91. package/dist/checks/consolidated/lib-organization.js +419 -0
  92. package/dist/checks/consolidated/lib-organization.js.map +1 -0
  93. package/dist/checks/consolidated/n-plus-one.d.ts +63 -0
  94. package/dist/checks/consolidated/n-plus-one.d.ts.map +1 -0
  95. package/dist/checks/consolidated/n-plus-one.js +331 -0
  96. package/dist/checks/consolidated/n-plus-one.js.map +1 -0
  97. package/dist/checks/consolidated/nextjs.d.ts +51 -0
  98. package/dist/checks/consolidated/nextjs.d.ts.map +1 -0
  99. package/dist/checks/consolidated/nextjs.js +205 -0
  100. package/dist/checks/consolidated/nextjs.js.map +1 -0
  101. package/dist/checks/consolidated/organization.d.ts +54 -0
  102. package/dist/checks/consolidated/organization.d.ts.map +1 -0
  103. package/dist/checks/consolidated/organization.js +158 -0
  104. package/dist/checks/consolidated/organization.js.map +1 -0
  105. package/dist/checks/consolidated/pageload.d.ts +12 -0
  106. package/dist/checks/consolidated/pageload.d.ts.map +1 -0
  107. package/dist/checks/consolidated/pageload.js +138 -0
  108. package/dist/checks/consolidated/pageload.js.map +1 -0
  109. package/dist/checks/consolidated/performance.d.ts +112 -0
  110. package/dist/checks/consolidated/performance.d.ts.map +1 -0
  111. package/dist/checks/consolidated/performance.js +1546 -0
  112. package/dist/checks/consolidated/performance.js.map +1 -0
  113. package/dist/checks/consolidated/quality.d.ts +52 -0
  114. package/dist/checks/consolidated/quality.d.ts.map +1 -0
  115. package/dist/checks/consolidated/quality.js +253 -0
  116. package/dist/checks/consolidated/quality.js.map +1 -0
  117. package/dist/checks/consolidated/react.d.ts +48 -0
  118. package/dist/checks/consolidated/react.d.ts.map +1 -0
  119. package/dist/checks/consolidated/react.js +203 -0
  120. package/dist/checks/consolidated/react.js.map +1 -0
  121. package/dist/checks/consolidated/regression-hygiene.d.ts +17 -0
  122. package/dist/checks/consolidated/regression-hygiene.d.ts.map +1 -0
  123. package/dist/checks/consolidated/regression-hygiene.js +242 -0
  124. package/dist/checks/consolidated/regression-hygiene.js.map +1 -0
  125. package/dist/checks/consolidated/regression.d.ts +20 -0
  126. package/dist/checks/consolidated/regression.d.ts.map +1 -0
  127. package/dist/checks/consolidated/regression.js +121 -0
  128. package/dist/checks/consolidated/regression.js.map +1 -0
  129. package/dist/checks/consolidated/runtime.d.ts +53 -0
  130. package/dist/checks/consolidated/runtime.d.ts.map +1 -0
  131. package/dist/checks/consolidated/runtime.js +160 -0
  132. package/dist/checks/consolidated/runtime.js.map +1 -0
  133. package/dist/checks/consolidated/script-performance.d.ts +17 -0
  134. package/dist/checks/consolidated/script-performance.d.ts.map +1 -0
  135. package/dist/checks/consolidated/script-performance.js +137 -0
  136. package/dist/checks/consolidated/script-performance.js.map +1 -0
  137. package/dist/checks/consolidated/security.d.ts +78 -0
  138. package/dist/checks/consolidated/security.d.ts.map +1 -0
  139. package/dist/checks/consolidated/security.js +404 -0
  140. package/dist/checks/consolidated/security.js.map +1 -0
  141. package/dist/checks/consolidated/seo.d.ts +31 -0
  142. package/dist/checks/consolidated/seo.d.ts.map +1 -0
  143. package/dist/checks/consolidated/seo.js +1438 -0
  144. package/dist/checks/consolidated/seo.js.map +1 -0
  145. package/dist/checks/consolidated/sx-prop-deprecation.d.ts +22 -0
  146. package/dist/checks/consolidated/sx-prop-deprecation.d.ts.map +1 -0
  147. package/dist/checks/consolidated/sx-prop-deprecation.js +280 -0
  148. package/dist/checks/consolidated/sx-prop-deprecation.js.map +1 -0
  149. package/dist/checks/consolidated/tailwind-class-validation.d.ts +25 -0
  150. package/dist/checks/consolidated/tailwind-class-validation.d.ts.map +1 -0
  151. package/dist/checks/consolidated/tailwind-class-validation.js +533 -0
  152. package/dist/checks/consolidated/tailwind-class-validation.js.map +1 -0
  153. package/dist/checks/consolidated/testing.d.ts +54 -0
  154. package/dist/checks/consolidated/testing.d.ts.map +1 -0
  155. package/dist/checks/consolidated/testing.js +163 -0
  156. package/dist/checks/consolidated/testing.js.map +1 -0
  157. package/dist/checks/consolidated/typescript.d.ts +3 -0
  158. package/dist/checks/consolidated/typescript.d.ts.map +1 -0
  159. package/dist/checks/consolidated/typescript.js +31 -0
  160. package/dist/checks/consolidated/typescript.js.map +1 -0
  161. package/dist/checks/consolidated/ui-accessibility-advanced.d.ts +104 -0
  162. package/dist/checks/consolidated/ui-accessibility-advanced.d.ts.map +1 -0
  163. package/dist/checks/consolidated/ui-accessibility-advanced.js +689 -0
  164. package/dist/checks/consolidated/ui-accessibility-advanced.js.map +1 -0
  165. package/dist/checks/consolidated/ui-accessibility.d.ts +121 -0
  166. package/dist/checks/consolidated/ui-accessibility.d.ts.map +1 -0
  167. package/dist/checks/consolidated/ui-accessibility.js +776 -0
  168. package/dist/checks/consolidated/ui-accessibility.js.map +1 -0
  169. package/dist/checks/consolidated/ui-advanced-spacing.d.ts +142 -0
  170. package/dist/checks/consolidated/ui-advanced-spacing.d.ts.map +1 -0
  171. package/dist/checks/consolidated/ui-advanced-spacing.js +1220 -0
  172. package/dist/checks/consolidated/ui-advanced-spacing.js.map +1 -0
  173. package/dist/checks/consolidated/ui-animation-duration.d.ts +108 -0
  174. package/dist/checks/consolidated/ui-animation-duration.d.ts.map +1 -0
  175. package/dist/checks/consolidated/ui-animation-duration.js +531 -0
  176. package/dist/checks/consolidated/ui-animation-duration.js.map +1 -0
  177. package/dist/checks/consolidated/ui-border-radius.d.ts +90 -0
  178. package/dist/checks/consolidated/ui-border-radius.d.ts.map +1 -0
  179. package/dist/checks/consolidated/ui-border-radius.js +519 -0
  180. package/dist/checks/consolidated/ui-border-radius.js.map +1 -0
  181. package/dist/checks/consolidated/ui-buttons.d.ts +32 -0
  182. package/dist/checks/consolidated/ui-buttons.d.ts.map +1 -0
  183. package/dist/checks/consolidated/ui-buttons.js +481 -0
  184. package/dist/checks/consolidated/ui-buttons.js.map +1 -0
  185. package/dist/checks/consolidated/ui-cards.d.ts +29 -0
  186. package/dist/checks/consolidated/ui-cards.d.ts.map +1 -0
  187. package/dist/checks/consolidated/ui-cards.js +504 -0
  188. package/dist/checks/consolidated/ui-cards.js.map +1 -0
  189. package/dist/checks/consolidated/ui-checks.d.ts +48 -0
  190. package/dist/checks/consolidated/ui-checks.d.ts.map +1 -0
  191. package/dist/checks/consolidated/ui-checks.js +264 -0
  192. package/dist/checks/consolidated/ui-checks.js.map +1 -0
  193. package/dist/checks/consolidated/ui-cleanup.d.ts +81 -0
  194. package/dist/checks/consolidated/ui-cleanup.d.ts.map +1 -0
  195. package/dist/checks/consolidated/ui-cleanup.js +650 -0
  196. package/dist/checks/consolidated/ui-cleanup.js.map +1 -0
  197. package/dist/checks/consolidated/ui-components.d.ts +255 -0
  198. package/dist/checks/consolidated/ui-components.d.ts.map +1 -0
  199. package/dist/checks/consolidated/ui-components.js +2008 -0
  200. package/dist/checks/consolidated/ui-components.js.map +1 -0
  201. package/dist/checks/consolidated/ui-consistency-advanced.d.ts +130 -0
  202. package/dist/checks/consolidated/ui-consistency-advanced.d.ts.map +1 -0
  203. package/dist/checks/consolidated/ui-consistency-advanced.js +982 -0
  204. package/dist/checks/consolidated/ui-consistency-advanced.js.map +1 -0
  205. package/dist/checks/consolidated/ui-consistency-comprehensive.d.ts +30 -0
  206. package/dist/checks/consolidated/ui-consistency-comprehensive.d.ts.map +1 -0
  207. package/dist/checks/consolidated/ui-consistency-comprehensive.js +1018 -0
  208. package/dist/checks/consolidated/ui-consistency-comprehensive.js.map +1 -0
  209. package/dist/checks/consolidated/ui-consistency-extended.d.ts +26 -0
  210. package/dist/checks/consolidated/ui-consistency-extended.d.ts.map +1 -0
  211. package/dist/checks/consolidated/ui-consistency-extended.js +606 -0
  212. package/dist/checks/consolidated/ui-consistency-extended.js.map +1 -0
  213. package/dist/checks/consolidated/ui-data-display.d.ts +103 -0
  214. package/dist/checks/consolidated/ui-data-display.d.ts.map +1 -0
  215. package/dist/checks/consolidated/ui-data-display.js +740 -0
  216. package/dist/checks/consolidated/ui-data-display.js.map +1 -0
  217. package/dist/checks/consolidated/ui-deprecated.d.ts +22 -0
  218. package/dist/checks/consolidated/ui-deprecated.d.ts.map +1 -0
  219. package/dist/checks/consolidated/ui-deprecated.js +336 -0
  220. package/dist/checks/consolidated/ui-deprecated.js.map +1 -0
  221. package/dist/checks/consolidated/ui-empty-null-states.d.ts +90 -0
  222. package/dist/checks/consolidated/ui-empty-null-states.d.ts.map +1 -0
  223. package/dist/checks/consolidated/ui-empty-null-states.js +511 -0
  224. package/dist/checks/consolidated/ui-empty-null-states.js.map +1 -0
  225. package/dist/checks/consolidated/ui-error-states.d.ts +99 -0
  226. package/dist/checks/consolidated/ui-error-states.d.ts.map +1 -0
  227. package/dist/checks/consolidated/ui-error-states.js +694 -0
  228. package/dist/checks/consolidated/ui-error-states.js.map +1 -0
  229. package/dist/checks/consolidated/ui-feedback-confirmations.d.ts +90 -0
  230. package/dist/checks/consolidated/ui-feedback-confirmations.d.ts.map +1 -0
  231. package/dist/checks/consolidated/ui-feedback-confirmations.js +596 -0
  232. package/dist/checks/consolidated/ui-feedback-confirmations.js.map +1 -0
  233. package/dist/checks/consolidated/ui-forms.d.ts +32 -0
  234. package/dist/checks/consolidated/ui-forms.d.ts.map +1 -0
  235. package/dist/checks/consolidated/ui-forms.js +568 -0
  236. package/dist/checks/consolidated/ui-forms.js.map +1 -0
  237. package/dist/checks/consolidated/ui-gradient-shadow.d.ts +90 -0
  238. package/dist/checks/consolidated/ui-gradient-shadow.d.ts.map +1 -0
  239. package/dist/checks/consolidated/ui-gradient-shadow.js +568 -0
  240. package/dist/checks/consolidated/ui-gradient-shadow.js.map +1 -0
  241. package/dist/checks/consolidated/ui-grid-responsive.d.ts +27 -0
  242. package/dist/checks/consolidated/ui-grid-responsive.d.ts.map +1 -0
  243. package/dist/checks/consolidated/ui-grid-responsive.js +441 -0
  244. package/dist/checks/consolidated/ui-grid-responsive.js.map +1 -0
  245. package/dist/checks/consolidated/ui-icon-size-tokens.d.ts +104 -0
  246. package/dist/checks/consolidated/ui-icon-size-tokens.d.ts.map +1 -0
  247. package/dist/checks/consolidated/ui-icon-size-tokens.js +514 -0
  248. package/dist/checks/consolidated/ui-icon-size-tokens.js.map +1 -0
  249. package/dist/checks/consolidated/ui-iconography.d.ts +90 -0
  250. package/dist/checks/consolidated/ui-iconography.d.ts.map +1 -0
  251. package/dist/checks/consolidated/ui-iconography.js +565 -0
  252. package/dist/checks/consolidated/ui-iconography.js.map +1 -0
  253. package/dist/checks/consolidated/ui-interactive-states.d.ts +240 -0
  254. package/dist/checks/consolidated/ui-interactive-states.d.ts.map +1 -0
  255. package/dist/checks/consolidated/ui-interactive-states.js +2474 -0
  256. package/dist/checks/consolidated/ui-interactive-states.js.map +1 -0
  257. package/dist/checks/consolidated/ui-layout.d.ts +256 -0
  258. package/dist/checks/consolidated/ui-layout.d.ts.map +1 -0
  259. package/dist/checks/consolidated/ui-layout.js +1371 -0
  260. package/dist/checks/consolidated/ui-layout.js.map +1 -0
  261. package/dist/checks/consolidated/ui-loading-skeletons.d.ts +11 -0
  262. package/dist/checks/consolidated/ui-loading-skeletons.d.ts.map +1 -0
  263. package/dist/checks/consolidated/ui-loading-skeletons.js +145 -0
  264. package/dist/checks/consolidated/ui-loading-skeletons.js.map +1 -0
  265. package/dist/checks/consolidated/ui-loading-state-skeletons.d.ts +9 -0
  266. package/dist/checks/consolidated/ui-loading-state-skeletons.d.ts.map +1 -0
  267. package/dist/checks/consolidated/ui-loading-state-skeletons.js +125 -0
  268. package/dist/checks/consolidated/ui-loading-state-skeletons.js.map +1 -0
  269. package/dist/checks/consolidated/ui-media.d.ts +74 -0
  270. package/dist/checks/consolidated/ui-media.d.ts.map +1 -0
  271. package/dist/checks/consolidated/ui-media.js +408 -0
  272. package/dist/checks/consolidated/ui-media.js.map +1 -0
  273. package/dist/checks/consolidated/ui-micro-interactions.d.ts +107 -0
  274. package/dist/checks/consolidated/ui-micro-interactions.d.ts.map +1 -0
  275. package/dist/checks/consolidated/ui-micro-interactions.js +825 -0
  276. package/dist/checks/consolidated/ui-micro-interactions.js.map +1 -0
  277. package/dist/checks/consolidated/ui-microcopy-consistency.d.ts +114 -0
  278. package/dist/checks/consolidated/ui-microcopy-consistency.d.ts.map +1 -0
  279. package/dist/checks/consolidated/ui-microcopy-consistency.js +566 -0
  280. package/dist/checks/consolidated/ui-microcopy-consistency.js.map +1 -0
  281. package/dist/checks/consolidated/ui-mobile-ux.d.ts +251 -0
  282. package/dist/checks/consolidated/ui-mobile-ux.d.ts.map +1 -0
  283. package/dist/checks/consolidated/ui-mobile-ux.js +2212 -0
  284. package/dist/checks/consolidated/ui-mobile-ux.js.map +1 -0
  285. package/dist/checks/consolidated/ui-motion-accessibility.d.ts +93 -0
  286. package/dist/checks/consolidated/ui-motion-accessibility.d.ts.map +1 -0
  287. package/dist/checks/consolidated/ui-motion-accessibility.js +450 -0
  288. package/dist/checks/consolidated/ui-motion-accessibility.js.map +1 -0
  289. package/dist/checks/consolidated/ui-navigation.d.ts +85 -0
  290. package/dist/checks/consolidated/ui-navigation.d.ts.map +1 -0
  291. package/dist/checks/consolidated/ui-navigation.js +673 -0
  292. package/dist/checks/consolidated/ui-navigation.js.map +1 -0
  293. package/dist/checks/consolidated/ui-patterns.d.ts +174 -0
  294. package/dist/checks/consolidated/ui-patterns.d.ts.map +1 -0
  295. package/dist/checks/consolidated/ui-patterns.js +1532 -0
  296. package/dist/checks/consolidated/ui-patterns.js.map +1 -0
  297. package/dist/checks/consolidated/ui-responsive.d.ts +89 -0
  298. package/dist/checks/consolidated/ui-responsive.d.ts.map +1 -0
  299. package/dist/checks/consolidated/ui-responsive.js +588 -0
  300. package/dist/checks/consolidated/ui-responsive.js.map +1 -0
  301. package/dist/checks/consolidated/ui-spacing-standards.d.ts +43 -0
  302. package/dist/checks/consolidated/ui-spacing-standards.d.ts.map +1 -0
  303. package/dist/checks/consolidated/ui-spacing-standards.js +874 -0
  304. package/dist/checks/consolidated/ui-spacing-standards.js.map +1 -0
  305. package/dist/checks/consolidated/ui-spacing.d.ts +751 -0
  306. package/dist/checks/consolidated/ui-spacing.d.ts.map +1 -0
  307. package/dist/checks/consolidated/ui-spacing.js +4996 -0
  308. package/dist/checks/consolidated/ui-spacing.js.map +1 -0
  309. package/dist/checks/consolidated/ui-standards-auto-fixer.d.ts +70 -0
  310. package/dist/checks/consolidated/ui-standards-auto-fixer.d.ts.map +1 -0
  311. package/dist/checks/consolidated/ui-standards-auto-fixer.js +429 -0
  312. package/dist/checks/consolidated/ui-standards-auto-fixer.js.map +1 -0
  313. package/dist/checks/consolidated/ui-standards-enforcement.d.ts +100 -0
  314. package/dist/checks/consolidated/ui-standards-enforcement.d.ts.map +1 -0
  315. package/dist/checks/consolidated/ui-standards-enforcement.js +935 -0
  316. package/dist/checks/consolidated/ui-standards-enforcement.js.map +1 -0
  317. package/dist/checks/consolidated/ui-state-consistency.d.ts +90 -0
  318. package/dist/checks/consolidated/ui-state-consistency.d.ts.map +1 -0
  319. package/dist/checks/consolidated/ui-state-consistency.js +659 -0
  320. package/dist/checks/consolidated/ui-state-consistency.js.map +1 -0
  321. package/dist/checks/consolidated/ui-style-validation.d.ts +74 -0
  322. package/dist/checks/consolidated/ui-style-validation.d.ts.map +1 -0
  323. package/dist/checks/consolidated/ui-style-validation.js +403 -0
  324. package/dist/checks/consolidated/ui-style-validation.js.map +1 -0
  325. package/dist/checks/consolidated/ui-tokens.d.ts +110 -0
  326. package/dist/checks/consolidated/ui-tokens.d.ts.map +1 -0
  327. package/dist/checks/consolidated/ui-tokens.js +990 -0
  328. package/dist/checks/consolidated/ui-tokens.js.map +1 -0
  329. package/dist/checks/consolidated/ui-typography.d.ts +77 -0
  330. package/dist/checks/consolidated/ui-typography.d.ts.map +1 -0
  331. package/dist/checks/consolidated/ui-typography.js +416 -0
  332. package/dist/checks/consolidated/ui-typography.js.map +1 -0
  333. package/dist/checks/consolidated/ui-visual-hierarchy.d.ts +90 -0
  334. package/dist/checks/consolidated/ui-visual-hierarchy.d.ts.map +1 -0
  335. package/dist/checks/consolidated/ui-visual-hierarchy.js +562 -0
  336. package/dist/checks/consolidated/ui-visual-hierarchy.js.map +1 -0
  337. package/dist/checks/consolidated/woocommerce.d.ts +50 -0
  338. package/dist/checks/consolidated/woocommerce.d.ts.map +1 -0
  339. package/dist/checks/consolidated/woocommerce.js +198 -0
  340. package/dist/checks/consolidated/woocommerce.js.map +1 -0
  341. package/dist/checks/core/api-route-protection.d.ts +2 -0
  342. package/dist/checks/core/api-route-protection.d.ts.map +1 -0
  343. package/dist/checks/core/api-route-protection.js +101 -0
  344. package/dist/checks/core/api-route-protection.js.map +1 -0
  345. package/dist/checks/core/critical.d.ts +8 -0
  346. package/dist/checks/core/critical.d.ts.map +1 -0
  347. package/dist/checks/core/critical.js +200 -0
  348. package/dist/checks/core/critical.js.map +1 -0
  349. package/dist/checks/core/database.d.ts +8 -0
  350. package/dist/checks/core/database.d.ts.map +1 -0
  351. package/dist/checks/core/database.js +699 -0
  352. package/dist/checks/core/database.js.map +1 -0
  353. package/dist/checks/core/development.d.ts +8 -0
  354. package/dist/checks/core/development.d.ts.map +1 -0
  355. package/dist/checks/core/development.js +417 -0
  356. package/dist/checks/core/development.js.map +1 -0
  357. package/dist/checks/core/hydration-mismatch-check.d.ts +38 -0
  358. package/dist/checks/core/hydration-mismatch-check.d.ts.map +1 -0
  359. package/dist/checks/core/hydration-mismatch-check.js +411 -0
  360. package/dist/checks/core/hydration-mismatch-check.js.map +1 -0
  361. package/dist/checks/core/performance.d.ts +8 -0
  362. package/dist/checks/core/performance.d.ts.map +1 -0
  363. package/dist/checks/core/performance.js +474 -0
  364. package/dist/checks/core/performance.js.map +1 -0
  365. package/dist/checks/core/security.d.ts +8 -0
  366. package/dist/checks/core/security.d.ts.map +1 -0
  367. package/dist/checks/core/security.js +275 -0
  368. package/dist/checks/core/security.js.map +1 -0
  369. package/dist/checks/core/standardized-error-handling.d.ts +43 -0
  370. package/dist/checks/core/standardized-error-handling.d.ts.map +1 -0
  371. package/dist/checks/core/standardized-error-handling.js +384 -0
  372. package/dist/checks/core/standardized-error-handling.js.map +1 -0
  373. package/dist/checks/core/supercatch.d.ts +8 -0
  374. package/dist/checks/core/supercatch.d.ts.map +1 -0
  375. package/dist/checks/core/supercatch.js +750 -0
  376. package/dist/checks/core/supercatch.js.map +1 -0
  377. package/dist/checks/core/suppression-check.d.ts +2 -0
  378. package/dist/checks/core/suppression-check.d.ts.map +1 -0
  379. package/dist/checks/core/suppression-check.js +129 -0
  380. package/dist/checks/core/suppression-check.js.map +1 -0
  381. package/dist/checks/core/ui-quality.d.ts +8 -0
  382. package/dist/checks/core/ui-quality.d.ts.map +1 -0
  383. package/dist/checks/core/ui-quality.js +1736 -0
  384. package/dist/checks/core/ui-quality.js.map +1 -0
  385. package/dist/checks/core/unused-assets-check.d.ts +2 -0
  386. package/dist/checks/core/unused-assets-check.d.ts.map +1 -0
  387. package/dist/checks/core/unused-assets-check.js +112 -0
  388. package/dist/checks/core/unused-assets-check.js.map +1 -0
  389. package/dist/checks/core/use-status-ssr-safety.d.ts +34 -0
  390. package/dist/checks/core/use-status-ssr-safety.d.ts.map +1 -0
  391. package/dist/checks/core/use-status-ssr-safety.js +283 -0
  392. package/dist/checks/core/use-status-ssr-safety.js.map +1 -0
  393. package/dist/checks/email/email-flow-validation.d.ts +23 -0
  394. package/dist/checks/email/email-flow-validation.d.ts.map +1 -0
  395. package/dist/checks/email/email-flow-validation.js +468 -0
  396. package/dist/checks/email/email-flow-validation.js.map +1 -0
  397. package/dist/checks/email/email-template-db-verification.d.ts +20 -0
  398. package/dist/checks/email/email-template-db-verification.d.ts.map +1 -0
  399. package/dist/checks/email/email-template-db-verification.js +46 -0
  400. package/dist/checks/email/email-template-db-verification.js.map +1 -0
  401. package/dist/checks/email/email-template-validation.d.ts +24 -0
  402. package/dist/checks/email/email-template-validation.d.ts.map +1 -0
  403. package/dist/checks/email/email-template-validation.js +688 -0
  404. package/dist/checks/email/email-template-validation.js.map +1 -0
  405. package/dist/checks/jsx/comment-placement.d.ts +45 -0
  406. package/dist/checks/jsx/comment-placement.d.ts.map +1 -0
  407. package/dist/checks/jsx/comment-placement.js +316 -0
  408. package/dist/checks/jsx/comment-placement.js.map +1 -0
  409. package/dist/checks/specialized/admin-layout-check.d.ts +19 -0
  410. package/dist/checks/specialized/admin-layout-check.d.ts.map +1 -0
  411. package/dist/checks/specialized/admin-layout-check.js +166 -0
  412. package/dist/checks/specialized/admin-layout-check.js.map +1 -0
  413. package/dist/checks/specialized/client-server-separation.d.ts +14 -0
  414. package/dist/checks/specialized/client-server-separation.d.ts.map +1 -0
  415. package/dist/checks/specialized/client-server-separation.js +197 -0
  416. package/dist/checks/specialized/client-server-separation.js.map +1 -0
  417. package/dist/checks/specialized/cost-optimization.d.ts +18 -0
  418. package/dist/checks/specialized/cost-optimization.d.ts.map +1 -0
  419. package/dist/checks/specialized/cost-optimization.js +78 -0
  420. package/dist/checks/specialized/cost-optimization.js.map +1 -0
  421. package/dist/checks/specialized/database-migration-sync.d.ts +21 -0
  422. package/dist/checks/specialized/database-migration-sync.d.ts.map +1 -0
  423. package/dist/checks/specialized/database-migration-sync.js +150 -0
  424. package/dist/checks/specialized/database-migration-sync.js.map +1 -0
  425. package/dist/checks/specialized/database-model-validation.d.ts +15 -0
  426. package/dist/checks/specialized/database-model-validation.d.ts.map +1 -0
  427. package/dist/checks/specialized/database-model-validation.js +35 -0
  428. package/dist/checks/specialized/database-model-validation.js.map +1 -0
  429. package/dist/checks/specialized/database-schema-migrations-diff.d.ts +27 -0
  430. package/dist/checks/specialized/database-schema-migrations-diff.d.ts.map +1 -0
  431. package/dist/checks/specialized/database-schema-migrations-diff.js +177 -0
  432. package/dist/checks/specialized/database-schema-migrations-diff.js.map +1 -0
  433. package/dist/checks/specialized/database-schema-sync.d.ts +23 -0
  434. package/dist/checks/specialized/database-schema-sync.d.ts.map +1 -0
  435. package/dist/checks/specialized/database-schema-sync.js +77 -0
  436. package/dist/checks/specialized/database-schema-sync.js.map +1 -0
  437. package/dist/checks/specialized/decimal-serialization.d.ts +24 -0
  438. package/dist/checks/specialized/decimal-serialization.d.ts.map +1 -0
  439. package/dist/checks/specialized/decimal-serialization.js +400 -0
  440. package/dist/checks/specialized/decimal-serialization.js.map +1 -0
  441. package/dist/checks/specialized/detect-router-issues.d.ts +14 -0
  442. package/dist/checks/specialized/detect-router-issues.d.ts.map +1 -0
  443. package/dist/checks/specialized/detect-router-issues.js +96 -0
  444. package/dist/checks/specialized/detect-router-issues.js.map +1 -0
  445. package/dist/checks/specialized/enum-validation.d.ts +15 -0
  446. package/dist/checks/specialized/enum-validation.d.ts.map +1 -0
  447. package/dist/checks/specialized/enum-validation.js +35 -0
  448. package/dist/checks/specialized/enum-validation.js.map +1 -0
  449. package/dist/checks/specialized/hash-collision.d.ts +18 -0
  450. package/dist/checks/specialized/hash-collision.d.ts.map +1 -0
  451. package/dist/checks/specialized/hash-collision.js +78 -0
  452. package/dist/checks/specialized/hash-collision.js.map +1 -0
  453. package/dist/checks/specialized/id-generation-enforcement.d.ts +16 -0
  454. package/dist/checks/specialized/id-generation-enforcement.d.ts.map +1 -0
  455. package/dist/checks/specialized/id-generation-enforcement.js +307 -0
  456. package/dist/checks/specialized/id-generation-enforcement.js.map +1 -0
  457. package/dist/checks/specialized/image-data-integrity.d.ts +15 -0
  458. package/dist/checks/specialized/image-data-integrity.d.ts.map +1 -0
  459. package/dist/checks/specialized/image-data-integrity.js +79 -0
  460. package/dist/checks/specialized/image-data-integrity.js.map +1 -0
  461. package/dist/checks/specialized/image-health.d.ts +14 -0
  462. package/dist/checks/specialized/image-health.d.ts.map +1 -0
  463. package/dist/checks/specialized/image-health.js +122 -0
  464. package/dist/checks/specialized/image-health.js.map +1 -0
  465. package/dist/checks/specialized/image-metadata-validation.d.ts +14 -0
  466. package/dist/checks/specialized/image-metadata-validation.d.ts.map +1 -0
  467. package/dist/checks/specialized/image-metadata-validation.js +95 -0
  468. package/dist/checks/specialized/image-metadata-validation.js.map +1 -0
  469. package/dist/checks/specialized/image-optimization.d.ts +16 -0
  470. package/dist/checks/specialized/image-optimization.d.ts.map +1 -0
  471. package/dist/checks/specialized/image-optimization.js +86 -0
  472. package/dist/checks/specialized/image-optimization.js.map +1 -0
  473. package/dist/checks/specialized/invalid-module-imports.d.ts +24 -0
  474. package/dist/checks/specialized/invalid-module-imports.d.ts.map +1 -0
  475. package/dist/checks/specialized/invalid-module-imports.js +209 -0
  476. package/dist/checks/specialized/invalid-module-imports.js.map +1 -0
  477. package/dist/checks/specialized/lint-validation.d.ts +26 -0
  478. package/dist/checks/specialized/lint-validation.d.ts.map +1 -0
  479. package/dist/checks/specialized/lint-validation.js +193 -0
  480. package/dist/checks/specialized/lint-validation.js.map +1 -0
  481. package/dist/checks/specialized/listing-workflow.d.ts +19 -0
  482. package/dist/checks/specialized/listing-workflow.d.ts.map +1 -0
  483. package/dist/checks/specialized/listing-workflow.js +89 -0
  484. package/dist/checks/specialized/listing-workflow.js.map +1 -0
  485. package/dist/checks/specialized/mui-imports-validation.d.ts +18 -0
  486. package/dist/checks/specialized/mui-imports-validation.d.ts.map +1 -0
  487. package/dist/checks/specialized/mui-imports-validation.js +134 -0
  488. package/dist/checks/specialized/mui-imports-validation.js.map +1 -0
  489. package/dist/checks/specialized/nextauth-v5-compliance.d.ts +16 -0
  490. package/dist/checks/specialized/nextauth-v5-compliance.d.ts.map +1 -0
  491. package/dist/checks/specialized/nextauth-v5-compliance.js +164 -0
  492. package/dist/checks/specialized/nextauth-v5-compliance.js.map +1 -0
  493. package/dist/checks/specialized/nextjs-params-check.d.ts +14 -0
  494. package/dist/checks/specialized/nextjs-params-check.d.ts.map +1 -0
  495. package/dist/checks/specialized/nextjs-params-check.js +140 -0
  496. package/dist/checks/specialized/nextjs-params-check.js.map +1 -0
  497. package/dist/checks/specialized/no-legacy-catalog-aliases-validation.d.ts +16 -0
  498. package/dist/checks/specialized/no-legacy-catalog-aliases-validation.d.ts.map +1 -0
  499. package/dist/checks/specialized/no-legacy-catalog-aliases-validation.js +36 -0
  500. package/dist/checks/specialized/no-legacy-catalog-aliases-validation.js.map +1 -0
  501. package/dist/checks/specialized/no-wata-cardgraded-validation.d.ts +22 -0
  502. package/dist/checks/specialized/no-wata-cardgraded-validation.d.ts.map +1 -0
  503. package/dist/checks/specialized/no-wata-cardgraded-validation.js +97 -0
  504. package/dist/checks/specialized/no-wata-cardgraded-validation.js.map +1 -0
  505. package/dist/checks/specialized/parameter-consistency-check.d.ts +20 -0
  506. package/dist/checks/specialized/parameter-consistency-check.d.ts.map +1 -0
  507. package/dist/checks/specialized/parameter-consistency-check.js +115 -0
  508. package/dist/checks/specialized/parameter-consistency-check.js.map +1 -0
  509. package/dist/checks/specialized/prisma-field-names-validation.d.ts +15 -0
  510. package/dist/checks/specialized/prisma-field-names-validation.d.ts.map +1 -0
  511. package/dist/checks/specialized/prisma-field-names-validation.js +35 -0
  512. package/dist/checks/specialized/prisma-field-names-validation.js.map +1 -0
  513. package/dist/checks/specialized/prisma-null-syntax.d.ts +34 -0
  514. package/dist/checks/specialized/prisma-null-syntax.d.ts.map +1 -0
  515. package/dist/checks/specialized/prisma-null-syntax.js +330 -0
  516. package/dist/checks/specialized/prisma-null-syntax.js.map +1 -0
  517. package/dist/checks/specialized/prisma-query-validation.d.ts +15 -0
  518. package/dist/checks/specialized/prisma-query-validation.d.ts.map +1 -0
  519. package/dist/checks/specialized/prisma-query-validation.js +35 -0
  520. package/dist/checks/specialized/prisma-query-validation.js.map +1 -0
  521. package/dist/checks/specialized/product-type-validation.d.ts +17 -0
  522. package/dist/checks/specialized/product-type-validation.d.ts.map +1 -0
  523. package/dist/checks/specialized/product-type-validation.js +129 -0
  524. package/dist/checks/specialized/product-type-validation.js.map +1 -0
  525. package/dist/checks/specialized/responsive-image-validation.d.ts +14 -0
  526. package/dist/checks/specialized/responsive-image-validation.d.ts.map +1 -0
  527. package/dist/checks/specialized/responsive-image-validation.js +101 -0
  528. package/dist/checks/specialized/responsive-image-validation.js.map +1 -0
  529. package/dist/checks/specialized/root-cleanliness.d.ts +21 -0
  530. package/dist/checks/specialized/root-cleanliness.d.ts.map +1 -0
  531. package/dist/checks/specialized/root-cleanliness.js +251 -0
  532. package/dist/checks/specialized/root-cleanliness.js.map +1 -0
  533. package/dist/checks/specialized/rotation-detection-validation.d.ts +16 -0
  534. package/dist/checks/specialized/rotation-detection-validation.d.ts.map +1 -0
  535. package/dist/checks/specialized/rotation-detection-validation.js +113 -0
  536. package/dist/checks/specialized/rotation-detection-validation.js.map +1 -0
  537. package/dist/checks/specialized/script-organization.d.ts +17 -0
  538. package/dist/checks/specialized/script-organization.d.ts.map +1 -0
  539. package/dist/checks/specialized/script-organization.js +487 -0
  540. package/dist/checks/specialized/script-organization.js.map +1 -0
  541. package/dist/checks/specialized/shared-components-migration.d.ts +137 -0
  542. package/dist/checks/specialized/shared-components-migration.d.ts.map +1 -0
  543. package/dist/checks/specialized/shared-components-migration.js +1288 -0
  544. package/dist/checks/specialized/shared-components-migration.js.map +1 -0
  545. package/dist/checks/specialized/store-specialties-normalization.d.ts +10 -0
  546. package/dist/checks/specialized/store-specialties-normalization.d.ts.map +1 -0
  547. package/dist/checks/specialized/store-specialties-normalization.js +126 -0
  548. package/dist/checks/specialized/store-specialties-normalization.js.map +1 -0
  549. package/dist/checks/specialized/two-stage-trim-validation.d.ts +16 -0
  550. package/dist/checks/specialized/two-stage-trim-validation.d.ts.map +1 -0
  551. package/dist/checks/specialized/two-stage-trim-validation.js +115 -0
  552. package/dist/checks/specialized/two-stage-trim-validation.js.map +1 -0
  553. package/dist/checks/specialized/underscore-variable-audit.d.ts +26 -0
  554. package/dist/checks/specialized/underscore-variable-audit.d.ts.map +1 -0
  555. package/dist/checks/specialized/underscore-variable-audit.js +219 -0
  556. package/dist/checks/specialized/underscore-variable-audit.js.map +1 -0
  557. package/dist/checks/specialized/unified-badge-consistency.d.ts +16 -0
  558. package/dist/checks/specialized/unified-badge-consistency.d.ts.map +1 -0
  559. package/dist/checks/specialized/unified-badge-consistency.js +284 -0
  560. package/dist/checks/specialized/unified-badge-consistency.js.map +1 -0
  561. package/dist/checks/specialized/validate-integration-enums.d.ts +15 -0
  562. package/dist/checks/specialized/validate-integration-enums.d.ts.map +1 -0
  563. package/dist/checks/specialized/validate-integration-enums.js +131 -0
  564. package/dist/checks/specialized/validate-integration-enums.js.map +1 -0
  565. package/dist/checks/testing/action-regression.d.ts +23 -0
  566. package/dist/checks/testing/action-regression.d.ts.map +1 -0
  567. package/dist/checks/testing/action-regression.js +192 -0
  568. package/dist/checks/testing/action-regression.js.map +1 -0
  569. package/dist/checks/testing/critical-api-coverage.d.ts +21 -0
  570. package/dist/checks/testing/critical-api-coverage.d.ts.map +1 -0
  571. package/dist/checks/testing/critical-api-coverage.js +158 -0
  572. package/dist/checks/testing/critical-api-coverage.js.map +1 -0
  573. package/dist/checks/testing/data-entry-regression-required.d.ts +24 -0
  574. package/dist/checks/testing/data-entry-regression-required.d.ts.map +1 -0
  575. package/dist/checks/testing/data-entry-regression-required.js +378 -0
  576. package/dist/checks/testing/data-entry-regression-required.js.map +1 -0
  577. package/dist/checks/testing/e2e-best-practices.d.ts +24 -0
  578. package/dist/checks/testing/e2e-best-practices.d.ts.map +1 -0
  579. package/dist/checks/testing/e2e-best-practices.js +791 -0
  580. package/dist/checks/testing/e2e-best-practices.js.map +1 -0
  581. package/dist/checks/testing/e2e-flake-patterns.d.ts +26 -0
  582. package/dist/checks/testing/e2e-flake-patterns.d.ts.map +1 -0
  583. package/dist/checks/testing/e2e-flake-patterns.js +305 -0
  584. package/dist/checks/testing/e2e-flake-patterns.js.map +1 -0
  585. package/dist/checks/testing/e2e-redundant-visibility-checks.d.ts +25 -0
  586. package/dist/checks/testing/e2e-redundant-visibility-checks.d.ts.map +1 -0
  587. package/dist/checks/testing/e2e-redundant-visibility-checks.js +613 -0
  588. package/dist/checks/testing/e2e-redundant-visibility-checks.js.map +1 -0
  589. package/dist/checks/testing/e2e-slow-tests.d.ts +9 -0
  590. package/dist/checks/testing/e2e-slow-tests.d.ts.map +1 -0
  591. package/dist/checks/testing/e2e-slow-tests.js +142 -0
  592. package/dist/checks/testing/e2e-slow-tests.js.map +1 -0
  593. package/dist/checks/testing/e2e-timeouts.d.ts +9 -0
  594. package/dist/checks/testing/e2e-timeouts.d.ts.map +1 -0
  595. package/dist/checks/testing/e2e-timeouts.js +82 -0
  596. package/dist/checks/testing/e2e-timeouts.js.map +1 -0
  597. package/dist/checks/testing/integration-e2e-depth.d.ts +20 -0
  598. package/dist/checks/testing/integration-e2e-depth.d.ts.map +1 -0
  599. package/dist/checks/testing/integration-e2e-depth.js +575 -0
  600. package/dist/checks/testing/integration-e2e-depth.js.map +1 -0
  601. package/dist/checks/testing/playwright-feature-coverage-gaps.d.ts +31 -0
  602. package/dist/checks/testing/playwright-feature-coverage-gaps.d.ts.map +1 -0
  603. package/dist/checks/testing/playwright-feature-coverage-gaps.js +1582 -0
  604. package/dist/checks/testing/playwright-feature-coverage-gaps.js.map +1 -0
  605. package/dist/checks/testing/playwright-mock-inventory.d.ts +24 -0
  606. package/dist/checks/testing/playwright-mock-inventory.d.ts.map +1 -0
  607. package/dist/checks/testing/playwright-mock-inventory.js +380 -0
  608. package/dist/checks/testing/playwright-mock-inventory.js.map +1 -0
  609. package/dist/checks/testing/test-coverage-threshold.d.ts +25 -0
  610. package/dist/checks/testing/test-coverage-threshold.d.ts.map +1 -0
  611. package/dist/checks/testing/test-coverage-threshold.js +166 -0
  612. package/dist/checks/testing/test-coverage-threshold.js.map +1 -0
  613. package/dist/checks/testing/test-flakiness-score.d.ts +27 -0
  614. package/dist/checks/testing/test-flakiness-score.d.ts.map +1 -0
  615. package/dist/checks/testing/test-flakiness-score.js +358 -0
  616. package/dist/checks/testing/test-flakiness-score.js.map +1 -0
  617. package/dist/checks/testing/test-patterns.d.ts +16 -0
  618. package/dist/checks/testing/test-patterns.d.ts.map +1 -0
  619. package/dist/checks/testing/test-patterns.js +156 -0
  620. package/dist/checks/testing/test-patterns.js.map +1 -0
  621. package/dist/checks/workflows/a-plus-rating-validation.d.ts +42 -0
  622. package/dist/checks/workflows/a-plus-rating-validation.d.ts.map +1 -0
  623. package/dist/checks/workflows/a-plus-rating-validation.js +527 -0
  624. package/dist/checks/workflows/a-plus-rating-validation.js.map +1 -0
  625. package/dist/checks/workflows/affected.d.ts +14 -0
  626. package/dist/checks/workflows/affected.d.ts.map +1 -0
  627. package/dist/checks/workflows/affected.js +126 -0
  628. package/dist/checks/workflows/affected.js.map +1 -0
  629. package/dist/checks/workflows/ai.d.ts +6 -0
  630. package/dist/checks/workflows/ai.d.ts.map +1 -0
  631. package/dist/checks/workflows/ai.js +42 -0
  632. package/dist/checks/workflows/ai.js.map +1 -0
  633. package/dist/checks/workflows/all.d.ts +31 -0
  634. package/dist/checks/workflows/all.d.ts.map +1 -0
  635. package/dist/checks/workflows/all.js +2688 -0
  636. package/dist/checks/workflows/all.js.map +1 -0
  637. package/dist/checks/workflows/commit.d.ts +19 -0
  638. package/dist/checks/workflows/commit.d.ts.map +1 -0
  639. package/dist/checks/workflows/commit.js +207 -0
  640. package/dist/checks/workflows/commit.js.map +1 -0
  641. package/dist/checks/workflows/critical.d.ts +9 -0
  642. package/dist/checks/workflows/critical.d.ts.map +1 -0
  643. package/dist/checks/workflows/critical.js +213 -0
  644. package/dist/checks/workflows/critical.js.map +1 -0
  645. package/dist/checks/workflows/database-id-validation.d.ts +9 -0
  646. package/dist/checks/workflows/database-id-validation.d.ts.map +1 -0
  647. package/dist/checks/workflows/database-id-validation.js +13 -0
  648. package/dist/checks/workflows/database-id-validation.js.map +1 -0
  649. package/dist/checks/workflows/deploy.d.ts +20 -0
  650. package/dist/checks/workflows/deploy.d.ts.map +1 -0
  651. package/dist/checks/workflows/deploy.js +107 -0
  652. package/dist/checks/workflows/deploy.js.map +1 -0
  653. package/dist/checks/workflows/deployment-readiness.d.ts +12 -0
  654. package/dist/checks/workflows/deployment-readiness.d.ts.map +1 -0
  655. package/dist/checks/workflows/deployment-readiness.js +403 -0
  656. package/dist/checks/workflows/deployment-readiness.js.map +1 -0
  657. package/dist/checks/workflows/dev.d.ts +19 -0
  658. package/dist/checks/workflows/dev.d.ts.map +1 -0
  659. package/dist/checks/workflows/dev.js +88 -0
  660. package/dist/checks/workflows/dev.js.map +1 -0
  661. package/dist/checks/workflows/development.d.ts +9 -0
  662. package/dist/checks/workflows/development.d.ts.map +1 -0
  663. package/dist/checks/workflows/development.js +65 -0
  664. package/dist/checks/workflows/development.js.map +1 -0
  665. package/dist/checks/workflows/enterprise.d.ts +10 -0
  666. package/dist/checks/workflows/enterprise.d.ts.map +1 -0
  667. package/dist/checks/workflows/enterprise.js +359 -0
  668. package/dist/checks/workflows/enterprise.js.map +1 -0
  669. package/dist/checks/workflows/images.d.ts +6 -0
  670. package/dist/checks/workflows/images.d.ts.map +1 -0
  671. package/dist/checks/workflows/images.js +58 -0
  672. package/dist/checks/workflows/images.js.map +1 -0
  673. package/dist/checks/workflows/naming.d.ts +19 -0
  674. package/dist/checks/workflows/naming.d.ts.map +1 -0
  675. package/dist/checks/workflows/naming.js +42 -0
  676. package/dist/checks/workflows/naming.js.map +1 -0
  677. package/dist/checks/workflows/performance.d.ts +8 -0
  678. package/dist/checks/workflows/performance.d.ts.map +1 -0
  679. package/dist/checks/workflows/performance.js +77 -0
  680. package/dist/checks/workflows/performance.js.map +1 -0
  681. package/dist/checks/workflows/pre-deploy.d.ts +6 -0
  682. package/dist/checks/workflows/pre-deploy.d.ts.map +1 -0
  683. package/dist/checks/workflows/pre-deploy.js +41 -0
  684. package/dist/checks/workflows/pre-deploy.js.map +1 -0
  685. package/dist/checks/workflows/security.d.ts +8 -0
  686. package/dist/checks/workflows/security.d.ts.map +1 -0
  687. package/dist/checks/workflows/security.js +71 -0
  688. package/dist/checks/workflows/security.js.map +1 -0
  689. package/dist/checks/workflows/supercatch.d.ts +8 -0
  690. package/dist/checks/workflows/supercatch.d.ts.map +1 -0
  691. package/dist/checks/workflows/supercatch.js +127 -0
  692. package/dist/checks/workflows/supercatch.js.map +1 -0
  693. package/dist/checks/workflows/ui-quality.d.ts +9 -0
  694. package/dist/checks/workflows/ui-quality.d.ts.map +1 -0
  695. package/dist/checks/workflows/ui-quality.js +264 -0
  696. package/dist/checks/workflows/ui-quality.js.map +1 -0
  697. package/dist/checks/workflows/ui-uniformity.d.ts +18 -0
  698. package/dist/checks/workflows/ui-uniformity.d.ts.map +1 -0
  699. package/dist/checks/workflows/ui-uniformity.js +265 -0
  700. package/dist/checks/workflows/ui-uniformity.js.map +1 -0
  701. package/dist/checks/workflows/vercel.d.ts +16 -0
  702. package/dist/checks/workflows/vercel.d.ts.map +1 -0
  703. package/dist/checks/workflows/vercel.js +173 -0
  704. package/dist/checks/workflows/vercel.js.map +1 -0
  705. package/dist/utils/validation-helpers.d.ts +43 -0
  706. package/dist/utils/validation-helpers.d.ts.map +1 -0
  707. package/dist/utils/validation-helpers.js +370 -0
  708. package/dist/utils/validation-helpers.js.map +1 -0
  709. package/package.json +1 -1
@@ -0,0 +1,982 @@
1
+ #!/usr/bin/env tsx
2
+ "use strict";
3
+ /**
4
+ * Advanced UI Consistency Preflight
5
+ *
6
+ * Comprehensive consistency checks:
7
+ * 1. Tooltip Consistency - Delay, placement, styling
8
+ * 2. Modal/Drawer Sizing - maxWidth, consistent sizing
9
+ * 3. Pagination Consistency - Different patterns across tables
10
+ * 4. Avatar Sizing - Inconsistent sizes
11
+ * 5. Badge Positioning - Proper overlap positioning
12
+ * 5b. UI Control Gap Spacing - Uniform gaps in SegmentedControl, Tabs, Chips, Button groups
13
+ * 6. Divider Usage - Missing dividers between sections
14
+ * 7. Transition Consistency - Hardcoded vs design tokens
15
+ * 8. Overflow Handling - Text overflow without ellipsis
16
+ *
17
+ * Usage:
18
+ * pnpm preflight:ui-consistency # All checks
19
+ * pnpm preflight:ui-consistency tooltips # Tooltip only
20
+ * pnpm preflight:ui-consistency modals # Modal sizing only
21
+ * pnpm preflight:ui-consistency pagination # Pagination only
22
+ * pnpm preflight:ui-consistency avatars # Avatar sizing only
23
+ * pnpm preflight:ui-consistency badges # Badge positioning only
24
+ * pnpm preflight:ui-consistency gaps # UI control gap spacing only
25
+ * pnpm preflight:ui-consistency dividers # Divider usage only
26
+ * pnpm preflight:ui-consistency transitions # Transition consistency only
27
+ * pnpm preflight:ui-consistency overflow # Overflow handling only
28
+ */
29
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ var desc = Object.getOwnPropertyDescriptor(m, k);
32
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
33
+ desc = { enumerable: true, get: function() { return m[k]; } };
34
+ }
35
+ Object.defineProperty(o, k2, desc);
36
+ }) : (function(o, m, k, k2) {
37
+ if (k2 === undefined) k2 = k;
38
+ o[k2] = m[k];
39
+ }));
40
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
41
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
42
+ }) : function(o, v) {
43
+ o["default"] = v;
44
+ });
45
+ var __importStar = (this && this.__importStar) || (function () {
46
+ var ownKeys = function(o) {
47
+ ownKeys = Object.getOwnPropertyNames || function (o) {
48
+ var ar = [];
49
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
50
+ return ar;
51
+ };
52
+ return ownKeys(o);
53
+ };
54
+ return function (mod) {
55
+ if (mod && mod.__esModule) return mod;
56
+ var result = {};
57
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
58
+ __setModuleDefault(result, mod);
59
+ return result;
60
+ };
61
+ })();
62
+ Object.defineProperty(exports, "__esModule", { value: true });
63
+ exports.UIConsistencyAdvancedModule = void 0;
64
+ const fs = __importStar(require("fs"));
65
+ const file_cache_1 = require("../../shared/file-cache");
66
+ const path = __importStar(require("path"));
67
+ const console_chars_1 = require("../../utils/console-chars");
68
+ const universal_progress_reporter_1 = require("../system/universal-progress-reporter");
69
+ const concurrency_config_1 = require("../../shared/concurrency-config");
70
+ const EXCLUDED_PATTERNS = [
71
+ "**/node_modules/**",
72
+ "**/.next/**",
73
+ "**/dist/**",
74
+ "**/build/**",
75
+ "**/*.test.tsx",
76
+ "**/*.spec.tsx",
77
+ "**/*.stories.tsx",
78
+ ];
79
+ // Get concurrency from shared config (respects PREFLIGHT_CONCURRENCY env var)
80
+ const concurrencyConfig = (0, concurrency_config_1.getConcurrencyConfig)();
81
+ class UIConsistencyAdvancedModule {
82
+ verbose;
83
+ parallel = false;
84
+ constructor(options = {}) {
85
+ this.verbose = options.verbose || false;
86
+ this.parallel = options.parallel || concurrencyConfig.parallel;
87
+ }
88
+ async getFiles() {
89
+ return await file_cache_1.fileCache.getAllTsxJsx();
90
+ }
91
+ /**
92
+ * 1. Tooltip Consistency
93
+ * - Tooltips without delay
94
+ * - Inconsistent placement
95
+ * - Missing arrow
96
+ */
97
+ async checkTooltipConsistency() {
98
+ const startTime = Date.now();
99
+ const issues = [];
100
+ const files = await this.getFiles();
101
+ const placements = new Map();
102
+ for (const file of files) {
103
+ const content = fs.readFileSync(file, "utf8");
104
+ const lines = content.split("\n");
105
+ lines.forEach((line, index) => {
106
+ if (/<Tooltip/.test(line)) {
107
+ const tooltipBlock = lines.slice(index, Math.min(index + 10, lines.length)).join("\n");
108
+ // Track placement usage
109
+ const placementMatch = tooltipBlock.match(/placement=["']([^"']+)["']/);
110
+ if (placementMatch) {
111
+ const placement = placementMatch[1];
112
+ placements.set(placement, (placements.get(placement) || 0) + 1);
113
+ }
114
+ // Check for enterDelay (should have some delay for UX)
115
+ const hasEnterDelay = /enterDelay=/.test(tooltipBlock);
116
+ const hasDelayProp = /delay=/.test(tooltipBlock);
117
+ if (!hasEnterDelay && !hasDelayProp) {
118
+ issues.push({
119
+ file,
120
+ line: index + 1,
121
+ type: "tooltip-no-delay",
122
+ severity: "info",
123
+ message: "Tooltip without enterDelay (may appear too quickly)",
124
+ suggestion: "Add enterDelay={300} for better UX",
125
+ snippet: line.trim().substring(0, 80),
126
+ });
127
+ }
128
+ // Check for arrow prop
129
+ const hasArrow = /arrow/.test(tooltipBlock);
130
+ if (!hasArrow) {
131
+ issues.push({
132
+ file,
133
+ line: index + 1,
134
+ type: "tooltip-no-arrow",
135
+ severity: "info",
136
+ message: "Tooltip without arrow (harder to associate with trigger)",
137
+ suggestion: "Add arrow prop for visual connection",
138
+ snippet: line.trim().substring(0, 80),
139
+ });
140
+ }
141
+ }
142
+ });
143
+ }
144
+ // Report inconsistent placement usage
145
+ if (placements.size > 3) {
146
+ const sortedPlacements = [...placements.entries()].sort((a, b) => b[1] - a[1]);
147
+ issues.push({
148
+ file: "codebase-wide",
149
+ line: 0,
150
+ type: "tooltip-placement-inconsistency",
151
+ severity: "info",
152
+ message: `Tooltips use ${placements.size} different placements: ${sortedPlacements.map(([p, c]) => `${p}(${c})`).join(", ")}`,
153
+ suggestion: "Standardize on top/bottom for most tooltips",
154
+ });
155
+ }
156
+ return {
157
+ name: "Tooltip Consistency",
158
+ passed: true,
159
+ blocking: true,
160
+ issues,
161
+ duration: Date.now() - startTime,
162
+ };
163
+ }
164
+ /**
165
+ * 2. Modal/Drawer Sizing
166
+ * - Dialogs without maxWidth
167
+ * - Inconsistent drawer widths
168
+ */
169
+ async checkModalSizing() {
170
+ const startTime = Date.now();
171
+ const issues = [];
172
+ const files = await this.getFiles();
173
+ const dialogMaxWidths = new Map();
174
+ const drawerWidths = new Map();
175
+ for (const file of files) {
176
+ const content = fs.readFileSync(file, "utf8");
177
+ const lines = content.split("\n");
178
+ lines.forEach((line, index) => {
179
+ // Check Dialog maxWidth
180
+ if (/<Dialog\b/.test(line)) {
181
+ const dialogBlock = lines.slice(index, Math.min(index + 10, lines.length)).join("\n");
182
+ const maxWidthMatch = dialogBlock.match(/maxWidth=["']([^"']+)["']/);
183
+ if (maxWidthMatch) {
184
+ dialogMaxWidths.set(maxWidthMatch[1], (dialogMaxWidths.get(maxWidthMatch[1]) || 0) + 1);
185
+ }
186
+ else if (!dialogBlock.includes("fullScreen")) {
187
+ issues.push({
188
+ file,
189
+ line: index + 1,
190
+ type: "dialog-no-maxwidth",
191
+ severity: "info",
192
+ message: "Dialog without maxWidth prop",
193
+ suggestion: 'Add maxWidth="sm" or "md" for consistent sizing',
194
+ snippet: line.trim().substring(0, 80),
195
+ });
196
+ }
197
+ }
198
+ // Check Drawer width
199
+ if (/<Drawer\b/.test(line)) {
200
+ const drawerBlock = lines.slice(index, Math.min(index + 20, lines.length)).join("\n");
201
+ const widthMatch = drawerBlock.match(/width[=:]\s*["']?(\d+(?:px|rem|%)?|var\([^)]+\))["']?/);
202
+ if (widthMatch) {
203
+ drawerWidths.set(widthMatch[1], (drawerWidths.get(widthMatch[1]) || 0) + 1);
204
+ }
205
+ // Check for hardcoded pixel widths
206
+ if (/width:\s*["']?\d+px/.test(drawerBlock)) {
207
+ issues.push({
208
+ file,
209
+ line: index + 1,
210
+ type: "drawer-hardcoded-width",
211
+ severity: "info",
212
+ message: "Drawer with hardcoded pixel width",
213
+ suggestion: "Use design token var(--sidebar-width) or responsive width",
214
+ snippet: line.trim().substring(0, 80),
215
+ });
216
+ }
217
+ }
218
+ });
219
+ }
220
+ return {
221
+ name: "Modal/Drawer Sizing",
222
+ passed: true,
223
+ blocking: true,
224
+ issues,
225
+ duration: Date.now() - startTime,
226
+ };
227
+ }
228
+ /**
229
+ * 3. Pagination Consistency
230
+ * - Different pagination patterns
231
+ * - Missing page size options
232
+ */
233
+ async checkPaginationConsistency() {
234
+ const startTime = Date.now();
235
+ const issues = [];
236
+ const files = await this.getFiles();
237
+ let paginationPatterns = 0;
238
+ let tablePaginationCount = 0;
239
+ let customPaginationCount = 0;
240
+ for (const file of files) {
241
+ const content = fs.readFileSync(file, "utf8");
242
+ const lines = content.split("\n");
243
+ // Count different pagination approaches
244
+ if (/<TablePagination/.test(content))
245
+ tablePaginationCount++;
246
+ if (/<Pagination\b/.test(content))
247
+ customPaginationCount++;
248
+ lines.forEach((line, index) => {
249
+ // Check for pagination without page size selector
250
+ if (/<(?:TablePagination|Pagination)\b/.test(line)) {
251
+ const paginationBlock = lines.slice(index, Math.min(index + 15, lines.length)).join("\n");
252
+ const hasRowsPerPage = /rowsPerPage|pageSize|perPage/.test(paginationBlock);
253
+ if (!hasRowsPerPage) {
254
+ issues.push({
255
+ file,
256
+ line: index + 1,
257
+ type: "pagination-no-page-size",
258
+ severity: "info",
259
+ message: "Pagination without page size selector",
260
+ suggestion: "Add rowsPerPageOptions for user control",
261
+ snippet: line.trim().substring(0, 80),
262
+ });
263
+ }
264
+ }
265
+ // Check for manual pagination (page buttons without component)
266
+ if (/page\s*[<>=]+\s*\d|setPage\(/.test(line) && !content.includes("Pagination")) {
267
+ paginationPatterns++;
268
+ }
269
+ });
270
+ }
271
+ // Report mixed pagination approaches
272
+ if (tablePaginationCount > 0 && customPaginationCount > 0) {
273
+ issues.push({
274
+ file: "codebase-wide",
275
+ line: 0,
276
+ type: "mixed-pagination-components",
277
+ severity: "info",
278
+ message: `Mixed pagination: TablePagination(${tablePaginationCount}) and Pagination(${customPaginationCount})`,
279
+ suggestion: "Standardize on one pagination component",
280
+ });
281
+ }
282
+ return {
283
+ name: "Pagination Consistency",
284
+ passed: true,
285
+ blocking: true,
286
+ issues,
287
+ duration: Date.now() - startTime,
288
+ };
289
+ }
290
+ /**
291
+ * 4. Avatar Sizing
292
+ * - Inconsistent avatar sizes
293
+ * - Missing fallback
294
+ */
295
+ async checkAvatarSizing() {
296
+ const startTime = Date.now();
297
+ const issues = [];
298
+ const files = await this.getFiles();
299
+ const avatarSizes = new Map();
300
+ for (const file of files) {
301
+ const content = fs.readFileSync(file, "utf8");
302
+ const lines = content.split("\n");
303
+ lines.forEach((line, index) => {
304
+ if (/<Avatar\b/.test(line)) {
305
+ const avatarBlock = lines.slice(index, Math.min(index + 10, lines.length)).join("\n");
306
+ // Track sizes
307
+ const sizeMatch = avatarBlock.match(/(?:width|height|size)[=:]\s*["']?(\d+(?:px)?|var\([^)]+\))["']?/);
308
+ if (sizeMatch) {
309
+ avatarSizes.set(sizeMatch[1], (avatarSizes.get(sizeMatch[1]) || 0) + 1);
310
+ }
311
+ // Check for fallback (alt or children)
312
+ const hasAlt = /alt=/.test(avatarBlock);
313
+ const hasChildren = /<Avatar[^>]*>[^<]+<\/Avatar>/.test(avatarBlock);
314
+ const hasSrc = /src=/.test(avatarBlock);
315
+ if (hasSrc && !hasAlt && !hasChildren) {
316
+ issues.push({
317
+ file,
318
+ line: index + 1,
319
+ type: "avatar-no-fallback",
320
+ severity: "warning",
321
+ message: "Avatar with src but no alt or fallback content",
322
+ suggestion: 'Add alt="User name" or fallback initials as children',
323
+ snippet: line.trim().substring(0, 80),
324
+ });
325
+ }
326
+ // Check for hardcoded pixel sizes
327
+ if (/(?:width|height):\s*["']?\d+px/.test(avatarBlock)) {
328
+ issues.push({
329
+ file,
330
+ line: index + 1,
331
+ type: "avatar-hardcoded-size",
332
+ severity: "info",
333
+ message: "Avatar with hardcoded pixel size",
334
+ suggestion: "Use consistent sizes: 32px (sm), 40px (md), 48px (lg)",
335
+ snippet: line.trim().substring(0, 80),
336
+ });
337
+ }
338
+ }
339
+ });
340
+ }
341
+ // Report inconsistent sizes
342
+ if (avatarSizes.size > 4) {
343
+ const sortedSizes = [...avatarSizes.entries()].sort((a, b) => b[1] - a[1]);
344
+ issues.push({
345
+ file: "codebase-wide",
346
+ line: 0,
347
+ type: "avatar-size-inconsistency",
348
+ severity: "info",
349
+ message: `Avatars use ${avatarSizes.size} different sizes: ${sortedSizes
350
+ .slice(0, 5)
351
+ .map(([s, c]) => `${s}(${c})`)
352
+ .join(", ")}`,
353
+ suggestion: "Standardize on 32px, 40px, 48px, 64px sizes",
354
+ });
355
+ }
356
+ return {
357
+ name: "Avatar Sizing",
358
+ passed: issues.filter((i) => i.severity === "error").length === 0,
359
+ blocking: true,
360
+ issues,
361
+ duration: Date.now() - startTime,
362
+ };
363
+ }
364
+ /**
365
+ * 5. Badge Positioning
366
+ * - Badges without proper overlap
367
+ * - Missing anchor origin
368
+ */
369
+ async checkBadgePositioning() {
370
+ const startTime = Date.now();
371
+ const issues = [];
372
+ const files = await this.getFiles();
373
+ for (const file of files) {
374
+ const content = fs.readFileSync(file, "utf8");
375
+ const lines = content.split("\n");
376
+ lines.forEach((line, index) => {
377
+ if (/<Badge\b/.test(line)) {
378
+ const badgeBlock = lines.slice(index, Math.min(index + 10, lines.length)).join("\n");
379
+ // Check for anchorOrigin
380
+ const hasAnchorOrigin = /anchorOrigin/.test(badgeBlock);
381
+ const hasOverlap = /overlap/.test(badgeBlock);
382
+ // Badge on Avatar should have circular overlap
383
+ const isOnAvatar = /<Badge[^>]*>[^]*<Avatar/.test(badgeBlock) ||
384
+ /<Avatar[^>]*>[^]*<Badge/.test(badgeBlock);
385
+ if (isOnAvatar && !hasOverlap) {
386
+ issues.push({
387
+ file,
388
+ line: index + 1,
389
+ type: "badge-avatar-no-overlap",
390
+ severity: "info",
391
+ message: 'Badge on Avatar without overlap="circular"',
392
+ suggestion: 'Add overlap="circular" for proper positioning on avatars',
393
+ snippet: line.trim().substring(0, 80),
394
+ });
395
+ }
396
+ // Check for invisible badges (badgeContent={0} without showZero)
397
+ if (/badgeContent=\{0\}/.test(badgeBlock) && !/showZero/.test(badgeBlock)) {
398
+ issues.push({
399
+ file,
400
+ line: index + 1,
401
+ type: "badge-zero-hidden",
402
+ severity: "info",
403
+ message: "Badge with content 0 will be hidden (add showZero if intentional)",
404
+ suggestion: "Add showZero prop if zero should be displayed",
405
+ snippet: line.trim().substring(0, 80),
406
+ });
407
+ }
408
+ }
409
+ });
410
+ }
411
+ return {
412
+ name: "Badge Positioning",
413
+ passed: true,
414
+ blocking: true,
415
+ issues,
416
+ duration: Date.now() - startTime,
417
+ };
418
+ }
419
+ /**
420
+ * 5b. UI Control Gap Spacing
421
+ * Ensures consistent gap spacing across all UI control components:
422
+ * - SegmentedControl: gap-1 between items
423
+ * - Tabs: flex with proper spacing
424
+ * - ToggleButtonGroup: gap or border-based separation
425
+ * - Chip groups: gap-2 between chips
426
+ * - Custom radiogroup/tab patterns
427
+ */
428
+ async checkUIControlGapSpacing() {
429
+ const startTime = Date.now();
430
+ const issues = [];
431
+ // Define UI control components and their expected gap patterns
432
+ const uiControlChecks = [
433
+ {
434
+ path: "components/ui/SegmentedControl.tsx",
435
+ name: "SegmentedControl",
436
+ expectedGap: "gap-1",
437
+ checkPattern: /cva\s*\(\s*["'`][^"'`]*\bgap-\d/,
438
+ suggestion: "Add gap-1 to CVA base styles for uniform item spacing",
439
+ },
440
+ {
441
+ path: "components/ui/Tabs.tsx",
442
+ name: "Tabs",
443
+ // Tabs use flex without gap (items touch the border-bottom indicator)
444
+ // This is intentional - tabs rely on individual padding
445
+ skipCheck: true,
446
+ },
447
+ {
448
+ path: "components/ui/ToggleButton.tsx",
449
+ name: "ToggleButtonGroup",
450
+ // ToggleButtonGroup uses border separation, not gap (intentional design)
451
+ skipCheck: true,
452
+ },
453
+ {
454
+ path: "components/ui/Chip.tsx",
455
+ name: "Chip",
456
+ // Individual chip has internal gap-1.5, groups should use gap-2
457
+ expectedGap: "gap-1.5",
458
+ checkPattern: /["'`][^"'`]*\bgap-1\.5/,
459
+ suggestion: "Chip should have gap-1.5 for icon/label spacing",
460
+ },
461
+ ];
462
+ // Check each UI control component
463
+ for (const check of uiControlChecks) {
464
+ if (check.skipCheck)
465
+ continue;
466
+ if (fs.existsSync(check.path)) {
467
+ const content = fs.readFileSync(check.path, "utf8");
468
+ const lines = content.split("\n");
469
+ if (check.checkPattern && !check.checkPattern.test(content)) {
470
+ // Find the cva definition line
471
+ let cvaLine = 1;
472
+ lines.forEach((line, index) => {
473
+ if (/cva\s*\(/.test(line)) {
474
+ cvaLine = index + 1;
475
+ }
476
+ });
477
+ issues.push({
478
+ file: check.path,
479
+ line: cvaLine,
480
+ type: `${check.name.toLowerCase()}-no-gap`,
481
+ severity: "error",
482
+ message: `${check.name} missing expected gap spacing (${check.expectedGap})`,
483
+ suggestion: check.suggestion,
484
+ snippet: `Expected: ${check.expectedGap}`,
485
+ });
486
+ }
487
+ }
488
+ }
489
+ // Check for Chip groups without proper gap
490
+ const files = await this.getFiles();
491
+ for (const file of files) {
492
+ // Skip UI component definitions (already checked above)
493
+ // Normalize path separators for cross-platform compatibility
494
+ const normalizedPath = file.replace(/\\/g, "/");
495
+ if (normalizedPath.includes("components/ui/"))
496
+ continue;
497
+ const content = fs.readFileSync(file, "utf8");
498
+ const lines = content.split("\n");
499
+ lines.forEach((line, index) => {
500
+ // Check for Chip groups (multiple Chips in a flex container)
501
+ // Match "flex" as display:flex, not flex-1, flex-grow, etc.
502
+ // Skip Stack components (they have built-in spacing prop)
503
+ const isFlexContainer = /className=["'][^"']*\bflex\b(?!-)[^"']*["']/.test(line) && !/<Stack\b/.test(line);
504
+ if (isFlexContainer) {
505
+ const contextBlock = lines.slice(index, Math.min(index + 15, lines.length)).join("\n");
506
+ // Skip if this is inside a Stack component (check previous lines)
507
+ const prevLines = lines.slice(Math.max(0, index - 3), index).join("\n");
508
+ const isInsideStack = /<Stack\b/.test(prevLines) && !/<\/Stack>/.test(prevLines);
509
+ if (!isInsideStack) {
510
+ // Count Chip components
511
+ const chipCount = (contextBlock.match(/<Chip\b/g) || []).length;
512
+ if (chipCount >= 2) {
513
+ const hasGap = /\bgap-\d/.test(line) || /\bgap-\d/.test(contextBlock.split("\n")[0]);
514
+ const hasSpacing = /spacing=/.test(line) || /space-x-/.test(line);
515
+ if (!hasGap && !hasSpacing) {
516
+ issues.push({
517
+ file,
518
+ line: index + 1,
519
+ type: "chip-group-no-gap",
520
+ severity: "warning",
521
+ message: `Chip group (${chipCount} chips) without gap spacing`,
522
+ suggestion: "Add gap-2 class for consistent chip spacing",
523
+ snippet: line.trim().substring(0, 80),
524
+ });
525
+ }
526
+ }
527
+ }
528
+ }
529
+ // Check for custom radiogroup patterns (excluding grids and star ratings)
530
+ if (/role=["']radiogroup["']/.test(line)) {
531
+ const contextBlock = lines
532
+ .slice(Math.max(0, index - 5), Math.min(index + 15, lines.length))
533
+ .join("\n");
534
+ // Skip grid layouts and star ratings
535
+ const isGrid = /\bgrid\b/.test(contextBlock);
536
+ const isStarRating = /Rating|star|Star/.test(file) || /starValue|isFilled/.test(contextBlock);
537
+ if (!isGrid && !isStarRating) {
538
+ const hasGap = /\bgap-\d/.test(line) ||
539
+ /\bgap-\d/.test(contextBlock.split("\n").slice(0, 3).join("\n"));
540
+ if (!hasGap) {
541
+ issues.push({
542
+ file,
543
+ line: index + 1,
544
+ type: "custom-radiogroup-no-gap",
545
+ severity: "warning",
546
+ message: "Custom radiogroup without gap spacing",
547
+ suggestion: "Add gap-1 or gap-2 class, or use <SegmentedControl /> component",
548
+ snippet: line.trim().substring(0, 80),
549
+ });
550
+ }
551
+ }
552
+ }
553
+ // Check for flex containers with aria-checked buttons (tab-like patterns)
554
+ if (/className=["'][^"']*\bflex\b[^"']*["']/.test(line) && !line.includes("flex-wrap")) {
555
+ const contextBlock = lines.slice(index, Math.min(index + 20, lines.length)).join("\n");
556
+ const hasAriaChecked = /aria-checked/.test(contextBlock);
557
+ const buttonCount = (contextBlock.match(/<button\b/gi) || []).length;
558
+ const isStarRating = /Rating|star|Star/.test(file) || /starValue|isFilled/.test(contextBlock);
559
+ if (hasAriaChecked && buttonCount >= 2 && !isStarRating) {
560
+ const hasGap = /\bgap-\d/.test(line);
561
+ if (!hasGap) {
562
+ issues.push({
563
+ file,
564
+ line: index + 1,
565
+ type: "custom-tabs-no-gap",
566
+ severity: "warning",
567
+ message: "Custom tab/toggle pattern without gap spacing",
568
+ suggestion: "Add gap-1 class for uniform spacing, or use <SegmentedControl /> or <Tabs />",
569
+ snippet: line.trim().substring(0, 80),
570
+ });
571
+ }
572
+ }
573
+ }
574
+ // Check for Button groups (multiple Buttons in inline-flex without gap)
575
+ if (/className=["'][^"']*\binline-flex\b[^"']*["']/.test(line)) {
576
+ const contextBlock = lines.slice(index, Math.min(index + 10, lines.length)).join("\n");
577
+ const buttonCount = (contextBlock.match(/<Button\b/g) || []).length;
578
+ if (buttonCount >= 2) {
579
+ const hasGap = /\bgap-\d/.test(line);
580
+ const hasSpace = /\bspace-x-\d/.test(line);
581
+ if (!hasGap && !hasSpace) {
582
+ issues.push({
583
+ file,
584
+ line: index + 1,
585
+ type: "button-group-no-gap",
586
+ severity: "info",
587
+ message: `Button group (${buttonCount} buttons) without gap spacing`,
588
+ suggestion: "Add gap-2 class for consistent button spacing",
589
+ snippet: line.trim().substring(0, 80),
590
+ });
591
+ }
592
+ }
593
+ }
594
+ });
595
+ }
596
+ const hasErrors = issues.some((i) => i.severity === "error");
597
+ return {
598
+ name: "UI Control Gap Spacing",
599
+ passed: !hasErrors,
600
+ blocking: true,
601
+ issues,
602
+ duration: Date.now() - startTime,
603
+ };
604
+ }
605
+ /**
606
+ * 6. Divider Usage
607
+ * - Missing dividers between sections
608
+ * - Inconsistent divider styling
609
+ */
610
+ async checkDividerUsage() {
611
+ const startTime = Date.now();
612
+ const issues = [];
613
+ const files = await this.getFiles();
614
+ for (const file of files) {
615
+ const content = fs.readFileSync(file, "utf8");
616
+ const lines = content.split("\n");
617
+ lines.forEach((line, index) => {
618
+ // Check for hr elements (should use Divider component)
619
+ if (/<hr\b/.test(line)) {
620
+ issues.push({
621
+ file,
622
+ line: index + 1,
623
+ type: "raw-hr-element",
624
+ severity: "info",
625
+ message: "Raw <hr> element instead of Divider component",
626
+ suggestion: "Use <Divider /> for consistent styling",
627
+ snippet: line.trim().substring(0, 80),
628
+ });
629
+ }
630
+ // Check for border-based dividers
631
+ if (/border-(?:t|b)-\[1px\]|borderTop:\s*["']1px/.test(line)) {
632
+ const contextBlock = lines.slice(index, Math.min(index + 5, lines.length)).join("\n");
633
+ const isActualDivider = /divider|separator/i.test(contextBlock);
634
+ if (isActualDivider) {
635
+ issues.push({
636
+ file,
637
+ line: index + 1,
638
+ type: "border-as-divider",
639
+ severity: "info",
640
+ message: "Border used as divider instead of Divider component",
641
+ suggestion: "Use <Divider /> for semantic and consistent dividers",
642
+ snippet: line.trim().substring(0, 80),
643
+ });
644
+ }
645
+ }
646
+ // Check Divider without proper margin
647
+ if (/<Divider\b/.test(line)) {
648
+ const dividerBlock = lines.slice(index, Math.min(index + 5, lines.length)).join("\n");
649
+ const hasMargin = /className=["'][^"']*my-|style=\{[^}]*margin/.test(dividerBlock);
650
+ const hasSx = /sx=\{[^}]*my?:/.test(dividerBlock);
651
+ if (!hasMargin && !hasSx) {
652
+ issues.push({
653
+ file,
654
+ line: index + 1,
655
+ type: "divider-no-margin",
656
+ severity: "info",
657
+ message: "Divider without vertical margin",
658
+ suggestion: 'Add className="my-4" for proper spacing',
659
+ snippet: line.trim().substring(0, 80),
660
+ });
661
+ }
662
+ }
663
+ });
664
+ }
665
+ return {
666
+ name: "Divider Usage",
667
+ passed: true,
668
+ blocking: true,
669
+ issues,
670
+ duration: Date.now() - startTime,
671
+ };
672
+ }
673
+ /**
674
+ * 7. Transition Consistency
675
+ * - Hardcoded transitions vs design tokens
676
+ * - Missing transitions on interactive elements
677
+ */
678
+ async checkTransitionConsistency() {
679
+ const startTime = Date.now();
680
+ const issues = [];
681
+ const files = await this.getFiles();
682
+ for (const file of files) {
683
+ const content = fs.readFileSync(file, "utf8");
684
+ const lines = content.split("\n");
685
+ // Check if file uses CVA - if so, check for transition in base styles
686
+ const usesCva = /\bcva\(/.test(content);
687
+ const hasCvaTransition = usesCva && /transition-(?:all|colors|transform|opacity)/.test(content);
688
+ // Check if file has inline style transitions
689
+ const hasInlineTransition = /transition:\s*["']?(?:all|var\(--transition)/.test(content);
690
+ lines.forEach((line, index) => {
691
+ // Check for hardcoded transition values (skip custom easing which is intentional)
692
+ if (/transition:\s*["'](?:all|opacity|transform|color|background)[^"']*\d+(?:ms|s)/.test(line)) {
693
+ const usesToken = /var\(--transition/.test(line);
694
+ const hasCustomEasing = /cubic-bezier|ease-in-out|ease-out|ease-in/.test(line);
695
+ if (!usesToken && !hasCustomEasing) {
696
+ issues.push({
697
+ file,
698
+ line: index + 1,
699
+ type: "hardcoded-transition",
700
+ severity: "info",
701
+ message: "Hardcoded transition duration",
702
+ suggestion: "Use var(--transition-fast), var(--transition-normal), or var(--transition-slow)",
703
+ snippet: line.trim().substring(0, 80),
704
+ });
705
+ }
706
+ }
707
+ // Check for hover states without transition
708
+ if (/hover:(?:bg-|text-|border-|opacity-)/.test(line)) {
709
+ const hasTransition = /transition/.test(line);
710
+ // Skip if file uses CVA with transition, or has inline style transitions
711
+ if (!hasTransition && !hasCvaTransition && !hasInlineTransition) {
712
+ // Also check surrounding context (20 lines) for transition
713
+ const contextBlock = lines
714
+ .slice(Math.max(0, index - 15), Math.min(index + 10, lines.length))
715
+ .join("\n");
716
+ const hasContextTransition = /transition-(?:all|colors|transform|opacity)|transition:\s*["']?(?:all|var|background|opacity)/.test(contextBlock);
717
+ // Skip if hover is on a component that has built-in transitions (Button, Card, IconButton)
718
+ // Check both the line and surrounding context for the component
719
+ const isOnTransitionComponent = /<(?:Button|Card|IconButton|MenuItem|ListItem|Tab|Chip)\b/.test(line) ||
720
+ /<(?:Button|Card|IconButton|MenuItem|ListItem|Tab|Chip)\b/.test(contextBlock);
721
+ if (!hasContextTransition && !isOnTransitionComponent) {
722
+ issues.push({
723
+ file,
724
+ line: index + 1,
725
+ type: "hover-no-transition",
726
+ severity: "info",
727
+ message: "Hover state without transition (will be abrupt)",
728
+ suggestion: "Add transition-colors or transition-all class",
729
+ snippet: line.trim().substring(0, 80),
730
+ });
731
+ }
732
+ }
733
+ }
734
+ // Check for transform without transition
735
+ if (/hover:(?:scale-|rotate-|translate-)/.test(line)) {
736
+ const hasTransition = /transition/.test(line);
737
+ if (!hasTransition && !hasCvaTransition && !hasInlineTransition) {
738
+ const contextBlock = lines
739
+ .slice(Math.max(0, index - 10), Math.min(index + 10, lines.length))
740
+ .join("\n");
741
+ const hasContextTransition = /transition-(?:all|colors|transform|opacity)|transition:\s*["']?(?:all|var)/.test(contextBlock);
742
+ // Skip if transform is on a component that has built-in transitions
743
+ const isOnTransitionComponent = /<(?:Button|Card|IconButton)\b/.test(line);
744
+ if (!hasContextTransition && !isOnTransitionComponent) {
745
+ issues.push({
746
+ file,
747
+ line: index + 1,
748
+ type: "transform-no-transition",
749
+ severity: "info",
750
+ message: "Transform on hover without transition",
751
+ suggestion: "Add transition-transform class",
752
+ snippet: line.trim().substring(0, 80),
753
+ });
754
+ }
755
+ }
756
+ }
757
+ });
758
+ }
759
+ return {
760
+ name: "Transition Consistency",
761
+ passed: true,
762
+ blocking: true,
763
+ issues,
764
+ duration: Date.now() - startTime,
765
+ };
766
+ }
767
+ /**
768
+ * 8. Overflow Handling
769
+ * - Text overflow without ellipsis
770
+ * - Long content without truncation
771
+ */
772
+ async checkOverflowHandling() {
773
+ const startTime = Date.now();
774
+ const issues = [];
775
+ const files = await this.getFiles();
776
+ for (const file of files) {
777
+ const content = fs.readFileSync(file, "utf8");
778
+ const lines = content.split("\n");
779
+ lines.forEach((line, index) => {
780
+ // Check for overflow-hidden without text handling
781
+ if (/overflow-hidden/.test(line) &&
782
+ !line.includes("overflow-x") &&
783
+ !line.includes("overflow-y")) {
784
+ const contextBlock = lines.slice(index, Math.min(index + 10, lines.length)).join("\n");
785
+ const hasTextTruncate = /truncate|text-ellipsis|line-clamp/.test(contextBlock);
786
+ const hasTypography = /<Typography/.test(contextBlock);
787
+ if (hasTypography && !hasTextTruncate) {
788
+ issues.push({
789
+ file,
790
+ line: index + 1,
791
+ type: "overflow-hidden-no-truncate",
792
+ severity: "info",
793
+ message: "overflow-hidden on text container without truncation",
794
+ suggestion: "Add truncate class or line-clamp-N for text overflow",
795
+ snippet: line.trim().substring(0, 80),
796
+ });
797
+ }
798
+ }
799
+ // Check for Typography with noWrap but no width constraint
800
+ if (/<Typography[^>]*noWrap/.test(line)) {
801
+ const contextBlock = lines.slice(index, Math.min(index + 5, lines.length)).join("\n");
802
+ const hasWidthConstraint = /max-w-|maxWidth|w-\[|width:/.test(contextBlock);
803
+ if (!hasWidthConstraint) {
804
+ issues.push({
805
+ file,
806
+ line: index + 1,
807
+ type: "nowrap-no-width",
808
+ severity: "info",
809
+ message: "Typography noWrap without width constraint",
810
+ suggestion: "Add max-w-[200px] or similar to enable truncation",
811
+ snippet: line.trim().substring(0, 80),
812
+ });
813
+ }
814
+ }
815
+ // Check for long text fields without truncation
816
+ if (/<(?:TableCell|td)[^>]*>/.test(line)) {
817
+ const cellBlock = lines.slice(index, Math.min(index + 5, lines.length)).join("\n");
818
+ const hasDescription = /description|comment|note|message/i.test(cellBlock);
819
+ const hasTruncation = /truncate|line-clamp|noWrap|ellipsis/.test(cellBlock);
820
+ if (hasDescription && !hasTruncation) {
821
+ issues.push({
822
+ file,
823
+ line: index + 1,
824
+ type: "table-cell-no-truncate",
825
+ severity: "info",
826
+ message: "Table cell with long text field may need truncation",
827
+ suggestion: "Add truncate class or max-w-[300px] with overflow handling",
828
+ snippet: line.trim().substring(0, 80),
829
+ });
830
+ }
831
+ }
832
+ });
833
+ }
834
+ return {
835
+ name: "Overflow Handling",
836
+ passed: true,
837
+ blocking: true,
838
+ issues,
839
+ duration: Date.now() - startTime,
840
+ };
841
+ }
842
+ /**
843
+ * Run all checks
844
+ */
845
+ async runAll() {
846
+ const startTime = Date.now();
847
+ console.log(`\n${console_chars_1.emoji.target} ADVANCED UI CONSISTENCY PREFLIGHT`);
848
+ console.log((0, console_chars_1.createDivider)(80, "heavy"));
849
+ const checks = [];
850
+ checks.push(await this.checkTooltipConsistency());
851
+ checks.push(await this.checkModalSizing());
852
+ checks.push(await this.checkPaginationConsistency());
853
+ checks.push(await this.checkAvatarSizing());
854
+ checks.push(await this.checkBadgePositioning());
855
+ checks.push(await this.checkUIControlGapSpacing());
856
+ checks.push(await this.checkDividerUsage());
857
+ checks.push(await this.checkTransitionConsistency());
858
+ checks.push(await this.checkOverflowHandling());
859
+ const totalDuration = Date.now() - startTime;
860
+ const allIssues = checks.flatMap((c) => c.issues);
861
+ const errors = allIssues.filter((i) => i.severity === "error").length;
862
+ const warnings = allIssues.filter((i) => i.severity === "warning").length;
863
+ const infos = allIssues.filter((i) => i.severity === "info").length;
864
+ const blockingFailed = checks.some((c) => c.blocking && !c.passed);
865
+ const summary = {
866
+ total: checks.length,
867
+ passed: checks.filter((c) => c.passed).length,
868
+ failed: checks.filter((c) => !c.passed).length,
869
+ errors,
870
+ warnings,
871
+ };
872
+ // Print results
873
+ checks.forEach((check) => {
874
+ const icon = check.passed ? `${console_chars_1.emoji.success}` : `${console_chars_1.emoji.error}`;
875
+ const suffix = check.blocking ? " [BLOCKING]" : "";
876
+ console.log(`${icon} ${check.name} (${check.issues.length} issues, ${(check.duration / 1000).toFixed(1)}s)${suffix}`);
877
+ });
878
+ console.log((0, console_chars_1.createDivider)(80, "heavy"));
879
+ console.log(`Errors: ${errors} | Warnings: ${warnings} | Info: ${infos} | Time: ${(totalDuration / 1000).toFixed(1)}s`);
880
+ if (blockingFailed) {
881
+ console.log(`\n${console_chars_1.emoji.error} UI CONSISTENCY FAILED - ${errors} error(s)`);
882
+ }
883
+ else if (warnings > 0) {
884
+ console.log(`\n${console_chars_1.emoji.warning} UI CONSISTENCY PASSED - ${warnings} warning(s)`);
885
+ }
886
+ else {
887
+ console.log(`\n${console_chars_1.emoji.success} UI CONSISTENCY PASSED`);
888
+ }
889
+ return {
890
+ module: "ui-consistency-advanced",
891
+ passed: !blockingFailed,
892
+ totalDuration,
893
+ checks,
894
+ summary,
895
+ };
896
+ }
897
+ }
898
+ exports.UIConsistencyAdvancedModule = UIConsistencyAdvancedModule;
899
+ async function main() {
900
+ const reporter = (0, universal_progress_reporter_1.createUniversalProgressReporter)(path.basename(__filename, ".ts"));
901
+ const args = process.argv.slice(2);
902
+ const mode = args[0] || "all";
903
+ const verbose = args.includes("--verbose") || args.includes("-v");
904
+ const parallel = args.includes("--parallel") || args.includes("-p");
905
+ const module = new UIConsistencyAdvancedModule({ verbose, parallel });
906
+ const runSingle = async (name, fn) => {
907
+ console.log(`\n${console_chars_1.emoji.target} UI CONSISTENCY: ${name.toUpperCase()}`);
908
+ console.log((0, console_chars_1.createDivider)(80, "heavy"));
909
+ const check = await fn();
910
+ const summary = {
911
+ total: 1,
912
+ passed: check.passed ? 1 : 0,
913
+ failed: check.passed ? 0 : 1,
914
+ errors: check.issues.filter((i) => i.severity === "error").length,
915
+ warnings: check.issues.filter((i) => i.severity === "warning").length,
916
+ };
917
+ const icon = check.passed ? `${console_chars_1.emoji.success}` : `${console_chars_1.emoji.error}`;
918
+ console.log(`${icon} ${check.name} (${check.issues.length} issues, ${(check.duration / 1000).toFixed(1)}s)`);
919
+ if (check.issues.length > 0) {
920
+ check.issues.slice(0, 30).forEach((issue) => {
921
+ const color = issue.severity === "error"
922
+ ? "\x1b[31m"
923
+ : issue.severity === "warning"
924
+ ? "\x1b[33m"
925
+ : "\x1b[36m";
926
+ const reset = "\x1b[0m";
927
+ console.log(` ${color}[${issue.severity.toUpperCase()}]${reset} ${issue.file}:${issue.line}`);
928
+ console.log(` ${issue.message}`);
929
+ if (issue.suggestion)
930
+ console.log(` ${console_chars_1.chars.arrow} ${issue.suggestion}`);
931
+ });
932
+ if (check.issues.length > 30)
933
+ console.log(` ... and ${check.issues.length - 30} more issues`);
934
+ }
935
+ console.log((0, console_chars_1.createDivider)(80, "heavy"));
936
+ return {
937
+ module: `ui-consistency:${name}`,
938
+ passed: check.passed,
939
+ totalDuration: check.duration,
940
+ checks: [check],
941
+ summary,
942
+ };
943
+ };
944
+ let result;
945
+ switch (mode) {
946
+ case "tooltips":
947
+ result = await runSingle("tooltips", () => module.checkTooltipConsistency());
948
+ break;
949
+ case "modals":
950
+ result = await runSingle("modals", () => module.checkModalSizing());
951
+ break;
952
+ case "pagination":
953
+ result = await runSingle("pagination", () => module.checkPaginationConsistency());
954
+ break;
955
+ case "avatars":
956
+ result = await runSingle("avatars", () => module.checkAvatarSizing());
957
+ break;
958
+ case "badges":
959
+ result = await runSingle("badges", () => module.checkBadgePositioning());
960
+ break;
961
+ case "gaps":
962
+ result = await runSingle("gaps", () => module.checkUIControlGapSpacing());
963
+ break;
964
+ case "dividers":
965
+ result = await runSingle("dividers", () => module.checkDividerUsage());
966
+ break;
967
+ case "transitions":
968
+ result = await runSingle("transitions", () => module.checkTransitionConsistency());
969
+ break;
970
+ case "overflow":
971
+ result = await runSingle("overflow", () => module.checkOverflowHandling());
972
+ break;
973
+ default:
974
+ result = await module.runAll();
975
+ break;
976
+ }
977
+ process.exit(result.passed ? 0 : 1);
978
+ }
979
+ if (require.main === module) {
980
+ main();
981
+ }
982
+ //# sourceMappingURL=ui-consistency-advanced.js.map