diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e770f6..f5e2479 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ ## [Unreleased] +### S2-P6 · 跨端一致性自动验证(方案 B:静态结构比对) +- 新增 `tools/verify-cross-platform.mjs`(零依赖零联网):79 组件 × 4 端(H5/React/Vue2/Vue3)class 集合 + 结构骨架双 diff,演示包装类/变量名/模板残留降噪,high/medium/low 分级;产出 `tests/cross-platform-report.json`(79 条全量 + samples 3)。 +- 实测:完全一致 2,有差异 77(high 44/medium 22/low 11)。high 主因:React 端 `is-disabled/is-active` 缺失、H5 演示页缺框架端结构类、Tag/Select/Input 变体类缺失——已追加为 ROADMAP 的 S2-P6-F1~F4,不在本任务内修。 +- 回归零影响:`tests/report.json` 79/79、`site/data.json` 79 组件均未动(脚本只读消费)。 + ### S2-P5 · 暗色模式真正实现(选型 A:演示页随站点同步反色) - 令牌文件新增 `html.aa-dark` 组(31 个 `--au-`,≥15 达标):背景三层递进、文字四层、品牌/语义色向白提亮;10 项文字对比度全部 ≥4.5:1(脚本实测)。 - `site/style.css` 暗色块精简为结构样式(令牌值收归令牌文件,删旧内嵌值与“演示页保持浅色”规则);`site/app.js` 删死代码 `DARK_TOKENS`,`injectIframeTheme` 同步 `aa-dark` 类到演示 iframe。 diff --git a/ROADMAP.md b/ROADMAP.md index db9aa45..74c4e6b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -685,6 +685,51 @@ console.log('差异样本:', JSON.stringify(r.samples.slice(0,3),null,1)); **重要说明**:**这个任务的产出可能揭露一批真实的不一致**。这不是失败 —— 是这项任务的价值。发现的差异应作为新任务包列出,不在本任务内顺手修(避免范围蔓延)。 +**✅ 完成(方案 B:静态结构比对,零依赖零联网)** — 验收输出: + +``` +检查组件: 79 +完全一致: 2 +有差异 : 77 (high 44 / medium 22 / low 11) +written: tests/cross-platform-report.json +``` + +改动文件:`tools/verify-cross-platform.mjs`(新建,class 集合 + 结构骨架双 diff,演示包装类/变量名/模板残留降噪,high/medium/low 分级)→ `tests/cross-platform-report.json`(产出,79 条全量 + samples 3)。 +回归:`tests/report.json` 79/79 未动,`site/data.json` 79 组件未动(只读消费)。 +发现的新问题 → 已追加为 S2-P6-F1~F4(见下方),不在本任务内修。 + +### S2-P6-F1 · React 端缺失 `is-disabled` 等状态类(5 组件) | 预算 ~2 h | 优先级 P1 + +**目标**:`is-disabled`(5x)、`is-active`(3x)在 React 端补齐,与三端共识对齐。 + +**依据**:`tests/cross-platform-report.json` 的 `missing-consensus` 聚合。React 端多用 `disabled` 属性而非状态类,需确认是「有意用属性替代」还是「遗漏」——若有意,需在契约注明;若遗漏,补类。 + +**验收**:重跑 `node tools/verify-cross-platform.mjs`,`is-disabled/is-active miss:react` 条数归零或有契约说明。 + +### S2-P6-F2 · H5 演示页缺失框架端结构类 | 预算 ~2 h | 优先级 P2 + +**目标**:`col-selection/right/col-fixed/action`(table 系)、`ico/horizontal` 等「三框架端有、H5 演示页缺」的类,核对 H5 演示是否漏了对应变体展示。 + +**依据**:同上报告。H5 是静态演示页,可能只是没展示该变体(非 bug);但若是变体缺失展示,补演示片段即可。 + +**验收**:逐项标注「演示缺展示(补)」或「框架端多余(不动)」,`miss:h5` 的 high 条数下降或全部有结论。 + +### S2-P6-F3 · React 端 Tag/Select/Input 变体类缺失 | 预算 ~2 h | 优先级 P1 + +**目标**:`aa-tag-dot/aa-tag-custom`、`au-input-lg/sm`、`aa-select-empty` 等 React 端缺失的变体类,核对是未实现该变体还是类名拼写差异。 + +**依据**:同上报告(input 的 `au-input-lg/sm` 在本轮提取器修复后已证明是「追踪不到」而非「真缺失」的前车之鉴——先复核再修)。 + +**验收**:逐项复核,有真缺失则补实现;误报则修提取器。 + +### S2-P6-F4 · P6 报告纳入 CI 门禁 | 预算 ~30 min | 优先级 P2 + +**目标**:`regression.yml` 追加一步 `node tools/verify-cross-platform.mjs`,`total < 79` 或脚本非零退出时标红(high 差异只告警不阻塞,避免把历史差异变成合并 blocker)。 + +**依赖**:S1-P3(CI 已存在)。 + +**验收**:workflow 文件含该步骤且语法正确。 + --- ### S2-P7 · 行为断言 | 预算 ~1.5 天 | 优先级 P1 @@ -990,7 +1035,7 @@ figma export OK | P3 | CI 回归 | S1 | **P0** | 1.5 h | — | ✅ **已完成**(workflow + runner 重构 + exit code) | | P4 | `data.js` 瘦身 | S1 | **P0** | 3 h | — | ✅ **已完成**(data.js 98KB/sources 395/data.json 完整/回归 1003/1003,见 c65a69c) | | P5 | 暗色模式 | S2 | **P0** | 1 d | P4 ✅ | ✅ **已完成**(令牌组31/对比度10项≥4.5/10页实测/DARK VERIFY 32/32/首屏292KB/回归1003/1003,Q6选A) | -| P6 | 跨端一致性验证 | S2 | **P0** | 1 d | P3 | ⚪ 待 P3 | +| P6 | 跨端一致性验证 | S2 | **P0** | 1 d | P3 | ✅ **已完成**(静态结构比对 79/79,high 44/medium 22/low 11,F1-F4 已追加) | | P7 | 行为断言 | S2 | P1 | 1.5 d | — | 🟢 可开工(优先级低于 P2-P4) | | P8 | RTL | S3 | P1 | 2 d | P5 | ⚪ 待 P5 | | P9 | FAQ 页 | S3 | P2 | 1 d | — | 🟢 可开工(优先级低) | diff --git a/tests/cross-platform-report.json b/tests/cross-platform-report.json new file mode 100644 index 0000000..b974c20 --- /dev/null +++ b/tests/cross-platform-report.json @@ -0,0 +1,16482 @@ +{ + "generated": "2026-09-13 19:19:50", + "version": null, + "total": 79, + "identical": 2, + "differing": 77, + "severityCounts": { + "high": 44, + "medium": 22, + "low": 11, + "none": 2 + }, + "readErrors": [], + "samples": [ + { + "slug": "button", + "severity": "high", + "diffs": [ + { + "class": "btn-icon", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + } + ] + }, + { + "slug": "input", + "severity": "high", + "diffs": [ + { + "class": "prefix", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "clear", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "toggle", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "suffix", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "au-field", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "text", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "has-error", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "input", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ] + }, + { + "slug": "select", + "severity": "high", + "diffs": [ + { + "class": "check", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-select-empty", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-open", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-selected", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ] + } + ], + "items": [ + { + "slug": "button", + "files": { + "h5": "button.html", + "react": "Button.jsx", + "vue2": "Button.vue2.vue", + "vue3": "Button.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "btn", + "btn-danger", + "btn-default", + "btn-disabled", + "btn-label", + "btn-lg", + "btn-link", + "btn-md", + "btn-primary", + "btn-sm", + "btn-text", + "is-loading", + "spinner" + ], + "react": [ + "btn", + "btn-danger", + "btn-default", + "btn-disabled", + "btn-icon", + "btn-label", + "btn-lg", + "btn-link", + "btn-md", + "btn-primary", + "btn-sm", + "btn-text", + "is-loading", + "spinner" + ], + "vue2": [ + "btn", + "btn-danger", + "btn-default", + "btn-disabled", + "btn-icon", + "btn-label", + "btn-lg", + "btn-link", + "btn-md", + "btn-primary", + "btn-sm", + "btn-text", + "is-loading", + "spinner" + ], + "vue3": [ + "btn", + "btn-danger", + "btn-default", + "btn-disabled", + "btn-icon", + "btn-label", + "btn-lg", + "btn-link", + "btn-md", + "btn-primary", + "btn-sm", + "btn-text", + "is-loading", + "spinner" + ] + }, + "css": [ + "btn", + "btn-danger", + "btn-default", + "btn-disabled", + "btn-icon", + "btn-label", + "btn-lg", + "btn-link", + "btn-md", + "btn-primary", + "btn-sm", + "btn-text", + "css", + "is-loading", + "json", + "spinner" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "h2", + "head", + "html", + "link", + "meta", + "p", + "path", + "span", + "style", + "svg", + "title" + ], + "elements": 51 + }, + "react": { + "tags": [ + "button", + "path", + "span", + "svg" + ], + "elements": 5 + }, + "vue2": { + "tags": [ + "button", + "path", + "slot", + "span", + "svg" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "button", + "path", + "slot", + "span", + "svg" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "btn-icon", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "css", + "json" + ], + "severity": "high" + }, + { + "slug": "input", + "files": { + "h5": "input.html", + "react": "Input.jsx", + "vue2": "Input.vue2.vue", + "vue3": "Input.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "action", + "affix", + "au-input", + "au-input-lg", + "au-input-md", + "au-input-sm", + "error-text", + "is-disabled", + "is-error" + ], + "react": [ + "action", + "affix", + "au-field", + "au-input", + "au-input-lg", + "au-input-md", + "au-input-sm", + "clear", + "error-text", + "is-disabled", + "is-error", + "prefix", + "suffix", + "text", + "toggle" + ], + "vue2": [ + "action", + "affix", + "au-field", + "au-input", + "au-input-lg", + "au-input-md", + "au-input-sm", + "button", + "clear", + "error-text", + "has-error", + "input", + "is-disabled", + "is-error", + "placeholder", + "prefix", + "resolvedType", + "suffix", + "toggle", + "value" + ], + "vue3": [ + "action", + "affix", + "au-field", + "au-input", + "au-input-lg", + "au-input-md", + "au-input-sm", + "button", + "clear", + "error-text", + "has-error", + "input", + "is-disabled", + "is-error", + "modelValue", + "placeholder", + "prefix", + "resolvedType", + "suffix", + "toggle" + ] + }, + "css": [ + "action", + "affix", + "au-field", + "au-input", + "au-input-lg", + "au-input-sm", + "css", + "error-text", + "is-disabled", + "is-error", + "json" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "circle", + "div", + "h1", + "h2", + "head", + "html", + "input", + "link", + "meta", + "p", + "path", + "script", + "span", + "style", + "svg", + "title" + ], + "elements": 75 + }, + "react": { + "tags": [ + "button", + "circle", + "div", + "input", + "path", + "span", + "svg" + ], + "elements": 15 + }, + "vue2": { + "tags": [ + "button", + "circle", + "div", + "input", + "path", + "slot", + "span", + "svg" + ], + "elements": 17 + }, + "vue3": { + "tags": [ + "button", + "circle", + "div", + "input", + "path", + "slot", + "span", + "svg" + ], + "elements": 17 + } + }, + "diffs": [ + { + "class": "prefix", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "clear", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "toggle", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "suffix", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "au-field", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "text", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "has-error", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "input", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "resolvedType", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "value", + "presentIn": [ + "vue2" + ], + "missingIn": [ + "h5", + "react", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "placeholder", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "button", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "modelValue", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "css", + "json" + ], + "severity": "high" + }, + { + "slug": "select", + "files": { + "h5": "select.html", + "react": "Select.jsx", + "vue2": "Select.vue2.vue", + "vue3": "Select.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-select", + "aa-select-group-label", + "aa-select-option", + "aa-select-panel", + "aa-select-search", + "aa-select-trigger", + "caret", + "is-disabled", + "placeholder", + "tag", + "x" + ], + "react": [ + "aa-select", + "aa-select-empty", + "aa-select-group-label", + "aa-select-option", + "aa-select-panel", + "aa-select-search", + "aa-select-trigger", + "caret", + "check", + "is-disabled", + "is-open", + "placeholder", + "tag", + "x" + ], + "vue2": [ + "aa-select", + "aa-select-empty", + "aa-select-group-label", + "aa-select-option", + "aa-select-panel", + "aa-select-search", + "aa-select-trigger", + "caret", + "check", + "is-disabled", + "is-open", + "is-selected", + "placeholder", + "tag", + "x" + ], + "vue3": [ + "aa-select", + "aa-select-empty", + "aa-select-group-label", + "aa-select-option", + "aa-select-panel", + "aa-select-search", + "aa-select-trigger", + "caret", + "check", + "is-disabled", + "is-open", + "is-selected", + "placeholder", + "tag", + "x" + ] + }, + "css": [ + "aa-select", + "aa-select-empty", + "aa-select-group-label", + "aa-select-option", + "aa-select-panel", + "aa-select-search", + "aa-select-trigger", + "caret", + "check", + "css", + "is-disabled", + "is-open", + "is-selected", + "json", + "placeholder", + "tag", + "x" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "h2", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 73 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 17 + }, + "vue2": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 21 + }, + "vue3": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 21 + } + }, + "diffs": [ + { + "class": "check", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-select-empty", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-open", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-selected", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "css", + "json" + ], + "severity": "high" + }, + { + "slug": "table", + "files": { + "h5": "table.html", + "react": "Table.jsx", + "vue2": "Table.vue2.vue", + "vue3": "Table.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-table", + "align-right", + "checkbox", + "col-action", + "danger", + "empty", + "is-selected", + "link-btn", + "loading-mask", + "row-cb", + "sort-ind", + "sortable", + "spinner" + ], + "react": [ + "aa-table", + "action", + "align-right", + "checkbox", + "col-action", + "col-fixed", + "col-selection", + "danger", + "desc", + "empty", + "is-selected", + "link-btn", + "loading-mask", + "right", + "sort-ind", + "sortable", + "spinner" + ], + "vue2": [ + "aa-table", + "action", + "align-right", + "checkbox", + "col-action", + "col-fixed", + "col-selection", + "empty", + "is-selected", + "loading-mask", + "right", + "selection-change", + "sort-change", + "sort-ind", + "sortable", + "spinner" + ], + "vue3": [ + "aa-table", + "action", + "align-right", + "allSelected", + "checkbox", + "col-action", + "col-fixed", + "col-selection", + "empty", + "is-selected", + "loading-mask", + "right", + "selection-change", + "sort-change", + "sort-ind", + "sortable", + "spinner" + ] + }, + "css": [ + "aa-table", + "active", + "align-right", + "checkbox", + "col-action", + "col-selection", + "css", + "empty", + "is-selected", + "json", + "loading-mask", + "sort-ind", + "sortable", + "spinner" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "head", + "html", + "input", + "label", + "link", + "meta", + "p", + "script", + "span", + "style", + "table", + "tbody", + "td", + "th", + "thead", + "title", + "tr" + ], + "elements": 41 + }, + "react": { + "tags": [ + "button", + "div", + "input", + "span", + "table", + "tbody", + "td", + "th", + "thead", + "tr" + ], + "elements": 19 + }, + "vue2": { + "tags": [ + "div", + "input", + "slot", + "span", + "table", + "tbody", + "td", + "template", + "th", + "thead", + "tr" + ], + "elements": 19 + }, + "vue3": { + "tags": [ + "div", + "input", + "slot", + "span", + "table", + "tbody", + "td", + "template", + "th", + "thead", + "tr" + ], + "elements": 19 + } + }, + "diffs": [ + { + "class": "row-cb", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "link-btn", + "presentIn": [ + "h5", + "react" + ], + "missingIn": [ + "vue2", + "vue3" + ], + "type": "symmetric" + }, + { + "class": "danger", + "presentIn": [ + "h5", + "react" + ], + "missingIn": [ + "vue2", + "vue3" + ], + "type": "symmetric" + }, + { + "class": "col-selection", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "right", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "col-fixed", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "action", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "desc", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "selection-change", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "sort-change", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "allSelected", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "css", + "json", + "active" + ], + "severity": "high" + }, + { + "slug": "card", + "files": { + "h5": "Card.html", + "react": "Card.jsx", + "vue2": "Card.vue2.vue", + "vue3": "Card.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card", + "aa-card--bordered", + "aa-card--shadowed", + "aa-card__actions", + "aa-card__body", + "aa-card__extra", + "aa-card__header", + "aa-card__title" + ], + "react": [ + "aa-card", + "aa-card--bordered", + "aa-card--shadowed", + "aa-card__actions", + "aa-card__body", + "aa-card__extra", + "aa-card__header", + "aa-card__title" + ], + "vue2": [ + "aa-card", + "aa-card--bordered", + "aa-card--shadowed", + "aa-card__actions", + "aa-card__body", + "aa-card__extra", + "aa-card__header", + "aa-card__title" + ], + "vue3": [ + "aa-card", + "aa-card--bordered", + "aa-card--shadowed", + "aa-card__actions", + "aa-card__body", + "aa-card__extra", + "aa-card__header", + "aa-card__title" + ] + }, + "css": [ + "aa-card", + "aa-card--bordered", + "aa-card--shadowed", + "aa-card__actions", + "aa-card__body", + "aa-card__extra", + "aa-card__header", + "aa-card__title", + "css", + "json" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "style", + "title" + ], + "elements": 28 + }, + "react": { + "tags": [ + "a", + "button", + "div" + ], + "elements": 9 + }, + "vue2": { + "tags": [ + "div", + "slot" + ], + "elements": 10 + }, + "vue3": { + "tags": [ + "div", + "slot" + ], + "elements": 10 + } + }, + "diffs": [], + "cssUnused": [ + "css", + "json" + ], + "severity": "none" + }, + { + "slug": "modal", + "files": { + "h5": "modal.html", + "react": "Modal.jsx", + "vue2": "Modal.vue2.vue", + "vue3": "Modal.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-mask", + "aa-modal", + "aa-modal__body", + "aa-modal__close", + "aa-modal__footer", + "aa-modal__header", + "btn-base", + "btn-ghost", + "btn-primary" + ], + "react": [ + "aa-mask", + "aa-modal", + "aa-modal__body", + "aa-modal__close", + "aa-modal__footer", + "aa-modal__header", + "btn-base", + "btn-ghost", + "btn-primary" + ], + "vue2": [ + "aa-mask", + "aa-modal", + "aa-modal__body", + "aa-modal__close", + "aa-modal__footer", + "aa-modal__header", + "btn-base", + "btn-ghost", + "btn-primary" + ], + "vue3": [ + "aa-mask", + "aa-modal", + "aa-modal__body", + "aa-modal__close", + "aa-modal__footer", + "aa-modal__header", + "btn-base", + "btn-ghost", + "btn-primary" + ] + }, + "css": [ + "aa-mask", + "aa-modal", + "aa-modal--default", + "aa-modal--large", + "aa-modal--small", + "aa-modal__body", + "aa-modal__close", + "aa-modal__footer", + "aa-modal__header", + "btn-base", + "btn-ghost", + "btn-primary", + "css", + "json" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 25 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 9 + }, + "vue2": { + "tags": [ + "button", + "div", + "slot" + ], + "elements": 11 + }, + "vue3": { + "tags": [ + "button", + "div", + "slot" + ], + "elements": 11 + } + }, + "diffs": [], + "cssUnused": [ + "css", + "json", + "aa-modal--small", + "aa-modal--default", + "aa-modal--large" + ], + "severity": "none" + }, + { + "slug": "tag", + "files": { + "h5": "Tag.html", + "react": "Tag.jsx", + "vue2": "Tag.vue2.vue", + "vue3": "Tag.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-tag", + "aa-tag-close", + "aa-tag-custom", + "aa-tag-dot", + "aa-tag-gray", + "aa-tag-green", + "aa-tag-orange", + "aa-tag-red" + ], + "react": [ + "aa-tag", + "aa-tag-close" + ], + "vue2": [ + "aa-tag", + "aa-tag-", + "aa-tag-close", + "aa-tag-custom", + "aa-tag-dot", + "tagClass" + ], + "vue3": [ + "aa-tag", + "aa-tag-", + "aa-tag-close", + "aa-tag-custom", + "aa-tag-dot", + "tagClass" + ] + }, + "css": [ + "aa-dark", + "aa-tag", + "aa-tag-close", + "aa-tag-custom", + "aa-tag-dot", + "aa-tag-gray", + "aa-tag-green", + "aa-tag-orange", + "aa-tag-red" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "i", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 41 + }, + "react": { + "tags": [ + "i", + "span" + ], + "elements": 2 + }, + "vue2": { + "tags": [ + "i", + "slot", + "span" + ], + "elements": 3 + }, + "vue3": { + "tags": [ + "i", + "slot", + "span" + ], + "elements": 3 + } + }, + "diffs": [ + { + "class": "aa-tag-green", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-tag-red", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-tag-orange", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-tag-gray", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-tag-dot", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "aa-tag-custom", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "tagClass", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "aa-tag-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "aa-dark" + ], + "severity": "high" + }, + { + "slug": "tabs", + "files": { + "h5": "tabs.html", + "react": "Tabs.jsx", + "vue2": "Tabs.vue2.vue", + "vue3": "Tabs.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-tabs", + "aa-tabs-add", + "aa-tabs-close", + "aa-tabs-content", + "aa-tabs-nav", + "aa-tabs-tab", + "is-active", + "is-disabled", + "type-card", + "type-line", + "type-pill" + ], + "react": [ + "aa-tabs", + "aa-tabs-add", + "aa-tabs-close", + "aa-tabs-content", + "aa-tabs-nav", + "aa-tabs-tab" + ], + "vue2": [ + "aa-tabs", + "aa-tabs-add", + "aa-tabs-close", + "aa-tabs-content", + "aa-tabs-nav", + "aa-tabs-tab", + "is-active", + "is-disabled", + "tab-remove", + "type-" + ], + "vue3": [ + "aa-tabs", + "aa-tabs-add", + "aa-tabs-close", + "aa-tabs-content", + "aa-tabs-nav", + "aa-tabs-tab", + "is-active", + "is-disabled", + "tab-add", + "tab-remove", + "type-" + ] + }, + "css": [ + "aa-tabs", + "aa-tabs-add", + "aa-tabs-close", + "aa-tabs-content", + "aa-tabs-nav", + "aa-tabs-tab", + "is-active", + "is-disabled", + "txt", + "type-card", + "type-line", + "type-pill" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 50 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div", + "slot", + "span" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "div", + "slot", + "span" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "type-line", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "is-disabled", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "type-card", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "type-pill", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "type-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "tab-remove", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "tab-add", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "steps", + "files": { + "h5": "steps.html", + "react": "Steps.jsx", + "vue2": "Steps.vue2.vue", + "vue3": "Steps.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-step", + "aa-step-body", + "aa-step-desc", + "aa-step-icon", + "aa-step-title", + "aa-steps", + "horizontal", + "vertical" + ], + "react": [ + "aa-step", + "aa-step-body", + "aa-step-desc", + "aa-step-icon", + "aa-step-title", + "aa-steps" + ], + "vue2": [ + "aa-step", + "aa-step-body", + "aa-step-desc", + "aa-step-icon", + "aa-step-title", + "aa-steps", + "is-" + ], + "vue3": [ + "aa-step", + "aa-step-body", + "aa-step-desc", + "aa-step-icon", + "aa-step-title", + "aa-steps", + "is-" + ] + }, + "css": [ + "aa-step", + "aa-step-body", + "aa-step-desc", + "aa-step-icon", + "aa-step-title", + "aa-steps", + "horizontal", + "is-error", + "is-finish", + "is-process", + "is-wait", + "vertical" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "style", + "title" + ], + "elements": 24 + }, + "react": { + "tags": [ + "div" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "horizontal", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "vertical", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "is-finish", + "is-process", + "is-error", + "is-wait" + ], + "severity": "medium" + }, + { + "slug": "breadcrumb", + "files": { + "h5": "Breadcrumb.html", + "react": "Breadcrumb.jsx", + "vue2": "Breadcrumb.vue2.vue", + "vue3": "Breadcrumb.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-current'", + "(cur", + "+", + ":", + "?", + "aa-breadcrumb", + "aa-breadcrumb-item", + "aa-breadcrumb-sep" + ], + "react": [ + "aa-breadcrumb", + "aa-breadcrumb-item", + "aa-breadcrumb-sep" + ], + "vue2": [ + "aa-breadcrumb", + "aa-breadcrumb-item", + "aa-breadcrumb-sep", + "is-current" + ], + "vue3": [ + "aa-breadcrumb", + "aa-breadcrumb-item", + "aa-breadcrumb-sep", + "is-current" + ] + }, + "css": [ + "aa-breadcrumb", + "aa-breadcrumb-item", + "aa-breadcrumb-sep", + "is-current", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 13 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 3 + }, + "vue2": { + "tags": [ + "div", + "span", + "template" + ], + "elements": 4 + }, + "vue3": { + "tags": [ + "div", + "span", + "template" + ], + "elements": 4 + } + }, + "diffs": [ + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(cur", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-current'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-current", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "tree", + "files": { + "h5": "tree.html", + "react": "Tree.jsx", + "vue2": "Tree.vue2.vue", + "vue3": "Tree.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'is-open'", + ":", + "?", + "aa-tree", + "aa-tree-arrow", + "aa-tree-arrow-placeholder", + "aa-tree-check", + "aa-tree-label" + ], + "react": [ + "aa-tree", + "aa-tree-arrow", + "aa-tree-arrow-placeholder", + "aa-tree-check", + "aa-tree-label", + "aa-tree-node" + ], + "vue2": [ + "aa-tree", + "aa-tree-arrow", + "aa-tree-arrow-placeholder", + "aa-tree-check", + "aa-tree-label", + "aa-tree-node", + "is-open", + "is-selected" + ], + "vue3": [ + "aa-tree", + "aa-tree-arrow", + "aa-tree-arrow-placeholder", + "aa-tree-check", + "aa-tree-label", + "aa-tree-node", + "is-open", + "is-selected" + ] + }, + "css": [ + "aa-tree", + "aa-tree-arrow", + "aa-tree-arrow-placeholder", + "aa-tree-check", + "aa-tree-label", + "aa-tree-node", + "is-open", + "is-selected", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "input", + "label", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 20 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-open'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-tree-node", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-selected", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-open", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "dropdown", + "files": { + "h5": "dropdown.html", + "react": "Dropdown.jsx", + "vue2": "Dropdown.vue2.vue", + "vue3": "Dropdown.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-dropdown", + "aa-dropdown-divider", + "aa-dropdown-item", + "aa-dropdown-panel", + "aa-dropdown-trigger", + "is-danger", + "is-disabled" + ], + "react": [ + "aa-dropdown", + "aa-dropdown-divider", + "aa-dropdown-item", + "aa-dropdown-panel", + "aa-dropdown-trigger", + "ico" + ], + "vue2": [ + "aa-dropdown", + "aa-dropdown-divider", + "aa-dropdown-item", + "aa-dropdown-panel", + "aa-dropdown-trigger", + "ico", + "is-danger", + "is-disabled" + ], + "vue3": [ + "aa-dropdown", + "aa-dropdown-divider", + "aa-dropdown-item", + "aa-dropdown-panel", + "aa-dropdown-trigger", + "ico", + "is-danger", + "is-disabled" + ] + }, + "css": [ + "aa-dropdown", + "aa-dropdown-divider", + "aa-dropdown-item", + "aa-dropdown-panel", + "aa-dropdown-trigger", + "is-danger", + "is-disabled", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "style", + "title" + ], + "elements": 20 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div", + "slot", + "span", + "template" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "div", + "slot", + "span", + "template" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "is-disabled", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "is-danger", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "ico", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "popconfirm", + "files": { + "h5": "popconfirm.html", + "react": "Popconfirm.jsx", + "vue2": "Popconfirm.vue2.vue", + "vue3": "Popconfirm.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-btn", + "aa-popconfirm", + "aa-popconfirm-actions", + "aa-popconfirm-btn", + "aa-popconfirm-icon", + "aa-popconfirm-inner", + "aa-popconfirm-pop", + "aa-popconfirm-title", + "danger", + "log", + "placement-bottom", + "placement-top", + "primary" + ], + "react": [ + "aa-popconfirm", + "aa-popconfirm-actions", + "aa-popconfirm-btn", + "aa-popconfirm-icon", + "aa-popconfirm-inner", + "aa-popconfirm-pop", + "aa-popconfirm-title", + "primary" + ], + "vue2": [ + "aa-popconfirm", + "aa-popconfirm-actions", + "aa-popconfirm-btn", + "aa-popconfirm-icon", + "aa-popconfirm-inner", + "aa-popconfirm-pop", + "aa-popconfirm-title", + "placement-", + "primary" + ], + "vue3": [ + "aa-popconfirm", + "aa-popconfirm-actions", + "aa-popconfirm-btn", + "aa-popconfirm-icon", + "aa-popconfirm-inner", + "aa-popconfirm-pop", + "aa-popconfirm-title", + "placement-", + "primary" + ] + }, + "css": [ + "aa-popconfirm", + "aa-popconfirm-actions", + "aa-popconfirm-btn", + "aa-popconfirm-icon", + "aa-popconfirm-inner", + "aa-popconfirm-pop", + "aa-popconfirm-title", + "placement-bottom", + "placement-top", + "primary", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 36 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 10 + }, + "vue2": { + "tags": [ + "button", + "div", + "slot", + "span" + ], + "elements": 10 + }, + "vue3": { + "tags": [ + "button", + "div", + "slot", + "span", + "teleport" + ], + "elements": 11 + } + }, + "diffs": [ + { + "class": "aa-btn", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "danger", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "placement-bottom", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "log", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "placement-top", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "placement-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "segmented", + "files": { + "h5": "segmented.html", + "react": "Segmented.jsx", + "vue2": "Segmented.vue2.vue", + "vue3": "Segmented.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-segmented", + "aa-segmented-item", + "is-active", + "is-disabled" + ], + "react": [ + "aa-segmented", + "aa-segmented-item", + "ico" + ], + "vue2": [ + "aa-segmented", + "aa-segmented-item", + "ico", + "is-active", + "is-disabled" + ], + "vue3": [ + "aa-segmented", + "aa-segmented-item", + "ico", + "is-active", + "is-disabled" + ] + }, + "css": [ + "aa-segmented", + "aa-segmented-item", + "is-active", + "is-disabled", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "style", + "title" + ], + "elements": 17 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 3 + }, + "vue2": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 3 + }, + "vue3": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 3 + } + }, + "diffs": [ + { + "class": "is-active", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "is-disabled", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "ico", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "transfer", + "files": { + "h5": "transfer.html", + "react": "Transfer.jsx", + "vue2": "Transfer.vue2.vue", + "vue3": "Transfer.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'is-checked'", + ":", + "?", + "aa-transfer", + "aa-transfer-body", + "aa-transfer-empty", + "aa-transfer-head", + "aa-transfer-item", + "aa-transfer-ops", + "aa-transfer-panel", + "aa-transfer-search", + "box", + "count" + ], + "react": [ + "aa-transfer", + "aa-transfer-body", + "aa-transfer-empty", + "aa-transfer-head", + "aa-transfer-item", + "aa-transfer-ops", + "aa-transfer-panel", + "aa-transfer-search", + "box", + "count" + ], + "vue2": [ + "aa-transfer", + "aa-transfer-body", + "aa-transfer-empty", + "aa-transfer-head", + "aa-transfer-item", + "aa-transfer-ops", + "aa-transfer-panel", + "aa-transfer-search", + "box", + "count", + "is-checked", + "is-disabled" + ], + "vue3": [ + "aa-transfer", + "aa-transfer-body", + "aa-transfer-empty", + "aa-transfer-head", + "aa-transfer-item", + "aa-transfer-ops", + "aa-transfer-panel", + "aa-transfer-search", + "box", + "count", + "is-checked", + "is-disabled" + ] + }, + "css": [ + "aa-transfer", + "aa-transfer-body", + "aa-transfer-empty", + "aa-transfer-head", + "aa-transfer-item", + "aa-transfer-ops", + "aa-transfer-panel", + "aa-transfer-search", + "box", + "count", + "is-checked", + "is-disabled", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 38 + }, + "react": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 14 + }, + "vue2": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 24 + }, + "vue3": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 24 + } + }, + "diffs": [ + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-checked'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-checked", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-disabled", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "rate", + "files": { + "h5": "rate.html", + "react": "Rate.jsx", + "vue2": "Rate.vue2.vue", + "vue3": "Rate.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-rate", + "aa-rate-fill", + "is-readonly", + "lg", + "sm" + ], + "react": [ + "aa-rate", + "aa-rate-fill", + "aa-rate-star", + "aa-rate-text", + "default" + ], + "vue2": [ + "aa-rate", + "aa-rate-fill", + "aa-rate-star", + "aa-rate-text", + "default", + "is-disabled", + "is-readonly" + ], + "vue3": [ + "aa-rate", + "aa-rate-fill", + "aa-rate-star", + "aa-rate-text", + "default", + "is-disabled", + "is-readonly" + ] + }, + "css": [ + "aa-rate", + "aa-rate-fill", + "aa-rate-star", + "aa-rate-text", + "is-disabled", + "is-readonly", + "lg", + "sm", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 28 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 4 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 4 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 4 + } + }, + "diffs": [ + { + "class": "is-readonly", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "sm", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "lg", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-rate-star", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-rate-text", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "default", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-disabled", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "slider", + "files": { + "h5": "slider.html", + "react": "Slider.jsx", + "vue2": "Slider.vue2.vue", + "vue3": "Slider.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-slider", + "aa-slider-fill", + "aa-slider-handle", + "aa-slider-rail", + "aa-slider-ticks", + "is-disabled", + "lab", + "slider-row" + ], + "react": [ + "aa-slider", + "aa-slider-fill", + "aa-slider-handle", + "aa-slider-rail", + "aa-slider-tick", + "aa-slider-ticks", + "aa-slider-track", + "aa-slider-value" + ], + "vue2": [ + "aa-slider", + "aa-slider-fill", + "aa-slider-handle", + "aa-slider-rail", + "aa-slider-tick", + "aa-slider-ticks", + "aa-slider-track", + "aa-slider-value", + "is-disabled", + "number" + ], + "vue3": [ + "aa-slider", + "aa-slider-fill", + "aa-slider-handle", + "aa-slider-rail", + "aa-slider-tick", + "aa-slider-ticks", + "aa-slider-track", + "aa-slider-value", + "is-disabled", + "number" + ] + }, + "css": [ + "aa-slider", + "aa-slider-fill", + "aa-slider-handle", + "aa-slider-label", + "aa-slider-rail", + "aa-slider-tick", + "aa-slider-ticks", + "aa-slider-track", + "aa-slider-value", + "is-disabled", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 37 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 12 + }, + "vue2": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 13 + }, + "vue3": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 13 + } + }, + "diffs": [ + { + "class": "slider-row", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "lab", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-disabled", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "aa-slider-track", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-slider-tick", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-slider-value", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "number", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt", + "aa-slider-label" + ], + "severity": "high" + }, + { + "slug": "mention", + "files": { + "h5": "Mention.html", + "react": "Mention.jsx", + "vue2": "Mention.vue2.vue", + "vue3": "Mention.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "(i", + "+", + ":", + "===", + "?", + "aa-demo", + "aa-desc", + "aa-h2", + "aa-mention", + "aa-mention-area", + "aa-mention-avatar", + "aa-mention-chip", + "aa-mention-chips", + "aa-mention-dept", + "aa-mention-input", + "aa-mention-item'", + "aa-mention-name", + "aa-mention-panel", + "aa-page", + "active", + "is-active'" + ], + "react": [ + "aa-mention", + "aa-mention-area", + "aa-mention-avatar", + "aa-mention-chip", + "aa-mention-chips", + "aa-mention-dept", + "aa-mention-input", + "aa-mention-item", + "aa-mention-name", + "aa-mention-panel" + ], + "vue2": [ + "aa-mention", + "aa-mention-area", + "aa-mention-avatar", + "aa-mention-chip", + "aa-mention-chips", + "aa-mention-dept", + "aa-mention-input", + "aa-mention-item", + "aa-mention-name", + "aa-mention-panel", + "is-active" + ], + "vue3": [ + "aa-mention", + "aa-mention-area", + "aa-mention-avatar", + "aa-mention-chip", + "aa-mention-chips", + "aa-mention-dept", + "aa-mention-input", + "aa-mention-item", + "aa-mention-name", + "aa-mention-panel", + "is-active" + ] + }, + "css": [ + "aa-mention", + "aa-mention-area", + "aa-mention-avatar", + "aa-mention-chip", + "aa-mention-chips", + "aa-mention-dept", + "aa-mention-input", + "aa-mention-item", + "aa-mention-name", + "aa-mention-panel", + "is-active" + ], + "structure": { + "h5": { + "tags": [ + "b", + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "textarea", + "title" + ], + "elements": 24 + }, + "react": { + "tags": [ + "b", + "div", + "span", + "textarea" + ], + "elements": 11 + }, + "vue2": { + "tags": [ + "b", + "div", + "span", + "textarea" + ], + "elements": 11 + }, + "vue3": { + "tags": [ + "b", + "div", + "span", + "textarea" + ], + "elements": 11 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-mention-item'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(i", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "active", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-mention-item", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "autocomplete", + "files": { + "h5": "AutoComplete.html", + "react": "AutoComplete.jsx", + "vue2": "AutoComplete.vue2.vue", + "vue3": "AutoComplete.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "(i", + "+", + ":", + "===", + "?", + "aa-autocomplete", + "aa-autocomplete-input", + "aa-autocomplete-item'", + "aa-autocomplete-pop", + "aa-code-tip", + "aa-demo", + "aa-desc", + "aa-h2", + "aa-page", + "active", + "is-active'" + ], + "react": [ + "aa-autocomplete", + "aa-autocomplete-empty", + "aa-autocomplete-input", + "aa-autocomplete-item", + "aa-autocomplete-pop" + ], + "vue2": [ + "aa-autocomplete", + "aa-autocomplete-empty", + "aa-autocomplete-input", + "aa-autocomplete-item", + "aa-autocomplete-pop", + "is-active", + "value" + ], + "vue3": [ + "aa-autocomplete", + "aa-autocomplete-empty", + "aa-autocomplete-input", + "aa-autocomplete-item", + "aa-autocomplete-pop", + "is-active", + "modelValue" + ] + }, + "css": [ + "aa-autocomplete", + "aa-autocomplete-empty", + "aa-autocomplete-input", + "aa-autocomplete-item", + "aa-autocomplete-pop", + "is-active" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "input", + "link", + "mark", + "meta", + "p", + "script", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "div", + "input", + "mark" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div", + "input" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div", + "input" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-code-tip", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-autocomplete-item'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(i", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "active", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-autocomplete-empty", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-autocomplete-item", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "value", + "presentIn": [ + "vue2" + ], + "missingIn": [ + "h5", + "react", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "modelValue", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "collapse", + "files": { + "h5": "collapse.html", + "react": "Collapse.jsx", + "vue2": "Collapse.vue2.vue", + "vue3": "Collapse.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-collapse", + "aa-collapse-arrow", + "aa-collapse-content", + "aa-collapse-header", + "aa-collapse-item", + "aa-collapse-title", + "is-disabled", + "is-open" + ], + "react": [ + "aa-collapse", + "aa-collapse-arrow", + "aa-collapse-content", + "aa-collapse-header", + "aa-collapse-item", + "aa-collapse-title" + ], + "vue2": [ + "aa-collapse", + "aa-collapse-arrow", + "aa-collapse-content", + "aa-collapse-header", + "aa-collapse-item", + "aa-collapse-title", + "is-disabled", + "is-open" + ], + "vue3": [ + "aa-collapse", + "aa-collapse-arrow", + "aa-collapse-content", + "aa-collapse-header", + "aa-collapse-item", + "aa-collapse-title", + "is-disabled", + "is-open" + ] + }, + "css": [ + "aa-collapse", + "aa-collapse-arrow", + "aa-collapse-content", + "aa-collapse-header", + "aa-collapse-item", + "aa-collapse-title", + "is-disabled", + "is-open", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 49 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div", + "slot", + "span" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "div", + "slot", + "span" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "is-open", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "is-disabled", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "calendar", + "files": { + "h5": "Calendar.html", + "react": "Calendar.jsx", + "vue2": "Calendar.vue2.vue", + "vue3": "Calendar.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "+", + "aa-calendar", + "aa-calendar-cell", + "aa-calendar-grid", + "aa-calendar-head", + "aa-calendar-nav", + "aa-calendar-title", + "aa-calendar-week", + "aa-calendar-weekday", + "is-out" + ], + "react": [ + "aa-calendar", + "aa-calendar-cell", + "aa-calendar-grid", + "aa-calendar-head", + "aa-calendar-nav", + "aa-calendar-title", + "aa-calendar-week", + "aa-calendar-weekday" + ], + "vue2": [ + "aa-calendar", + "aa-calendar-cell", + "aa-calendar-grid", + "aa-calendar-head", + "aa-calendar-nav", + "aa-calendar-title", + "aa-calendar-week", + "aa-calendar-weekday", + "is-out", + "is-selected", + "is-today" + ], + "vue3": [ + "aa-calendar", + "aa-calendar-cell", + "aa-calendar-grid", + "aa-calendar-head", + "aa-calendar-nav", + "aa-calendar-title", + "aa-calendar-week", + "aa-calendar-weekday", + "is-out", + "is-selected", + "is-today" + ] + }, + "css": [ + "aa-calendar", + "aa-calendar-cell", + "aa-calendar-grid", + "aa-calendar-head", + "aa-calendar-nav", + "aa-calendar-title", + "aa-calendar-week", + "aa-calendar-weekday", + "is-out", + "is-selected", + "is-today" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 21 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 9 + }, + "vue2": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "is-out", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-today", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-selected", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "carousel", + "files": { + "h5": "Carousel.html", + "react": "Carousel.jsx", + "vue2": "Carousel.vue2.vue", + "vue3": "Carousel.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-active'", + "(i", + "+", + ":", + "===", + "?", + "aa-carousel", + "aa-carousel-arrow", + "aa-carousel-dot", + "aa-carousel-dots", + "aa-carousel-slide", + "aa-carousel-track", + "index", + "next", + "prev" + ], + "react": [ + "aa-carousel", + "aa-carousel-arrow", + "aa-carousel-dot", + "aa-carousel-dots", + "aa-carousel-slide", + "aa-carousel-track", + "next", + "prev" + ], + "vue2": [ + "aa-carousel", + "aa-carousel-arrow", + "aa-carousel-dot", + "aa-carousel-dots", + "aa-carousel-slide", + "aa-carousel-track", + "i", + "is-active", + "next", + "prev" + ], + "vue3": [ + "aa-carousel", + "aa-carousel-arrow", + "aa-carousel-dot", + "aa-carousel-dots", + "aa-carousel-slide", + "aa-carousel-track", + "i", + "is-active", + "next", + "prev" + ] + }, + "css": [ + "aa-carousel", + "aa-carousel-arrow", + "aa-carousel-dot", + "aa-carousel-dots", + "aa-carousel-slide", + "aa-carousel-track", + "is-active", + "next", + "prev" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 17 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(i", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "index", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "medium" + }, + { + "slug": "imagepreview", + "files": { + "h5": "ImagePreview.html", + "react": "ImagePreview.jsx", + "vue2": "ImagePreview.vue2.vue", + "vue3": "ImagePreview.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-active'", + "(i", + "+", + ":", + "===", + "?", + "aa-imgprev-arrow", + "aa-imgprev-close", + "aa-imgprev-count", + "aa-imgprev-img", + "aa-imgprev-mask", + "aa-imgprev-thumb", + "aa-imgprev-thumbs", + "aa-thumb", + "cur", + "next", + "prev" + ], + "react": [ + "aa-imgprev-arrow", + "aa-imgprev-close", + "aa-imgprev-count", + "aa-imgprev-img", + "aa-imgprev-mask", + "aa-imgprev-thumb", + "aa-imgprev-thumbs", + "next", + "prev" + ], + "vue2": [ + "aa-imgprev-arrow", + "aa-imgprev-close", + "aa-imgprev-count", + "aa-imgprev-img", + "aa-imgprev-mask", + "aa-imgprev-thumb", + "aa-imgprev-thumbs", + "is-active", + "next", + "prev" + ], + "vue3": [ + "aa-imgprev-arrow", + "aa-imgprev-close", + "aa-imgprev-count", + "aa-imgprev-img", + "aa-imgprev-mask", + "aa-imgprev-thumb", + "aa-imgprev-thumbs", + "is-active", + "next", + "prev" + ] + }, + "css": [ + "aa-imgprev-arrow", + "aa-imgprev-close", + "aa-imgprev-count", + "aa-imgprev-img", + "aa-imgprev-mask", + "aa-imgprev-thumb", + "aa-imgprev-thumbs", + "is-active", + "next", + "prev" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "defs", + "div", + "head", + "html", + "img", + "linearGradient", + "link", + "meta", + "rect", + "script", + "stop", + "style", + "svg", + "text", + "title" + ], + "elements": 27 + }, + "react": { + "tags": [ + "button", + "div", + "img" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "button", + "div", + "img" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "button", + "div", + "img" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "aa-thumb", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(i", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "cur", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "medium" + }, + { + "slug": "qrcode", + "files": { + "h5": "QRCode.html", + "react": "QRCode.jsx", + "vue2": "QRCode.vue2.vue", + "vue3": "QRCode.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-panel", + "aa-qrcode", + "aa-qrcode-text" + ], + "react": [ + "aa-qrcode", + "aa-qrcode-text" + ], + "vue2": [ + "aa-qrcode", + "aa-qrcode-text", + "cell", + "i", + "size" + ], + "vue3": [ + "aa-qrcode", + "aa-qrcode-text", + "cell", + "i", + "size" + ] + }, + "css": [ + "aa-qrcode", + "aa-qrcode-text" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "input", + "link", + "meta", + "rect", + "script", + "style", + "svg", + "title" + ], + "elements": 17 + }, + "react": { + "tags": [ + "div", + "rect", + "svg" + ], + "elements": 4 + }, + "vue2": { + "tags": [ + "div", + "rect", + "svg" + ], + "elements": 4 + }, + "vue3": { + "tags": [ + "div", + "rect", + "svg" + ], + "elements": 4 + } + }, + "diffs": [ + { + "class": "aa-panel", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "size", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "cell", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "medium" + }, + { + "slug": "countdown", + "files": { + "h5": "Countdown.html", + "react": "Countdown.jsx", + "vue2": "Countdown.vue2.vue", + "vue3": "Countdown.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-countdown", + "aa-countdown-done", + "aa-countdown-label", + "aa-countdown-num", + "aa-countdown-seg", + "aa-countdown-sep", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page" + ], + "react": [ + "aa-countdown", + "aa-countdown-label", + "aa-countdown-num", + "aa-countdown-seg", + "aa-countdown-sep" + ], + "vue2": [ + "aa-countdown", + "aa-countdown-label", + "aa-countdown-num", + "aa-countdown-seg", + "aa-countdown-sep" + ], + "vue3": [ + "aa-countdown", + "aa-countdown-label", + "aa-countdown-num", + "aa-countdown-seg", + "aa-countdown-sep" + ] + }, + "css": [ + "aa-countdown", + "aa-countdown-done", + "aa-countdown-label", + "aa-countdown-num", + "aa-countdown-seg", + "aa-countdown-sep" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 21 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 15 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 15 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 15 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-countdown-done", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [], + "severity": "low" + }, + { + "slug": "watermark", + "files": { + "h5": "Watermark.html", + "react": "Watermark.jsx", + "vue2": "Watermark.vue2.vue", + "vue3": "Watermark.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-box", + "aa-watermark" + ], + "react": [ + "aa-watermark" + ], + "vue2": [ + "aa-watermark", + "is-fullscreen", + "sans-serif" + ], + "vue3": [ + "aa-watermark", + "is-fullscreen", + "sans-serif" + ] + }, + "css": [ + "aa-watermark", + "is-fullscreen", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h3", + "head", + "html", + "link", + "meta", + "p", + "script", + "style", + "svg", + "text", + "title" + ], + "elements": 16 + }, + "react": { + "tags": [ + "div", + "svg", + "text" + ], + "elements": 3 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 1 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 1 + } + }, + "diffs": [ + { + "class": "aa-box", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-fullscreen", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "sans-serif", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "cardlist", + "files": { + "h5": "CardList.html", + "react": "CardList.jsx", + "vue2": "CardList.vue2.vue", + "vue3": "CardList.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card-actions", + "aa-card-body", + "aa-card-cover", + "aa-card-desc", + "aa-card-tag", + "aa-card-tags", + "aa-card-title", + "aa-cardlist", + "aa-cardlist-item", + "aa-demo-toolbar" + ], + "react": [ + "aa-card-actions", + "aa-card-body", + "aa-card-cover", + "aa-card-desc", + "aa-card-tag", + "aa-card-tags", + "aa-card-title", + "aa-cardlist", + "aa-cardlist-item" + ], + "vue2": [ + "aa-card-actions", + "aa-card-body", + "aa-card-cover", + "aa-card-desc", + "aa-card-tag", + "aa-card-tags", + "aa-card-title", + "aa-cardlist", + "aa-cardlist-item" + ], + "vue3": [ + "aa-card-actions", + "aa-card-body", + "aa-card-cover", + "aa-card-desc", + "aa-card-tag", + "aa-card-tags", + "aa-card-title", + "aa-cardlist", + "aa-cardlist-item" + ] + }, + "css": [ + "aa-card-actions", + "aa-card-body", + "aa-card-cover", + "aa-card-desc", + "aa-card-tag", + "aa-card-tags", + "aa-card-title", + "aa-cardlist", + "aa-cardlist-item", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "label", + "link", + "meta", + "option", + "script", + "select", + "span", + "style", + "title" + ], + "elements": 26 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 10 + }, + "vue2": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 10 + }, + "vue3": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 10 + } + }, + "diffs": [ + { + "class": "aa-demo-toolbar", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "low" + }, + { + "slug": "shortcutpanel", + "files": { + "h5": "ShortcutPanel.html", + "react": "ShortcutPanel.jsx", + "vue2": "ShortcutPanel.vue2.vue", + "vue3": "ShortcutPanel.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-desc", + "aa-h2", + "aa-page", + "aa-shortcut", + "aa-shortcut-empty", + "aa-shortcut-item", + "aa-shortcut-key", + "aa-shortcut-list", + "aa-shortcut-search" + ], + "react": [ + "aa-shortcut", + "aa-shortcut-empty", + "aa-shortcut-item", + "aa-shortcut-key", + "aa-shortcut-list", + "aa-shortcut-search" + ], + "vue2": [ + "aa-shortcut", + "aa-shortcut-empty", + "aa-shortcut-item", + "aa-shortcut-key", + "aa-shortcut-list", + "aa-shortcut-search" + ], + "vue3": [ + "aa-shortcut", + "aa-shortcut-empty", + "aa-shortcut-item", + "aa-shortcut-key", + "aa-shortcut-list", + "aa-shortcut-search" + ] + }, + "css": [ + "aa-shortcut", + "aa-shortcut-empty", + "aa-shortcut-item", + "aa-shortcut-key", + "aa-shortcut-list", + "aa-shortcut-search" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 20 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [], + "severity": "low" + }, + { + "slug": "bankcardinput", + "files": { + "h5": "BankCardInput.html", + "react": "BankCardInput.jsx", + "vue2": "BankCardInput.vue2.vue", + "vue3": "BankCardInput.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card", + "aa-card-field", + "aa-card-input", + "aa-card-tip", + "aa-card-type", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page", + "unknown" + ], + "react": [ + "aa-card", + "aa-card-field", + "aa-card-input", + "aa-card-type", + "invalid", + "valid" + ], + "vue2": [ + "aa-card", + "aa-card-field", + "aa-card-input", + "aa-card-tip", + "aa-card-type", + "is-focus", + "is-invalid", + "is-valid" + ], + "vue3": [ + "aa-card", + "aa-card-field", + "aa-card-input", + "aa-card-tip", + "aa-card-type", + "is-focus", + "is-invalid", + "is-valid" + ] + }, + "css": [ + "aa-card", + "aa-card-field", + "aa-card-input", + "aa-card-tip", + "aa-card-type", + "invalid", + "is-focus", + "is-invalid", + "is-valid", + "unknown", + "valid" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 5 + }, + "vue2": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 5 + }, + "vue3": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 5 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "unknown", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-card-tip", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "valid", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "invalid", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-focus", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-valid", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-invalid", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "idcardinput", + "files": { + "h5": "IDCardInput.html", + "react": "IDCardInput.jsx", + "vue2": "IDCardInput.vue2.vue", + "vue3": "IDCardInput.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-idcard", + "aa-idcard-field", + "aa-idcard-info", + "aa-idcard-input", + "aa-idcard-tip", + "aa-page" + ], + "react": [ + "aa-idcard", + "aa-idcard-field", + "aa-idcard-info", + "aa-idcard-input", + "invalid", + "valid" + ], + "vue2": [ + "aa-idcard", + "aa-idcard-field", + "aa-idcard-info", + "aa-idcard-input", + "aa-idcard-tip", + "is-focus", + "is-invalid", + "is-valid" + ], + "vue3": [ + "aa-idcard", + "aa-idcard-field", + "aa-idcard-info", + "aa-idcard-input", + "aa-idcard-tip", + "is-focus", + "is-invalid", + "is-valid" + ] + }, + "css": [ + "aa-idcard", + "aa-idcard-field", + "aa-idcard-info", + "aa-idcard-input", + "aa-idcard-tip", + "invalid", + "is-focus", + "is-invalid", + "is-valid", + "valid" + ], + "structure": { + "h5": { + "tags": [ + "b", + "body", + "div", + "h2", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 23 + }, + "react": { + "tags": [ + "b", + "div", + "input", + "span" + ], + "elements": 9 + }, + "vue2": { + "tags": [ + "b", + "div", + "input", + "span" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "b", + "div", + "input", + "span" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-idcard-tip", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "valid", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "invalid", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-focus", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-valid", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-invalid", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "plateinput", + "files": { + "h5": "PlateInput.html", + "react": "PlateInput.jsx", + "vue2": "PlateInput.vue2.vue", + "vue3": "PlateInput.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page", + "aa-plate", + "aa-plate-field", + "aa-plate-input", + "aa-plate-prov", + "aa-plate-tag", + "aa-plate-tip" + ], + "react": [ + "aa-plate", + "aa-plate-field", + "aa-plate-input", + "aa-plate-prov", + "valid" + ], + "vue2": [ + "aa-plate", + "aa-plate-field", + "aa-plate-input", + "aa-plate-prov", + "aa-plate-tag", + "aa-plate-tip", + "is-focus", + "is-invalid", + "is-valid", + "p" + ], + "vue3": [ + "aa-plate", + "aa-plate-field", + "aa-plate-input", + "aa-plate-prov", + "aa-plate-tag", + "aa-plate-tip", + "is-focus", + "is-invalid", + "is-valid", + "p" + ] + }, + "css": [ + "aa-plate", + "aa-plate-field", + "aa-plate-input", + "aa-plate-prov", + "aa-plate-tag", + "aa-plate-tip", + "invalid", + "is-focus", + "is-invalid", + "is-valid", + "valid" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "input", + "link", + "meta", + "option", + "p", + "script", + "select", + "span", + "title" + ], + "elements": 27 + }, + "react": { + "tags": [ + "div", + "input", + "option", + "select", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div", + "input", + "option", + "select" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div", + "input", + "option", + "select" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-plate-tip", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "aa-plate-tag", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "valid", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-focus", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-valid", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-invalid", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "p", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "invalid" + ], + "severity": "high" + }, + { + "slug": "bottomsheet", + "files": { + "h5": "BottomSheet.html", + "react": "BottomSheet.jsx", + "vue2": "BottomSheet.vue2.vue", + "vue3": "BottomSheet.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-sheet", + "aa-sheet-body", + "aa-sheet-btn", + "aa-sheet-footer", + "aa-sheet-handle", + "aa-sheet-header", + "aa-sheet-mask", + "primary" + ], + "react": [ + "aa-sheet", + "aa-sheet-body", + "aa-sheet-footer", + "aa-sheet-handle", + "aa-sheet-header", + "aa-sheet-mask" + ], + "vue2": [ + "aa-sheet", + "aa-sheet-body", + "aa-sheet-footer", + "aa-sheet-handle", + "aa-sheet-header", + "aa-sheet-mask", + "is-open" + ], + "vue3": [ + "aa-sheet", + "aa-sheet-body", + "aa-sheet-footer", + "aa-sheet-handle", + "aa-sheet-header", + "aa-sheet-mask", + "is-open" + ] + }, + "css": [ + "aa-sheet", + "aa-sheet-body", + "aa-sheet-btn", + "aa-sheet-footer", + "aa-sheet-handle", + "aa-sheet-header", + "aa-sheet-mask", + "is-open", + "primary", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "div" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div", + "slot" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "div", + "slot" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "aa-sheet-btn", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "primary", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-open", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "treetable", + "files": { + "h5": "treetable.html", + "react": "TreeTable.jsx", + "vue2": "TreeTable.vue2.vue", + "vue3": "TreeTable.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'is-open'", + ":", + "?", + "aa-tt", + "align-right", + "tree-cell", + "tt-arrow", + "tt-arrow-placeholder", + "tt-check", + "tt-summary" + ], + "react": [ + "aa-tt", + "align-right", + "col-selection", + "is-selected", + "right", + "tree-cell", + "tt-arrow", + "tt-arrow-placeholder", + "tt-check", + "tt-summary" + ], + "vue2": [ + "aa-tt", + "align-right", + "col-selection", + "is-open", + "is-selected", + "right", + "row-click", + "tree-cell", + "tt-arrow", + "tt-arrow-placeholder", + "tt-check", + "tt-summary" + ], + "vue3": [ + "aa-tt", + "align-right", + "allSelected", + "col-selection", + "is-open", + "is-selected", + "right", + "row-click", + "tree-cell", + "tt-arrow", + "tt-arrow-placeholder", + "tt-check", + "tt-summary" + ] + }, + "css": [ + "aa-tt", + "align-right", + "col-selection", + "is-open", + "is-selected", + "tree-cell", + "tt-arrow", + "tt-arrow-placeholder", + "tt-check", + "tt-summary", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "style", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "title", + "tr" + ], + "elements": 39 + }, + "react": { + "tags": [ + "div", + "input", + "span", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "tr" + ], + "elements": 22 + }, + "vue2": { + "tags": [ + "div", + "input", + "span", + "table", + "tbody", + "td", + "template", + "tfoot", + "th", + "thead", + "tr" + ], + "elements": 23 + }, + "vue3": { + "tags": [ + "div", + "input", + "span", + "table", + "tbody", + "td", + "template", + "tfoot", + "th", + "thead", + "tr" + ], + "elements": 23 + } + }, + "diffs": [ + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-open'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "col-selection", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "right", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-selected", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-open", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "row-click", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "allSelected", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "expandabletable", + "files": { + "h5": "ExpandableTable.html", + "react": "ExpandableTable.jsx", + "vue2": "ExpandableTable.vue2.vue", + "vue3": "ExpandableTable.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "(open", + "+", + ":", + "?", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-exp-panel", + "aa-exp-row", + "aa-exp-sub", + "aa-exp-toggle'", + "aa-exptable", + "aa-h2", + "aa-page", + "aa-row", + "is-open'" + ], + "react": [ + "aa-exp-panel", + "aa-exp-row", + "aa-exp-sub", + "aa-exp-toggle", + "aa-exptable", + "aa-row" + ], + "vue2": [ + "aa-exp-panel", + "aa-exp-row", + "aa-exp-sub", + "aa-exp-toggle", + "aa-exptable", + "aa-row", + "is-open" + ], + "vue3": [ + "aa-exp-panel", + "aa-exp-row", + "aa-exp-sub", + "aa-exp-toggle", + "aa-exptable", + "aa-row", + "is-open" + ] + }, + "css": [ + "aa-exp-panel", + "aa-exp-sub", + "aa-exp-toggle", + "aa-exptable", + "aa-row", + "is-muted", + "is-open" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "table", + "tbody", + "td", + "th", + "thead", + "title", + "tr" + ], + "elements": 37 + }, + "react": { + "tags": [ + "button", + "div", + "table", + "tbody", + "td", + "th", + "thead", + "tr" + ], + "elements": 17 + }, + "vue2": { + "tags": [ + "button", + "div", + "table", + "tbody", + "td", + "template", + "th", + "thead", + "tr" + ], + "elements": 18 + }, + "vue3": { + "tags": [ + "button", + "div", + "table", + "tbody", + "td", + "template", + "th", + "thead", + "tr" + ], + "elements": 18 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-exp-toggle'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(open", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-open'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-exp-toggle", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-open", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "is-muted" + ], + "severity": "high" + }, + { + "slug": "mergedcelltable", + "files": { + "h5": "MergedCellTable.html", + "react": "MergedCellTable.jsx", + "vue2": "MergedCellTable.vue2.vue", + "vue3": "MergedCellTable.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-merged", + "aa-mergetable", + "aa-page" + ], + "react": [ + "aa-merged", + "aa-mergetable" + ], + "vue2": [ + "aa-merged", + "aa-mergetable" + ], + "vue3": [ + "aa-merged", + "aa-mergetable" + ] + }, + "css": [ + "aa-merged", + "aa-mergetable", + "is-muted" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "table", + "tbody", + "td", + "th", + "thead", + "title", + "tr" + ], + "elements": 27 + }, + "react": { + "tags": [ + "table", + "tbody", + "td", + "th", + "thead", + "tr" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "table", + "tbody", + "td", + "th", + "thead", + "tr" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "table", + "tbody", + "td", + "template", + "th", + "thead", + "tr" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "is-muted" + ], + "severity": "low" + }, + { + "slug": "summaryrowtable", + "files": { + "h5": "SummaryRowTable.html", + "react": "SummaryRowTable.jsx", + "vue2": "SummaryRowTable.vue2.vue", + "vue3": "SummaryRowTable.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-pos'", + "(d.amount", + "+", + "1200", + ":", + ">=", + "?", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page", + "aa-sum-label", + "aa-sumrow", + "aa-sumtable" + ], + "react": [ + "aa-sum-label", + "aa-sumrow", + "aa-sumtable", + "is-pos" + ], + "vue2": [ + "aa-sum-label", + "aa-sumrow", + "aa-sumtable", + "is-pos" + ], + "vue3": [ + "aa-sum-label", + "aa-sumrow", + "aa-sumtable", + "is-pos" + ] + }, + "css": [ + "aa-sum-label", + "aa-sumrow", + "aa-sumtable", + "is-muted", + "is-neg", + "is-pos" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "title", + "tr" + ], + "elements": 32 + }, + "react": { + "tags": [ + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "tr" + ], + "elements": 10 + }, + "vue2": { + "tags": [ + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "tr" + ], + "elements": 10 + }, + "vue3": { + "tags": [ + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "tr" + ], + "elements": 10 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(d.amount", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ">=", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "1200", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-pos'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-pos", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "is-muted", + "is-neg" + ], + "severity": "high" + }, + { + "slug": "fixedcolumntable", + "files": { + "h5": "FixedColumnTable.html", + "react": "FixedColumnTable.jsx", + "vue2": "FixedColumnTable.vue2.vue", + "vue3": "FixedColumnTable.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "!==", + "&&", + "'", + "'')", + "'status'", + "'在职'", + "(c.key", + "+", + ":", + "===", + "?", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-fixtable", + "aa-fixtable-wrap", + "aa-h2", + "aa-hint", + "aa-page", + "d.status", + "is-muted'" + ], + "react": [ + "aa-fixtable", + "aa-fixtable-wrap" + ], + "vue2": [ + "aa-fixtable", + "aa-fixtable-wrap" + ], + "vue3": [ + "aa-fixtable", + "aa-fixtable-wrap" + ] + }, + "css": [ + "aa-fixed", + "aa-fixed-left", + "aa-fixed-right", + "aa-fixtable", + "aa-fixtable-wrap", + "aa-hint", + "is-muted" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "table", + "tbody", + "td", + "th", + "thead", + "title", + "tr" + ], + "elements": 23 + }, + "react": { + "tags": [ + "div", + "table", + "tbody", + "td", + "th", + "thead", + "tr" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "div", + "table", + "tbody", + "td", + "th", + "thead", + "tr" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "div", + "table", + "tbody", + "td", + "th", + "thead", + "tr" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-hint", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(c.key", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'status'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "&&", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "d.status", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "!==", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'在职'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-muted'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "aa-fixed", + "aa-fixed-left", + "aa-fixed-right", + "is-muted" + ], + "severity": "low" + }, + { + "slug": "timelinelist", + "files": { + "h5": "TimelineList.html", + "react": "TimelineList.jsx", + "vue2": "TimelineList.vue2.vue", + "vue3": "TimelineList.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "+", + "aa-demo-panel", + "aa-demo-toolbar", + "aa-timeline", + "aa-timeline-content", + "aa-timeline-desc", + "aa-timeline-item", + "aa-timeline-line", + "aa-timeline-node", + "aa-timeline-time", + "aa-timeline-title", + "is-'", + "it.status" + ], + "react": [ + "aa-timeline", + "aa-timeline-content", + "aa-timeline-desc", + "aa-timeline-item", + "aa-timeline-line", + "aa-timeline-node", + "aa-timeline-time", + "aa-timeline-title", + "horizontal" + ], + "vue2": [ + "aa-timeline", + "aa-timeline-content", + "aa-timeline-desc", + "aa-timeline-item", + "aa-timeline-line", + "aa-timeline-node", + "aa-timeline-time", + "aa-timeline-title", + "horizontal", + "i", + "is-", + "is-horizontal" + ], + "vue3": [ + "aa-timeline", + "aa-timeline-content", + "aa-timeline-desc", + "aa-timeline-item", + "aa-timeline-line", + "aa-timeline-node", + "aa-timeline-time", + "aa-timeline-title", + "horizontal", + "i", + "is-", + "is-horizontal" + ] + }, + "css": [ + "aa-timeline", + "aa-timeline-content", + "aa-timeline-desc", + "aa-timeline-item", + "aa-timeline-line", + "aa-timeline-node", + "aa-timeline-time", + "aa-timeline-title", + "is-active", + "is-done", + "is-error", + "is-horizontal", + "is-pending", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "label", + "link", + "meta", + "option", + "script", + "select", + "span", + "style", + "title" + ], + "elements": 24 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "aa-demo-toolbar", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo-panel", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "it.status", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "horizontal", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-horizontal", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt", + "is-done", + "is-active", + "is-error", + "is-pending" + ], + "severity": "high" + }, + { + "slug": "steplist", + "files": { + "h5": "StepList.html", + "react": "StepList.jsx", + "vue2": "StepList.vue2.vue", + "vue3": "StepList.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "+", + "aa-demo-panel", + "aa-demo-toolbar", + "aa-steplist", + "aa-steplist-body", + "aa-steplist-desc", + "aa-steplist-item", + "aa-steplist-line", + "aa-steplist-node", + "aa-steplist-title", + "is-'", + "is-clickable", + "it.status" + ], + "react": [ + "aa-steplist", + "aa-steplist-body", + "aa-steplist-desc", + "aa-steplist-item", + "aa-steplist-line", + "aa-steplist-node", + "aa-steplist-title", + "horizontal" + ], + "vue2": [ + "aa-steplist", + "aa-steplist-body", + "aa-steplist-desc", + "aa-steplist-item", + "aa-steplist-line", + "aa-steplist-node", + "aa-steplist-title", + "horizontal", + "i", + "is-", + "is-clickable", + "is-horizontal" + ], + "vue3": [ + "aa-steplist", + "aa-steplist-body", + "aa-steplist-desc", + "aa-steplist-item", + "aa-steplist-line", + "aa-steplist-node", + "aa-steplist-title", + "horizontal", + "i", + "is-", + "is-clickable", + "is-horizontal", + "step-click" + ] + }, + "css": [ + "aa-steplist", + "aa-steplist-body", + "aa-steplist-desc", + "aa-steplist-item", + "aa-steplist-line", + "aa-steplist-node", + "aa-steplist-title", + "is-active", + "is-clickable", + "is-done", + "is-error", + "is-horizontal", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "label", + "link", + "meta", + "option", + "script", + "select", + "span", + "style", + "title" + ], + "elements": 23 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "aa-demo-toolbar", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo-panel", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "it.status", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-clickable", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "horizontal", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-horizontal", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "step-click", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt", + "is-done", + "is-active", + "is-error" + ], + "severity": "high" + }, + { + "slug": "chartpanel", + "files": { + "h5": "ChartPanel.html", + "react": "ChartPanel.jsx", + "vue2": "ChartPanel.vue2.vue", + "vue3": "ChartPanel.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-chartpanel", + "aa-chartpanel-body", + "aa-chartpanel-caret", + "aa-chartpanel-head", + "aa-chartpanel-title", + "aa-chartpanel-tool", + "aa-chartpanel-tools" + ], + "react": [ + "aa-chartpanel", + "aa-chartpanel-body", + "aa-chartpanel-caret", + "aa-chartpanel-head", + "aa-chartpanel-title", + "aa-chartpanel-tool", + "aa-chartpanel-tools" + ], + "vue2": [ + "aa-chartpanel", + "aa-chartpanel-body", + "aa-chartpanel-caret", + "aa-chartpanel-head", + "aa-chartpanel-title", + "aa-chartpanel-tool", + "aa-chartpanel-tools", + "is-collapsed" + ], + "vue3": [ + "aa-chartpanel", + "aa-chartpanel-body", + "aa-chartpanel-caret", + "aa-chartpanel-head", + "aa-chartpanel-title", + "aa-chartpanel-tool", + "aa-chartpanel-tools", + "is-collapsed" + ] + }, + "css": [ + "aa-chartpanel", + "aa-chartpanel-body", + "aa-chartpanel-caret", + "aa-chartpanel-head", + "aa-chartpanel-title", + "aa-chartpanel-tool", + "aa-chartpanel-tools", + "is-collapsed", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "button", + "div", + "slot", + "span" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "button", + "div", + "slot", + "span" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "is-collapsed", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "dashboardcard", + "files": { + "h5": "DashboardCard.html", + "react": "DashboardCard.jsx", + "vue2": "DashboardCard.vue2.vue", + "vue3": "DashboardCard.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-dashcard", + "aa-dashcard-head", + "aa-dashcard-icon", + "aa-dashcard-title", + "aa-dashcard-trend", + "aa-dashcard-value", + "down", + "up" + ], + "react": [ + "aa-dashcard", + "aa-dashcard-head", + "aa-dashcard-icon", + "aa-dashcard-title", + "aa-dashcard-trend", + "aa-dashcard-value" + ], + "vue2": [ + "aa-dashcard", + "aa-dashcard-head", + "aa-dashcard-icon", + "aa-dashcard-title", + "aa-dashcard-trend", + "aa-dashcard-value" + ], + "vue3": [ + "aa-dashcard", + "aa-dashcard-head", + "aa-dashcard-icon", + "aa-dashcard-title", + "aa-dashcard-trend", + "aa-dashcard-value" + ] + }, + "css": [ + "aa-dashcard", + "aa-dashcard-head", + "aa-dashcard-icon", + "aa-dashcard-title", + "aa-dashcard-trend", + "aa-dashcard-value", + "down", + "txt", + "up" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "link", + "meta", + "span", + "style", + "title" + ], + "elements": 21 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "up", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "down", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "low" + }, + { + "slug": "enhancedtabnav", + "files": { + "h5": "EnhancedTabNav.html", + "react": "EnhancedTabNav.jsx", + "vue2": "EnhancedTabNav.vue2.vue", + "vue3": "EnhancedTabNav.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "(t.id", + "+", + ":", + "===", + "?", + "aa-demo", + "aa-desc", + "aa-dot", + "aa-h2", + "aa-page", + "aa-tabs-enh", + "aa-tabs-enh-bar", + "aa-tabs-enh-close", + "aa-tabs-enh-hint", + "aa-tabs-enh-panel", + "aa-tabs-enh-tab'", + "aa-tabs-enh-text", + "activeId", + "is-active'" + ], + "react": [ + "aa-dot", + "aa-tabs-enh", + "aa-tabs-enh-bar", + "aa-tabs-enh-close", + "aa-tabs-enh-hint", + "aa-tabs-enh-menu", + "aa-tabs-enh-panel", + "aa-tabs-enh-tab", + "aa-tabs-enh-text" + ], + "vue2": [ + "aa-dot", + "aa-tabs-enh", + "aa-tabs-enh-bar", + "aa-tabs-enh-close", + "aa-tabs-enh-hint", + "aa-tabs-enh-menu", + "aa-tabs-enh-panel", + "aa-tabs-enh-tab", + "aa-tabs-enh-text", + "is-active", + "true" + ], + "vue3": [ + "aa-dot", + "aa-tabs-enh", + "aa-tabs-enh-bar", + "aa-tabs-enh-close", + "aa-tabs-enh-hint", + "aa-tabs-enh-menu", + "aa-tabs-enh-panel", + "aa-tabs-enh-tab", + "aa-tabs-enh-text", + "is-active", + "true" + ] + }, + "css": [ + "aa-dot", + "aa-tabs-enh", + "aa-tabs-enh-bar", + "aa-tabs-enh-close", + "aa-tabs-enh-hint", + "aa-tabs-enh-menu", + "aa-tabs-enh-panel", + "aa-tabs-enh-tab", + "is-active" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 24 + }, + "react": { + "tags": [ + "div", + "p", + "span" + ], + "elements": 12 + }, + "vue2": { + "tags": [ + "div", + "p", + "span" + ], + "elements": 12 + }, + "vue3": { + "tags": [ + "div", + "p", + "span" + ], + "elements": 12 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-tabs-enh-tab'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(t.id", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "activeId", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-tabs-enh-menu", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-tabs-enh-tab", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "true", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "sidemenu", + "files": { + "h5": "sidemenu.html", + "react": "SideMenu.jsx", + "vue2": "SideMenu.vue2.vue", + "vue3": "SideMenu.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'is-active'", + ":", + "===", + "?", + "aa-menu-arrow", + "aa-menu-badge", + "aa-menu-icon", + "aa-menu-item", + "aa-menu-label", + "aa-menu-pop-title", + "aa-sidemenu", + "c.key", + "col", + "is-active", + "toggle" + ], + "react": [ + "aa-menu-arrow", + "aa-menu-badge", + "aa-menu-children", + "aa-menu-icon", + "aa-menu-item", + "aa-menu-label", + "aa-menu-pop", + "aa-menu-pop-title", + "aa-sidemenu", + "is-active" + ], + "vue2": [ + "aa-menu-arrow", + "aa-menu-badge", + "aa-menu-children", + "aa-menu-icon", + "aa-menu-item", + "aa-menu-label", + "aa-menu-pop", + "aa-menu-pop-title", + "aa-sidemenu", + "is-active", + "is-disabled", + "is-open" + ], + "vue3": [ + "aa-menu-arrow", + "aa-menu-badge", + "aa-menu-children", + "aa-menu-icon", + "aa-menu-item", + "aa-menu-label", + "aa-menu-pop", + "aa-menu-pop-title", + "aa-sidemenu", + "is-active", + "is-disabled", + "is-open" + ] + }, + "css": [ + "aa-menu-arrow", + "aa-menu-badge", + "aa-menu-children", + "aa-menu-icon", + "aa-menu-item", + "aa-menu-label", + "aa-menu-pop", + "aa-menu-pop-title", + "aa-sidemenu", + "collapsed", + "is-active", + "is-disabled", + "is-open", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 26 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 16 + }, + "vue2": { + "tags": [ + "div", + "span", + "template" + ], + "elements": 17 + }, + "vue3": { + "tags": [ + "div", + "span", + "template" + ], + "elements": 17 + } + }, + "diffs": [ + { + "class": "col", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "toggle", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "c.key", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-menu-children", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-menu-pop", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-open", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-disabled", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt", + "collapsed" + ], + "severity": "high" + }, + { + "slug": "topmenu", + "files": { + "h5": "TopMenu.html", + "react": "TopMenu.jsx", + "vue2": "TopMenu.vue2.vue", + "vue3": "TopMenu.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-active'", + "(s.key", + "(topActive", + "+", + ":", + "===", + "?", + "aa-topmenu", + "aa-topmenu-badge", + "aa-topmenu-caret", + "aa-topmenu-dropdown", + "aa-topmenu-item", + "aa-topmenu-sub", + "active" + ], + "react": [ + "aa-topmenu", + "aa-topmenu-badge", + "aa-topmenu-caret", + "aa-topmenu-dropdown", + "aa-topmenu-item", + "aa-topmenu-sub" + ], + "vue2": [ + "aa-topmenu", + "aa-topmenu-badge", + "aa-topmenu-caret", + "aa-topmenu-dropdown", + "aa-topmenu-item", + "aa-topmenu-sub", + "i", + "is-active" + ], + "vue3": [ + "aa-topmenu", + "aa-topmenu-badge", + "aa-topmenu-caret", + "aa-topmenu-dropdown", + "aa-topmenu-item", + "aa-topmenu-sub", + "i", + "is-active" + ] + }, + "css": [ + "aa-topmenu", + "aa-topmenu-badge", + "aa-topmenu-caret", + "aa-topmenu-dropdown", + "aa-topmenu-item", + "aa-topmenu-sub", + "is-active", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "a", + "body", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "title" + ], + "elements": 16 + }, + "react": { + "tags": [ + "a", + "div", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "a", + "div", + "span" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "a", + "div", + "span" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(s.key", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "active", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(topActive", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "mixednavigation", + "files": { + "h5": "MixedNavigation.html", + "react": "MixedNavigation.jsx", + "vue2": "MixedNavigation.vue2.vue", + "vue3": "MixedNavigation.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "(i", + "+", + ":", + "===", + "?", + "aa-demo", + "aa-desc", + "aa-h2", + "aa-mixed", + "aa-mixed-body", + "aa-mixed-content", + "aa-mixed-side", + "aa-mixed-sideitem'", + "aa-mixed-top", + "aa-page", + "is-active'", + "sideIdx" + ], + "react": [ + "aa-mixed", + "aa-mixed-body", + "aa-mixed-content", + "aa-mixed-side", + "aa-mixed-sideitem", + "aa-mixed-top", + "aa-mixed-topitem" + ], + "vue2": [ + "aa-mixed", + "aa-mixed-body", + "aa-mixed-content", + "aa-mixed-side", + "aa-mixed-sideitem", + "aa-mixed-top", + "aa-mixed-topitem", + "is-active" + ], + "vue3": [ + "aa-mixed", + "aa-mixed-body", + "aa-mixed-content", + "aa-mixed-side", + "aa-mixed-sideitem", + "aa-mixed-top", + "aa-mixed-topitem", + "is-active" + ] + }, + "css": [ + "aa-mixed", + "aa-mixed-body", + "aa-mixed-content", + "aa-mixed-side", + "aa-mixed-sideitem", + "aa-mixed-top", + "aa-mixed-topitem", + "is-active" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "h4", + "head", + "html", + "link", + "meta", + "p", + "script", + "title" + ], + "elements": 21 + }, + "react": { + "tags": [ + "div", + "h4" + ], + "elements": 9 + }, + "vue2": { + "tags": [ + "div", + "h4" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "div", + "h4" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-mixed-sideitem'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(i", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "sideIdx", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-mixed-topitem", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-mixed-sideitem", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "quicknav", + "files": { + "h5": "QuickNav.html", + "react": "QuickNav.jsx", + "vue2": "QuickNav.vue2.vue", + "vue3": "QuickNav.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-code-tip", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page", + "aa-quicknav", + "aa-quicknav-icon", + "aa-quicknav-label" + ], + "react": [ + "aa-quicknav", + "aa-quicknav-icon", + "aa-quicknav-item", + "aa-quicknav-label" + ], + "vue2": [ + "aa-quicknav", + "aa-quicknav-icon", + "aa-quicknav-item", + "aa-quicknav-label" + ], + "vue3": [ + "aa-quicknav", + "aa-quicknav-icon", + "aa-quicknav-item", + "aa-quicknav-label" + ] + }, + "css": [ + "aa-quicknav", + "aa-quicknav-empty", + "aa-quicknav-icon", + "aa-quicknav-item", + "aa-quicknav-label" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "title" + ], + "elements": 18 + }, + "react": { + "tags": [ + "div" + ], + "elements": 4 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 4 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 4 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-code-tip", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-quicknav-item", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "aa-quicknav-empty" + ], + "severity": "high" + }, + { + "slug": "anchornav", + "files": { + "h5": "anchornav.html", + "react": "AnchorNav.jsx", + "vue2": "AnchorNav.vue2.vue", + "vue3": "AnchorNav.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-anchor", + "aa-anchor-item", + "aa-anchor-sub", + "fixed" + ], + "react": [ + "aa-anchor", + "aa-anchor-item", + "aa-anchor-sub" + ], + "vue2": [ + "aa-anchor", + "aa-anchor-item", + "aa-anchor-sub", + "is-active" + ], + "vue3": [ + "aa-anchor", + "aa-anchor-item", + "aa-anchor-sub", + "is-active" + ] + }, + "css": [ + "aa-anchor", + "aa-anchor-item", + "aa-anchor-sub", + "fixed", + "is-active", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h1", + "h2", + "h3", + "head", + "html", + "link", + "meta", + "nav", + "p", + "script", + "section", + "style", + "title" + ], + "elements": 38 + }, + "react": { + "tags": [ + "button", + "div", + "nav" + ], + "elements": 5 + }, + "vue2": { + "tags": [ + "button", + "div", + "nav", + "template" + ], + "elements": 5 + }, + "vue3": { + "tags": [ + "button", + "div", + "nav", + "template" + ], + "elements": 5 + } + }, + "diffs": [ + { + "class": "fixed", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "backtotop", + "files": { + "h5": "BackToTop.html", + "react": "BackToTop.jsx", + "vue2": "BackToTop.vue2.vue", + "vue3": "BackToTop.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-backtop", + "aa-backtop-arrow", + "aa-backtop-ring-bg", + "aa-backtop-ring-fg", + "aa-demo-banner", + "aa-demo-spacer" + ], + "react": [ + "aa-backtop", + "aa-backtop-arrow", + "aa-backtop-ring-bg", + "aa-backtop-ring-fg" + ], + "vue2": [ + "aa-backtop", + "aa-backtop-arrow", + "aa-backtop-ring-bg", + "aa-backtop-ring-fg", + "aa-no-ring", + "is-visible" + ], + "vue3": [ + "aa-backtop", + "aa-backtop-arrow", + "aa-backtop-ring-bg", + "aa-backtop-ring-fg", + "aa-no-ring", + "is-visible" + ] + }, + "css": [ + "aa-backtop", + "aa-backtop-arrow", + "aa-backtop-ring-bg", + "aa-backtop-ring-fg", + "aa-no-ring", + "is-visible", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "circle", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "style", + "svg", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "circle", + "div", + "span", + "svg" + ], + "elements": 5 + }, + "vue2": { + "tags": [ + "circle", + "div", + "span", + "svg" + ], + "elements": 5 + }, + "vue3": { + "tags": [ + "circle", + "div", + "span", + "svg" + ], + "elements": 5 + } + }, + "diffs": [ + { + "class": "aa-demo-banner", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo-spacer", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-visible", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "aa-no-ring", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "pagetransition", + "files": { + "h5": "PageTransition.html", + "react": "PageTransition.jsx", + "vue2": "PageTransition.vue2.vue", + "vue3": "PageTransition.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-btn", + "aa-demo", + "aa-desc", + "aa-h2", + "aa-page", + "aa-pt-bar", + "aa-pt-stage" + ], + "react": [ + "aa-btn", + "aa-pt", + "aa-pt-bar" + ], + "vue2": [ + "aa-btn", + "aa-pt", + "aa-pt-", + "aa-pt-bar", + "aa-pt-fade", + "aa-pt-stage", + "animClass" + ], + "vue3": [ + "aa-btn", + "aa-pt", + "aa-pt-", + "aa-pt-bar", + "aa-pt-fade", + "aa-pt-stage", + "animClass" + ] + }, + "css": [ + "aa-btn", + "aa-pt", + "aa-pt-bar", + "aa-pt-fade", + "aa-pt-slide", + "aa-pt-stage", + "aa-pt-zoom" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "title" + ], + "elements": 18 + }, + "react": { + "tags": [ + "button", + "div" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "button", + "div" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "button", + "div" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-pt-stage", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "aa-pt", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "animClass", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "aa-pt-fade", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "aa-pt-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "aa-pt-slide", + "aa-pt-zoom" + ], + "severity": "high" + }, + { + "slug": "buttongroup", + "files": { + "h5": "ButtonGroup.html", + "react": "ButtonGroup.jsx", + "vue2": "ButtonGroup.vue2.vue", + "vue3": "ButtonGroup.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "+", + "aa-btngroup" + ], + "react": [ + "aa-btngroup", + "aa-btngroup-btn" + ], + "vue2": [ + "aa-btngroup", + "aa-btngroup-btn", + "is-disabled", + "is-lg", + "is-selected", + "is-sm", + "large", + "small" + ], + "vue3": [ + "aa-btngroup", + "aa-btngroup-btn", + "is-disabled", + "is-lg", + "is-selected", + "is-sm", + "large", + "small" + ] + }, + "css": [ + "aa-btngroup", + "aa-btngroup-btn", + "is-disabled", + "is-lg", + "is-selected", + "is-sm", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 13 + }, + "react": { + "tags": [ + "button", + "div" + ], + "elements": 2 + }, + "vue2": { + "tags": [ + "button", + "div" + ], + "elements": 2 + }, + "vue3": { + "tags": [ + "button", + "div" + ], + "elements": 2 + } + }, + "diffs": [ + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-btngroup-btn", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-sm", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "small", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-lg", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "large", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-selected", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-disabled", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "radiocard", + "files": { + "h5": "RadioCard.html", + "react": "RadioCard.jsx", + "vue2": "RadioCard.vue2.vue", + "vue3": "RadioCard.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-selected'", + "(o.value", + "+", + ":", + "===", + "?", + "aa-radiocard", + "aa-radiocard-body", + "aa-radiocard-desc", + "aa-radiocard-grid", + "aa-radiocard-icon", + "aa-radiocard-mark", + "aa-radiocard-title", + "selected" + ], + "react": [ + "aa-radiocard", + "aa-radiocard-body", + "aa-radiocard-desc", + "aa-radiocard-grid", + "aa-radiocard-icon", + "aa-radiocard-mark", + "aa-radiocard-title" + ], + "vue2": [ + "aa-radiocard", + "aa-radiocard-body", + "aa-radiocard-desc", + "aa-radiocard-grid", + "aa-radiocard-icon", + "aa-radiocard-mark", + "aa-radiocard-title", + "i", + "is-selected" + ], + "vue3": [ + "aa-radiocard", + "aa-radiocard-body", + "aa-radiocard-desc", + "aa-radiocard-grid", + "aa-radiocard-icon", + "aa-radiocard-mark", + "aa-radiocard-title", + "i", + "is-selected" + ] + }, + "css": [ + "aa-radiocard", + "aa-radiocard-body", + "aa-radiocard-desc", + "aa-radiocard-grid", + "aa-radiocard-icon", + "aa-radiocard-mark", + "aa-radiocard-title", + "is-selected", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 17 + }, + "react": { + "tags": [ + "div" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(o.value", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "selected", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-selected'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-selected", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "checkboxcard", + "files": { + "h5": "CheckboxCard.html", + "react": "CheckboxCard.jsx", + "vue2": "CheckboxCard.vue2.vue", + "vue3": "CheckboxCard.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-selected'", + "(on", + "+", + ":", + "?", + "aa-checkcard", + "aa-checkcard-body", + "aa-checkcard-desc", + "aa-checkcard-grid", + "aa-checkcard-icon", + "aa-checkcard-mark", + "aa-checkcard-title" + ], + "react": [ + "aa-checkcard", + "aa-checkcard-body", + "aa-checkcard-desc", + "aa-checkcard-grid", + "aa-checkcard-icon", + "aa-checkcard-mark", + "aa-checkcard-title" + ], + "vue2": [ + "aa-checkcard", + "aa-checkcard-body", + "aa-checkcard-desc", + "aa-checkcard-grid", + "aa-checkcard-icon", + "aa-checkcard-mark", + "aa-checkcard-title", + "i", + "is-selected" + ], + "vue3": [ + "aa-checkcard", + "aa-checkcard-body", + "aa-checkcard-desc", + "aa-checkcard-grid", + "aa-checkcard-icon", + "aa-checkcard-mark", + "aa-checkcard-title", + "i", + "is-selected" + ] + }, + "css": [ + "aa-checkcard", + "aa-checkcard-body", + "aa-checkcard-desc", + "aa-checkcard-grid", + "aa-checkcard-icon", + "aa-checkcard-mark", + "aa-checkcard-title", + "is-selected", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 17 + }, + "react": { + "tags": [ + "div" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(on", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-selected'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-selected", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "listpicker", + "files": { + "h5": "listpicker.html", + "react": "ListPicker.jsx", + "vue2": "ListPicker.vue2.vue", + "vue3": "ListPicker.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'is-checked'", + ":", + "?", + "aa-listpicker", + "aa-listpicker-caret", + "aa-listpicker-empty", + "aa-listpicker-group-label", + "aa-listpicker-option", + "aa-listpicker-placeholder", + "aa-listpicker-search", + "aa-listpicker-selectall", + "aa-listpicker-tag", + "box", + "x" + ], + "react": [ + "aa-listpicker", + "aa-listpicker-caret", + "aa-listpicker-empty", + "aa-listpicker-group-label", + "aa-listpicker-option", + "aa-listpicker-panel", + "aa-listpicker-placeholder", + "aa-listpicker-search", + "aa-listpicker-selectall", + "aa-listpicker-tag", + "aa-listpicker-trigger", + "box", + "x" + ], + "vue2": [ + "aa-listpicker", + "aa-listpicker-caret", + "aa-listpicker-empty", + "aa-listpicker-group-label", + "aa-listpicker-option", + "aa-listpicker-panel", + "aa-listpicker-placeholder", + "aa-listpicker-search", + "aa-listpicker-selectall", + "aa-listpicker-tag", + "aa-listpicker-trigger", + "box", + "is-checked", + "is-disabled", + "is-open", + "x" + ], + "vue3": [ + "aa-listpicker", + "aa-listpicker-caret", + "aa-listpicker-empty", + "aa-listpicker-group-label", + "aa-listpicker-option", + "aa-listpicker-panel", + "aa-listpicker-placeholder", + "aa-listpicker-search", + "aa-listpicker-selectall", + "aa-listpicker-tag", + "aa-listpicker-trigger", + "box", + "is-checked", + "is-disabled", + "is-open", + "x" + ] + }, + "css": [ + "aa-listpicker", + "aa-listpicker-caret", + "aa-listpicker-empty", + "aa-listpicker-group-label", + "aa-listpicker-option", + "aa-listpicker-panel", + "aa-listpicker-placeholder", + "aa-listpicker-search", + "aa-listpicker-selectall", + "aa-listpicker-tag", + "aa-listpicker-trigger", + "box", + "is-checked", + "is-disabled", + "is-open", + "txt", + "x" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 27 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 15 + }, + "vue2": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 16 + }, + "vue3": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 16 + } + }, + "diffs": [ + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-checked'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-listpicker-panel", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-listpicker-trigger", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-open", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-checked", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-disabled", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "cascader", + "files": { + "h5": "cascader.html", + "react": "Cascader.jsx", + "vue2": "Cascader.vue2.vue", + "vue3": "Cascader.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'is-active'", + ":", + "?", + "aa-cascader", + "aa-cascader-col", + "aa-cascader-empty", + "aa-cascader-opt", + "aa-cascader-result", + "aa-cascader-results", + "aa-cascader-tag", + "aa-cascader-tags", + "arrow", + "box", + "caret", + "placeholder" + ], + "react": [ + "aa-cascader", + "aa-cascader-col", + "aa-cascader-empty", + "aa-cascader-opt", + "aa-cascader-panel", + "aa-cascader-result", + "aa-cascader-results", + "aa-cascader-search", + "aa-cascader-tag", + "aa-cascader-tags", + "aa-cascader-trigger", + "arrow", + "box", + "caret", + "placeholder" + ], + "vue2": [ + "aa-cascader", + "aa-cascader-col", + "aa-cascader-empty", + "aa-cascader-opt", + "aa-cascader-panel", + "aa-cascader-result", + "aa-cascader-results", + "aa-cascader-search", + "aa-cascader-tag", + "aa-cascader-tags", + "aa-cascader-trigger", + "arrow", + "box", + "caret", + "is-active", + "is-checked", + "is-open", + "placeholder" + ], + "vue3": [ + "aa-cascader", + "aa-cascader-col", + "aa-cascader-empty", + "aa-cascader-opt", + "aa-cascader-panel", + "aa-cascader-result", + "aa-cascader-results", + "aa-cascader-search", + "aa-cascader-tag", + "aa-cascader-tags", + "aa-cascader-trigger", + "arrow", + "box", + "caret", + "is-active", + "is-checked", + "is-open", + "placeholder" + ] + }, + "css": [ + "aa-cascader", + "aa-cascader-col", + "aa-cascader-empty", + "aa-cascader-opt", + "aa-cascader-panel", + "aa-cascader-result", + "aa-cascader-results", + "aa-cascader-search", + "aa-cascader-tag", + "aa-cascader-tags", + "aa-cascader-trigger", + "arrow", + "box", + "caret", + "is-active", + "is-checked", + "is-open", + "placeholder", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h1", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "style", + "title" + ], + "elements": 37 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 18 + }, + "vue2": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 21 + }, + "vue3": { + "tags": [ + "div", + "input", + "span", + "template" + ], + "elements": 21 + } + }, + "diffs": [ + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-cascader-search", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-cascader-panel", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-cascader-trigger", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-open", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-checked", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "colorpicker", + "files": { + "h5": "ColorPicker.html", + "react": "ColorPicker.jsx", + "vue2": "ColorPicker.vue2.vue", + "vue3": "ColorPicker.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-active'", + "(c.toLowerCase()", + "+", + ":", + "===", + "?", + "aa-colorpicker", + "aa-colorpicker-alpha", + "aa-colorpicker-hex", + "aa-colorpicker-native", + "aa-colorpicker-presets", + "aa-colorpicker-preview", + "aa-colorpicker-row", + "aa-colorpicker-swatch", + "aa-panel", + "state.hex.toLowerCase()" + ], + "react": [ + "aa-colorpicker", + "aa-colorpicker-alpha", + "aa-colorpicker-hex", + "aa-colorpicker-native", + "aa-colorpicker-presets", + "aa-colorpicker-preview", + "aa-colorpicker-row", + "aa-colorpicker-swatch" + ], + "vue2": [ + "aa-colorpicker", + "aa-colorpicker-alpha", + "aa-colorpicker-hex", + "aa-colorpicker-native", + "aa-colorpicker-presets", + "aa-colorpicker-preview", + "aa-colorpicker-row", + "aa-colorpicker-swatch", + "is-active" + ], + "vue3": [ + "aa-colorpicker", + "aa-colorpicker-alpha", + "aa-colorpicker-hex", + "aa-colorpicker-native", + "aa-colorpicker-presets", + "aa-colorpicker-preview", + "aa-colorpicker-row", + "aa-colorpicker-swatch", + "is-active" + ] + }, + "css": [ + "aa-colorpicker", + "aa-colorpicker-alpha", + "aa-colorpicker-hex", + "aa-colorpicker-native", + "aa-colorpicker-presets", + "aa-colorpicker-preview", + "aa-colorpicker-row", + "aa-colorpicker-swatch", + "is-active", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "input", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 21 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 10 + }, + "vue2": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 10 + }, + "vue3": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 10 + } + }, + "diffs": [ + { + "class": "aa-panel", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(c.toLowerCase()", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "===", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "state.hex.toLowerCase()", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-active'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "rangequickpicker", + "files": { + "h5": "RangeQuickPicker.html", + "react": "RangeQuickPicker.jsx", + "vue2": "RangeQuickPicker.vue2.vue", + "vue3": "RangeQuickPicker.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-code-tip", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page", + "aa-range", + "aa-range-actions", + "aa-range-cancel", + "aa-range-custom", + "aa-range-ok", + "aa-range-placeholder", + "aa-range-pop", + "aa-range-presets", + "aa-range-tilde", + "aa-range-trigger" + ], + "react": [ + "aa-range", + "aa-range-actions", + "aa-range-cancel", + "aa-range-custom", + "aa-range-ok", + "aa-range-placeholder", + "aa-range-pop", + "aa-range-preset", + "aa-range-presets", + "aa-range-sep", + "aa-range-tilde", + "aa-range-trigger" + ], + "vue2": [ + "aa-range", + "aa-range-actions", + "aa-range-cancel", + "aa-range-custom", + "aa-range-ok", + "aa-range-placeholder", + "aa-range-pop", + "aa-range-preset", + "aa-range-presets", + "aa-range-sep", + "aa-range-tilde", + "aa-range-trigger", + "is-active", + "is-focus" + ], + "vue3": [ + "aa-range", + "aa-range-actions", + "aa-range-cancel", + "aa-range-custom", + "aa-range-ok", + "aa-range-placeholder", + "aa-range-pop", + "aa-range-preset", + "aa-range-presets", + "aa-range-sep", + "aa-range-tilde", + "aa-range-trigger", + "is-active", + "is-focus" + ] + }, + "css": [ + "aa-range", + "aa-range-actions", + "aa-range-cancel", + "aa-range-custom", + "aa-range-ok", + "aa-range-placeholder", + "aa-range-pop", + "aa-range-preset", + "aa-range-presets", + "aa-range-sep", + "aa-range-tilde", + "aa-range-trigger", + "is-active", + "is-focus" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h2", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 27 + }, + "react": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 15 + }, + "vue2": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 15 + }, + "vue3": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 15 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-code-tip", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-range-sep", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-range-preset", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-focus", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "numberrangeinput", + "files": { + "h5": "NumberRangeInput.html", + "react": "NumberRangeInput.jsx", + "vue2": "NumberRangeInput.vue2.vue", + "vue3": "NumberRangeInput.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-numrange", + "aa-numrange-msg", + "aa-numrange-sep", + "aa-numrange-unit" + ], + "react": [ + "aa-numrange", + "aa-numrange-msg", + "aa-numrange-sep", + "aa-numrange-unit" + ], + "vue2": [ + "aa-numrange", + "aa-numrange-msg", + "aa-numrange-sep", + "aa-numrange-unit", + "is-error", + "max", + "min", + "number", + "step" + ], + "vue3": [ + "aa-numrange", + "aa-numrange-msg", + "aa-numrange-sep", + "aa-numrange-unit", + "is-error", + "max", + "min", + "number", + "step" + ] + }, + "css": [ + "aa-numrange", + "aa-numrange-msg", + "aa-numrange-sep", + "aa-numrange-unit", + "is-error", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "input", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 16 + }, + "react": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div", + "input", + "span" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "is-error", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "number", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "step", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "min", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "max", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "switchgroup", + "files": { + "h5": "SwitchGroup.html", + "react": "SwitchGroup.jsx", + "vue2": "SwitchGroup.vue2.vue", + "vue3": "SwitchGroup.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "'", + "'')", + "'is-on'", + "(allOn", + "(d.on", + "+", + ":", + "?", + "aa-panel", + "aa-switch", + "aa-switch-desc", + "aa-switch-label", + "aa-switch-row", + "aa-switch-text", + "aa-switchgroup", + "aa-switchgroup-head", + "aa-switchgroup-title" + ], + "react": [ + "aa-switch", + "aa-switch-desc", + "aa-switch-label", + "aa-switch-row", + "aa-switch-text", + "aa-switchgroup", + "aa-switchgroup-head", + "aa-switchgroup-title" + ], + "vue2": [ + "aa-switch", + "aa-switch-desc", + "aa-switch-label", + "aa-switch-row", + "aa-switch-text", + "aa-switchgroup", + "aa-switchgroup-head", + "aa-switchgroup-title", + "is-on" + ], + "vue3": [ + "aa-switch", + "aa-switch-desc", + "aa-switch-label", + "aa-switch-row", + "aa-switch-text", + "aa-switchgroup", + "aa-switchgroup-head", + "aa-switchgroup-title", + "is-on" + ] + }, + "css": [ + "aa-switch", + "aa-switch-desc", + "aa-switch-label", + "aa-switch-row", + "aa-switch-text", + "aa-switchgroup", + "aa-switchgroup-head", + "aa-switchgroup-title", + "is-on", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 20 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 9 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "aa-panel", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "+", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(allOn", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "?", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'is-on'", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": ":", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "'')", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "(d.on", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-on", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "medium" + }, + { + "slug": "dragupload", + "files": { + "h5": "DragUpload.html", + "react": "DragUpload.jsx", + "vue2": "DragUpload.vue2.vue", + "vue3": "DragUpload.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-desc", + "aa-h2", + "aa-page", + "aa-upload", + "aa-upload-bar", + "aa-upload-del", + "aa-upload-drop", + "aa-upload-hint", + "aa-upload-icon", + "aa-upload-item", + "aa-upload-list", + "aa-upload-meta", + "aa-upload-name", + "aa-upload-status", + "aa-upload-thumb" + ], + "react": [ + "aa-upload", + "aa-upload-bar", + "aa-upload-del", + "aa-upload-drop", + "aa-upload-hint", + "aa-upload-icon", + "aa-upload-item", + "aa-upload-list", + "aa-upload-meta", + "aa-upload-name", + "aa-upload-status", + "aa-upload-thumb" + ], + "vue2": [ + "aa-upload", + "aa-upload-bar", + "aa-upload-del", + "aa-upload-drop", + "aa-upload-hint", + "aa-upload-icon", + "aa-upload-item", + "aa-upload-list", + "aa-upload-meta", + "aa-upload-name", + "aa-upload-status", + "aa-upload-thumb", + "is-over" + ], + "vue3": [ + "aa-upload", + "aa-upload-bar", + "aa-upload-del", + "aa-upload-drop", + "aa-upload-hint", + "aa-upload-icon", + "aa-upload-item", + "aa-upload-list", + "aa-upload-meta", + "aa-upload-name", + "aa-upload-status", + "aa-upload-thumb", + "is-over" + ] + }, + "css": [ + "aa-upload", + "aa-upload-bar", + "aa-upload-del", + "aa-upload-drop", + "aa-upload-hint", + "aa-upload-icon", + "aa-upload-item", + "aa-upload-list", + "aa-upload-meta", + "aa-upload-name", + "aa-upload-status", + "aa-upload-thumb", + "is-over" + ], + "structure": { + "h5": { + "tags": [ + "b", + "body", + "button", + "div", + "h2", + "head", + "html", + "i", + "img", + "input", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 29 + }, + "react": { + "tags": [ + "b", + "button", + "div", + "i", + "img", + "input", + "span" + ], + "elements": 16 + }, + "vue2": { + "tags": [ + "b", + "button", + "div", + "i", + "img", + "input", + "span" + ], + "elements": 17 + }, + "vue3": { + "tags": [ + "b", + "button", + "div", + "i", + "img", + "input", + "span" + ], + "elements": 17 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-over", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "medium" + }, + { + "slug": "signaturepad", + "files": { + "h5": "SignaturePad.html", + "react": "SignaturePad.jsx", + "vue2": "SignaturePad.vue2.vue", + "vue3": "SignaturePad.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-btn", + "aa-btn--primary", + "aa-demo", + "aa-desc", + "aa-h2", + "aa-page", + "aa-sign", + "aa-sign-actions", + "aa-sign-canvas", + "aa-sign-pad", + "aa-sign-placeholder", + "aa-sign-preview" + ], + "react": [ + "aa-btn", + "aa-btn--primary", + "aa-sign", + "aa-sign-actions", + "aa-sign-canvas", + "aa-sign-pad", + "aa-sign-placeholder", + "aa-sign-preview" + ], + "vue2": [ + "aa-btn", + "aa-btn--primary", + "aa-sign", + "aa-sign-actions", + "aa-sign-canvas", + "aa-sign-pad", + "aa-sign-placeholder", + "aa-sign-preview" + ], + "vue3": [ + "aa-btn", + "aa-btn--primary", + "aa-sign", + "aa-sign-actions", + "aa-sign-canvas", + "aa-sign-pad", + "aa-sign-placeholder", + "aa-sign-preview" + ] + }, + "css": [ + "aa-sign", + "aa-sign-actions", + "aa-sign-canvas", + "aa-sign-pad", + "aa-sign-placeholder", + "aa-sign-preview" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "canvas", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 22 + }, + "react": { + "tags": [ + "button", + "canvas", + "div", + "span" + ], + "elements": 9 + }, + "vue2": { + "tags": [ + "button", + "canvas", + "div", + "span" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "button", + "canvas", + "div", + "span" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [], + "severity": "low" + }, + { + "slug": "codeinput", + "files": { + "h5": "CodeInput.html", + "react": "CodeInput.jsx", + "vue2": "CodeInput.vue2.vue", + "vue3": "CodeInput.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-code", + "aa-code-tip", + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page" + ], + "react": [ + "aa-code", + "aa-code-cell", + "aa-code-input", + "aa-code-tip" + ], + "vue2": [ + "aa-code", + "aa-code-cell", + "aa-code-input", + "aa-code-tip", + "is-filled", + "is-focus", + "is-masked", + "numeric" + ], + "vue3": [ + "aa-code", + "aa-code-cell", + "aa-code-input", + "aa-code-tip", + "is-filled", + "is-focus", + "is-masked", + "numeric" + ] + }, + "css": [ + "aa-code", + "aa-code-cell", + "aa-code-input", + "aa-code-tip", + "error", + "is-filled", + "is-focus", + "is-masked", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "title" + ], + "elements": 20 + }, + "react": { + "tags": [ + "div", + "input" + ], + "elements": 5 + }, + "vue2": { + "tags": [ + "div", + "input" + ], + "elements": 5 + }, + "vue3": { + "tags": [ + "div", + "input" + ], + "elements": 5 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-code-input", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-code-cell", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-focus", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-filled", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-masked", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "numeric", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt", + "error" + ], + "severity": "high" + }, + { + "slug": "passwordinput", + "files": { + "h5": "PasswordInput.html", + "react": "PasswordInput.jsx", + "vue2": "PasswordInput.vue2.vue", + "vue3": "PasswordInput.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page", + "aa-pwd", + "aa-pwd-bar", + "aa-pwd-field", + "aa-pwd-input", + "aa-pwd-strength", + "aa-pwd-tip", + "aa-pwd-toggle" + ], + "react": [ + "aa-pwd", + "aa-pwd-field", + "aa-pwd-input", + "aa-pwd-strength", + "aa-pwd-tip", + "aa-pwd-toggle", + "text" + ], + "vue2": [ + "aa-pwd", + "aa-pwd-bar", + "aa-pwd-field", + "aa-pwd-input", + "aa-pwd-strength", + "aa-pwd-tip", + "aa-pwd-toggle", + "is-focus", + "text", + "value" + ], + "vue3": [ + "aa-pwd", + "aa-pwd-bar", + "aa-pwd-field", + "aa-pwd-input", + "aa-pwd-strength", + "aa-pwd-tip", + "aa-pwd-toggle", + "is-focus", + "modelValue", + "text" + ] + }, + "css": [ + "aa-pwd", + "aa-pwd-bar", + "aa-pwd-field", + "aa-pwd-input", + "aa-pwd-strength", + "aa-pwd-tip", + "aa-pwd-toggle", + "is-focus", + "mid", + "on", + "strong", + "txt", + "weak" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h2", + "head", + "html", + "input", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 30 + }, + "react": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "button", + "div", + "input", + "span" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-pwd-bar", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "text", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-focus", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "value", + "presentIn": [ + "vue2" + ], + "missingIn": [ + "h5", + "react", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "modelValue", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt", + "on", + "weak", + "mid", + "strong" + ], + "severity": "high" + }, + { + "slug": "phoneinput", + "files": { + "h5": "PhoneInput.html", + "react": "PhoneInput.jsx", + "vue2": "PhoneInput.vue2.vue", + "vue3": "PhoneInput.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-demo__title", + "aa-desc", + "aa-h2", + "aa-page", + "aa-phone", + "aa-phone-code", + "aa-phone-input", + "aa-phone-tip" + ], + "react": [ + "aa-phone", + "aa-phone-code", + "aa-phone-input", + "ok" + ], + "vue2": [ + "aa-phone", + "aa-phone-code", + "aa-phone-input", + "aa-phone-tip", + "is-error", + "is-focus", + "numeric" + ], + "vue3": [ + "aa-phone", + "aa-phone-code", + "aa-phone-input", + "aa-phone-tip", + "is-error", + "is-focus", + "numeric" + ] + }, + "css": [ + "aa-phone", + "aa-phone-code", + "aa-phone-input", + "aa-phone-tip", + "error", + "is-error", + "is-focus", + "ok" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "input", + "link", + "meta", + "option", + "p", + "script", + "select", + "title" + ], + "elements": 22 + }, + "react": { + "tags": [ + "div", + "input", + "option", + "select" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div", + "input", + "option", + "select" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div", + "input", + "option", + "select" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo__title", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-phone-tip", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "ok", + "presentIn": [ + "react" + ], + "missingIn": [ + "h5", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-focus", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "is-error", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "numeric", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "error" + ], + "severity": "high" + }, + { + "slug": "messagepro", + "files": { + "h5": "MessagePro.html", + "react": "MessagePro.jsx", + "vue2": "MessagePro.vue2.vue", + "vue3": "MessagePro.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-message-close", + "aa-message-content", + "aa-message-icon" + ], + "react": [ + "aa-message", + "aa-message-close", + "aa-message-content", + "aa-message-icon", + "aa-message-wrap" + ], + "vue2": [ + "aa-message", + "aa-message-close", + "aa-message-content", + "aa-message-icon", + "aa-message-wrap", + "is-", + "loading" + ], + "vue3": [ + "aa-message", + "aa-message-close", + "aa-message-content", + "aa-message-icon", + "aa-message-wrap", + "is-", + "loading" + ] + }, + "css": [ + "aa-message", + "aa-message-close", + "aa-message-content", + "aa-message-icon", + "aa-message-wrap", + "is-error", + "is-info", + "is-loading", + "is-success", + "is-warning", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 18 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 5 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 5 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 5 + } + }, + "diffs": [ + { + "class": "aa-message-wrap", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-message", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "loading", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt", + "is-success", + "is-error", + "is-warning", + "is-info", + "is-loading" + ], + "severity": "high" + }, + { + "slug": "notificationpro", + "files": { + "h5": "NotificationPro.html", + "react": "NotificationPro.jsx", + "vue2": "NotificationPro.vue2.vue", + "vue3": "NotificationPro.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-notification-body", + "aa-notification-close", + "aa-notification-desc", + "aa-notification-icon", + "aa-notification-title" + ], + "react": [ + "aa-notification", + "aa-notification-body", + "aa-notification-close", + "aa-notification-desc", + "aa-notification-icon", + "aa-notification-title", + "aa-notification-wrap" + ], + "vue2": [ + "aa-notification", + "aa-notification-body", + "aa-notification-close", + "aa-notification-desc", + "aa-notification-icon", + "aa-notification-title", + "aa-notification-wrap", + "is-" + ], + "vue3": [ + "aa-notification", + "aa-notification-body", + "aa-notification-close", + "aa-notification-desc", + "aa-notification-icon", + "aa-notification-title", + "aa-notification-wrap", + "is-" + ] + }, + "css": [ + "aa-notification", + "aa-notification-body", + "aa-notification-close", + "aa-notification-desc", + "aa-notification-icon", + "aa-notification-title", + "aa-notification-wrap", + "is-error", + "is-info", + "is-success", + "is-warning", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "aa-notification-wrap", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "aa-notification", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt", + "is-success", + "is-error", + "is-warning", + "is-info" + ], + "severity": "high" + }, + { + "slug": "progressvariants", + "files": { + "h5": "ProgressVariants.html", + "react": "ProgressVariants.jsx", + "vue2": "ProgressVariants.vue2.vue", + "vue3": "ProgressVariants.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card", + "aa-progress", + "aa-progress-circle", + "aa-progress-circle-text", + "aa-progress-line", + "aa-progress-line-fill", + "aa-progress-line-wrap", + "aa-progress-text", + "is-success" + ], + "react": [ + "aa-progress-circle", + "aa-progress-circle-text", + "aa-progress-line", + "aa-progress-line-fill", + "aa-progress-line-wrap", + "aa-progress-text", + "normal" + ], + "vue2": [ + "aa-progress", + "aa-progress-circle", + "aa-progress-circle-text", + "aa-progress-line", + "aa-progress-line-fill", + "aa-progress-line-wrap", + "aa-progress-text", + "arcLen", + "circleCirc", + "is-", + "none", + "normal", + "round" + ], + "vue3": [ + "aa-progress", + "aa-progress-circle", + "aa-progress-circle-text", + "aa-progress-line", + "aa-progress-line-fill", + "aa-progress-line-wrap", + "aa-progress-text", + "arcLen", + "circleCirc", + "is-", + "none", + "normal", + "round" + ] + }, + "css": [ + "aa-progress", + "aa-progress-circle", + "aa-progress-circle-text", + "aa-progress-line", + "aa-progress-line-fill", + "aa-progress-line-wrap", + "aa-progress-text", + "is-error", + "is-success", + "is-warning", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "circle", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "svg", + "title" + ], + "elements": 28 + }, + "react": { + "tags": [ + "circle", + "div", + "span", + "svg" + ], + "elements": 10 + }, + "vue2": { + "tags": [ + "circle", + "div", + "span", + "svg" + ], + "elements": 11 + }, + "vue3": { + "tags": [ + "circle", + "div", + "span", + "svg" + ], + "elements": 11 + } + }, + "diffs": [ + { + "class": "aa-card", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-progress", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "is-success", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "normal", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "circleCirc", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "none", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "round", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "arcLen", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt", + "is-warning", + "is-error" + ], + "severity": "high" + }, + { + "slug": "skeletonpro", + "files": { + "h5": "SkeletonPro.html", + "react": "SkeletonPro.jsx", + "vue2": "SkeletonPro.vue2.vue", + "vue3": "SkeletonPro.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card", + "aa-skeleton", + "aa-skeleton-avatar", + "aa-skeleton-block", + "aa-skeleton-line", + "aa-skeleton-lines", + "aa-skeleton-row", + "is-active" + ], + "react": [ + "aa-skeleton", + "aa-skeleton-avatar", + "aa-skeleton-block", + "aa-skeleton-line", + "aa-skeleton-lines", + "aa-skeleton-row" + ], + "vue2": [ + "aa-skeleton", + "aa-skeleton-avatar", + "aa-skeleton-block", + "aa-skeleton-line", + "aa-skeleton-lines", + "aa-skeleton-row", + "is-active" + ], + "vue3": [ + "aa-skeleton", + "aa-skeleton-avatar", + "aa-skeleton-block", + "aa-skeleton-line", + "aa-skeleton-lines", + "aa-skeleton-row", + "is-active" + ] + }, + "css": [ + "aa-skeleton", + "aa-skeleton-avatar", + "aa-skeleton-block", + "aa-skeleton-line", + "aa-skeleton-lines", + "aa-skeleton-row", + "is-active", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "div" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "aa-card", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "emptypro", + "files": { + "h5": "EmptyPro.html", + "react": "EmptyPro.jsx", + "vue2": "EmptyPro.vue2.vue", + "vue3": "EmptyPro.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card", + "aa-empty", + "aa-empty-actions", + "aa-empty-btn", + "aa-empty-desc", + "aa-empty-icon", + "aa-empty-title", + "primary" + ], + "react": [ + "aa-empty", + "aa-empty-actions", + "aa-empty-btn", + "aa-empty-desc", + "aa-empty-icon", + "aa-empty-title", + "primary" + ], + "vue2": [ + "aa-empty", + "aa-empty-actions", + "aa-empty-btn", + "aa-empty-desc", + "aa-empty-icon", + "aa-empty-title", + "primary" + ], + "vue3": [ + "aa-empty", + "aa-empty-actions", + "aa-empty-btn", + "aa-empty-desc", + "aa-empty-icon", + "aa-empty-title", + "primary" + ] + }, + "css": [ + "aa-empty", + "aa-empty-actions", + "aa-empty-btn", + "aa-empty-desc", + "aa-empty-icon", + "aa-empty-title", + "primary", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 24 + }, + "react": { + "tags": [ + "button", + "div" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "button", + "div" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "button", + "div" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "aa-card", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "low" + }, + { + "slug": "loadingoverlay", + "files": { + "h5": "LoadingOverlay.html", + "react": "LoadingOverlay.jsx", + "vue2": "LoadingOverlay.vue2.vue", + "vue3": "LoadingOverlay.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-box", + "aa-loading-overlay", + "aa-loading-spinner", + "aa-loading-text", + "is-inline" + ], + "react": [ + "aa-loading-overlay", + "aa-loading-spinner", + "aa-loading-text" + ], + "vue2": [ + "aa-loading-overlay", + "aa-loading-spinner", + "aa-loading-text", + "is-dark", + "is-inline" + ], + "vue3": [ + "aa-loading-overlay", + "aa-loading-spinner", + "aa-loading-text", + "is-dark", + "is-inline" + ] + }, + "css": [ + "aa-loading-overlay", + "aa-loading-spinner", + "aa-loading-text", + "is-dark", + "is-inline", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "div" + ], + "elements": 3 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 3 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 3 + } + }, + "diffs": [ + { + "class": "aa-box", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-inline", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "is-dark", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "resultvariants", + "files": { + "h5": "ResultVariants.html", + "react": "ResultVariants.jsx", + "vue2": "ResultVariants.vue2.vue", + "vue3": "ResultVariants.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card", + "aa-result", + "aa-result-actions", + "aa-result-btn", + "aa-result-desc", + "aa-result-icon", + "aa-result-title", + "is-error", + "is-info", + "is-success", + "is-warning", + "primary" + ], + "react": [ + "aa-result", + "aa-result-actions", + "aa-result-btn", + "aa-result-desc", + "aa-result-extra", + "aa-result-icon", + "aa-result-title", + "primary" + ], + "vue2": [ + "aa-result", + "aa-result-actions", + "aa-result-btn", + "aa-result-desc", + "aa-result-extra", + "aa-result-icon", + "aa-result-title", + "is-", + "primary" + ], + "vue3": [ + "aa-result", + "aa-result-actions", + "aa-result-btn", + "aa-result-desc", + "aa-result-extra", + "aa-result-icon", + "aa-result-title", + "i", + "is-", + "primary" + ] + }, + "css": [ + "aa-result", + "aa-result-actions", + "aa-result-btn", + "aa-result-desc", + "aa-result-extra", + "aa-result-icon", + "aa-result-title", + "is-error", + "is-info", + "is-success", + "is-warning", + "primary", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 24 + }, + "react": { + "tags": [ + "button", + "div" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "button", + "div", + "slot" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "button", + "div", + "slot" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "aa-card", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-success", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-error", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-warning", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-info", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-result-extra", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "exceptionvariants", + "files": { + "h5": "ExceptionVariants.html", + "react": "ExceptionVariants.jsx", + "vue2": "ExceptionVariants.vue2.vue", + "vue3": "ExceptionVariants.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-card", + "aa-exception", + "aa-exception-actions", + "aa-exception-btn", + "aa-exception-desc", + "aa-exception-emoji", + "aa-exception-title", + "primary" + ], + "react": [ + "aa-exception", + "aa-exception-actions", + "aa-exception-btn", + "aa-exception-desc", + "aa-exception-emoji", + "aa-exception-title", + "primary" + ], + "vue2": [ + "aa-exception", + "aa-exception-actions", + "aa-exception-btn", + "aa-exception-desc", + "aa-exception-emoji", + "aa-exception-title", + "primary" + ], + "vue3": [ + "aa-exception", + "aa-exception-actions", + "aa-exception-btn", + "aa-exception-desc", + "aa-exception-emoji", + "aa-exception-title", + "primary" + ] + }, + "css": [ + "aa-exception", + "aa-exception-actions", + "aa-exception-btn", + "aa-exception-code", + "aa-exception-desc", + "aa-exception-emoji", + "aa-exception-title", + "primary", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "style", + "title" + ], + "elements": 24 + }, + "react": { + "tags": [ + "button", + "div" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "button", + "div" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "button", + "div" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "aa-card", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt", + "aa-exception-code" + ], + "severity": "low" + }, + { + "slug": "confirmmodal", + "files": { + "h5": "ConfirmModal.html", + "react": "ConfirmModal.jsx", + "vue2": "ConfirmModal.vue2.vue", + "vue3": "ConfirmModal.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-confirm", + "aa-confirm-btn", + "aa-confirm-content", + "aa-confirm-extra", + "aa-confirm-footer", + "aa-confirm-head", + "aa-confirm-icon", + "aa-confirm-title", + "aa-modal-mask", + "danger", + "is-danger" + ], + "react": [ + "aa-confirm", + "aa-confirm-btn", + "aa-confirm-content", + "aa-confirm-extra", + "aa-confirm-footer", + "aa-confirm-head", + "aa-confirm-icon", + "aa-confirm-title", + "aa-modal-mask", + "danger", + "is-danger", + "is-primary", + "primary" + ], + "vue2": [ + "aa-confirm", + "aa-confirm-btn", + "aa-confirm-content", + "aa-confirm-extra", + "aa-confirm-footer", + "aa-confirm-head", + "aa-confirm-icon", + "aa-confirm-title", + "aa-modal-mask", + "danger", + "is-danger", + "is-primary", + "primary" + ], + "vue3": [ + "aa-confirm", + "aa-confirm-btn", + "aa-confirm-content", + "aa-confirm-extra", + "aa-confirm-footer", + "aa-confirm-head", + "aa-confirm-icon", + "aa-confirm-title", + "aa-modal-mask", + "danger", + "is-danger", + "is-primary", + "primary" + ] + }, + "css": [ + "aa-confirm", + "aa-confirm-btn", + "aa-confirm-content", + "aa-confirm-extra", + "aa-confirm-footer", + "aa-confirm-head", + "aa-confirm-icon", + "aa-confirm-title", + "aa-modal-mask", + "danger", + "is-danger", + "is-primary", + "primary", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "input", + "label", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 22 + }, + "react": { + "tags": [ + "button", + "div", + "input", + "label", + "span" + ], + "elements": 11 + }, + "vue2": { + "tags": [ + "button", + "div", + "input", + "label", + "span" + ], + "elements": 11 + }, + "vue3": { + "tags": [ + "button", + "div", + "input", + "label", + "span" + ], + "elements": 11 + } + }, + "diffs": [ + { + "class": "is-primary", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "primary", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "high" + }, + { + "slug": "alertmodal", + "files": { + "h5": "AlertModal.html", + "react": "AlertModal.jsx", + "vue2": "AlertModal.vue2.vue", + "vue3": "AlertModal.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-alert", + "aa-alert-btn", + "aa-alert-content", + "aa-alert-footer", + "aa-alert-head", + "aa-alert-icon", + "aa-alert-title", + "aa-modal-mask", + "is-info" + ], + "react": [ + "aa-alert", + "aa-alert-btn", + "aa-alert-content", + "aa-alert-footer", + "aa-alert-head", + "aa-alert-icon", + "aa-alert-title", + "aa-modal-mask" + ], + "vue2": [ + "aa-alert", + "aa-alert-btn", + "aa-alert-content", + "aa-alert-footer", + "aa-alert-head", + "aa-alert-icon", + "aa-alert-title", + "aa-modal-mask", + "is-" + ], + "vue3": [ + "aa-alert", + "aa-alert-btn", + "aa-alert-content", + "aa-alert-footer", + "aa-alert-head", + "aa-alert-icon", + "aa-alert-title", + "aa-modal-mask", + "i", + "is-" + ] + }, + "css": [ + "aa-alert", + "aa-alert-btn", + "aa-alert-content", + "aa-alert-footer", + "aa-alert-head", + "aa-alert-icon", + "aa-alert-title", + "aa-modal-mask", + "is-error", + "is-info", + "is-success", + "is-warning", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "head", + "html", + "link", + "meta", + "script", + "span", + "style", + "title" + ], + "elements": 19 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "is-info", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + }, + { + "class": "i", + "presentIn": [ + "vue3" + ], + "missingIn": [ + "h5", + "react", + "vue2" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt", + "is-success", + "is-error", + "is-warning" + ], + "severity": "medium" + }, + { + "slug": "formmodal", + "files": { + "h5": "FormModal.html", + "react": "FormModal.jsx", + "vue2": "FormModal.vue2.vue", + "vue3": "FormModal.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-btn", + "aa-btn--primary", + "aa-code-tip", + "aa-demo", + "aa-desc", + "aa-form-err", + "aa-form-input", + "aa-form-label", + "aa-form-row", + "aa-formmodal", + "aa-formmodal-body", + "aa-formmodal-close", + "aa-formmodal-foot", + "aa-formmodal-head", + "aa-formmodal-mask", + "aa-h2", + "aa-page", + "req" + ], + "react": [ + "aa-btn", + "aa-btn--primary", + "aa-form-err", + "aa-form-input", + "aa-form-label", + "aa-form-row", + "aa-formmodal", + "aa-formmodal-body", + "aa-formmodal-close", + "aa-formmodal-foot", + "aa-formmodal-head", + "aa-formmodal-mask", + "req" + ], + "vue2": [ + "aa-btn", + "aa-btn--primary", + "aa-form-err", + "aa-form-input", + "aa-form-label", + "aa-form-row", + "aa-formmodal", + "aa-formmodal-body", + "aa-formmodal-close", + "aa-formmodal-foot", + "aa-formmodal-head", + "aa-formmodal-mask", + "is-error", + "req" + ], + "vue3": [ + "aa-btn", + "aa-btn--primary", + "aa-form-err", + "aa-form-input", + "aa-form-label", + "aa-form-row", + "aa-formmodal", + "aa-formmodal-body", + "aa-formmodal-close", + "aa-formmodal-foot", + "aa-formmodal-head", + "aa-formmodal-mask", + "is-error", + "req" + ] + }, + "css": [ + "aa-form-err", + "aa-form-input", + "aa-form-label", + "aa-form-row", + "aa-formmodal", + "aa-formmodal-body", + "aa-formmodal-close", + "aa-formmodal-foot", + "aa-formmodal-head", + "aa-formmodal-mask", + "is-error", + "req" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h2", + "head", + "html", + "input", + "label", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 37 + }, + "react": { + "tags": [ + "button", + "div", + "input", + "label", + "span" + ], + "elements": 14 + }, + "vue2": { + "tags": [ + "button", + "div", + "input", + "label", + "span" + ], + "elements": 14 + }, + "vue3": { + "tags": [ + "button", + "div", + "input", + "label", + "span" + ], + "elements": 14 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-code-tip", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-error", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "medium" + }, + { + "slug": "fullscreenmodal", + "files": { + "h5": "FullScreenModal.html", + "react": "FullScreenModal.jsx", + "vue2": "FullScreenModal.vue2.vue", + "vue3": "FullScreenModal.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-btn", + "aa-btn--primary", + "aa-demo", + "aa-desc", + "aa-fs-body", + "aa-fs-close", + "aa-fs-foot", + "aa-fs-head", + "aa-fs-mask", + "aa-fs-title", + "aa-h2", + "aa-page" + ], + "react": [ + "aa-btn", + "aa-btn--primary", + "aa-fs-body", + "aa-fs-close", + "aa-fs-foot", + "aa-fs-head", + "aa-fs-mask", + "aa-fs-title" + ], + "vue2": [ + "aa-btn", + "aa-btn--primary", + "aa-fs-body", + "aa-fs-close", + "aa-fs-foot", + "aa-fs-head", + "aa-fs-mask", + "aa-fs-title" + ], + "vue3": [ + "aa-btn", + "aa-btn--primary", + "aa-fs-body", + "aa-fs-close", + "aa-fs-foot", + "aa-fs-head", + "aa-fs-mask", + "aa-fs-title" + ] + }, + "css": [ + "aa-fs-body", + "aa-fs-close", + "aa-fs-foot", + "aa-fs-head", + "aa-fs-mask", + "aa-fs-title" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h2", + "h3", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 27 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "button", + "div", + "slot", + "span" + ], + "elements": 9 + }, + "vue3": { + "tags": [ + "button", + "div", + "slot", + "span" + ], + "elements": 9 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [], + "severity": "low" + }, + { + "slug": "themeswitcher", + "files": { + "h5": "ThemeSwitcher.html", + "react": "ThemeSwitcher.jsx", + "vue2": "ThemeSwitcher.vue2.vue", + "vue3": "ThemeSwitcher.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-btn", + "aa-btn--primary", + "aa-card", + "aa-card__body", + "aa-demo", + "aa-desc", + "aa-h2", + "aa-page", + "aa-themesw", + "aa-themesw-colors", + "aa-themesw-dot", + "aa-themesw-label", + "aa-themesw-opt", + "dark", + "light" + ], + "react": [ + "aa-themesw", + "aa-themesw-color", + "aa-themesw-colors", + "aa-themesw-label", + "aa-themesw-opt" + ], + "vue2": [ + "aa-themesw", + "aa-themesw-color", + "aa-themesw-colors", + "aa-themesw-dot", + "aa-themesw-label", + "aa-themesw-opt", + "is-active" + ], + "vue3": [ + "aa-themesw", + "aa-themesw-color", + "aa-themesw-colors", + "aa-themesw-dot", + "aa-themesw-label", + "aa-themesw-opt", + "is-active" + ] + }, + "css": [ + "aa-themesw", + "aa-themesw-color", + "aa-themesw-colors", + "aa-themesw-dot", + "aa-themesw-label", + "aa-themesw-opt", + "dark", + "is-active", + "light" + ], + "structure": { + "h5": { + "tags": [ + "b", + "body", + "button", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 25 + }, + "react": { + "tags": [ + "div", + "span" + ], + "elements": 6 + }, + "vue2": { + "tags": [ + "div", + "span" + ], + "elements": 6 + }, + "vue3": { + "tags": [ + "div", + "span" + ], + "elements": 6 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-themesw-dot", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "light", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "dark", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-card", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-card__body", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-btn", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-btn--primary", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-themesw-color", + "presentIn": [ + "react", + "vue2", + "vue3" + ], + "missingIn": [ + "h5" + ], + "type": "missing-consensus" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "high" + }, + { + "slug": "layoutswitcher", + "files": { + "h5": "LayoutSwitcher.html", + "react": "LayoutSwitcher.jsx", + "vue2": "LayoutSwitcher.vue2.vue", + "vue3": "LayoutSwitcher.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-code-tip", + "aa-demo", + "aa-desc", + "aa-h2", + "aa-layoutsw", + "aa-layoutsw-label", + "aa-layoutsw-mini", + "aa-layoutsw-opt", + "aa-page", + "s-body", + "s-main", + "s-side", + "s-top" + ], + "react": [ + "aa-layoutsw", + "aa-layoutsw-label", + "aa-layoutsw-mini", + "aa-layoutsw-opt", + "s-body", + "s-main", + "s-side", + "s-top" + ], + "vue2": [ + "aa-layoutsw", + "aa-layoutsw-label", + "aa-layoutsw-mini", + "aa-layoutsw-opt", + "is-active", + "s-body", + "s-main", + "s-side", + "s-top" + ], + "vue3": [ + "aa-layoutsw", + "aa-layoutsw-label", + "aa-layoutsw-mini", + "aa-layoutsw-opt", + "is-active", + "s-body", + "s-main", + "s-side", + "s-top" + ] + }, + "css": [ + "aa-layoutsw", + "aa-layoutsw-label", + "aa-layoutsw-mini", + "aa-layoutsw-opt", + "is-active", + "s-body", + "s-main", + "s-side", + "s-top" + ], + "structure": { + "h5": { + "tags": [ + "body", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "title" + ], + "elements": 34 + }, + "react": { + "tags": [ + "div" + ], + "elements": 8 + }, + "vue2": { + "tags": [ + "div" + ], + "elements": 8 + }, + "vue3": { + "tags": [ + "div" + ], + "elements": 8 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-code-tip", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [], + "severity": "medium" + }, + { + "slug": "densityswitcher", + "files": { + "h5": "DensitySwitcher.html", + "react": "DensitySwitcher.jsx", + "vue2": "DensitySwitcher.vue2.vue", + "vue3": "DensitySwitcher.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-demo", + "aa-densw", + "aa-densw-demo", + "aa-densw-opt", + "aa-densw-row", + "aa-desc", + "aa-h2", + "aa-page", + "default", + "muted" + ], + "react": [ + "aa-densw", + "aa-densw-opt", + "aa-densw-row", + "muted" + ], + "vue2": [ + "aa-densw", + "aa-densw-demo", + "aa-densw-opt", + "aa-densw-row", + "is-active", + "muted" + ], + "vue3": [ + "aa-densw", + "aa-densw-demo", + "aa-densw-opt", + "aa-densw-row", + "is-active", + "muted" + ] + }, + "css": [ + "aa-densw", + "aa-densw-demo", + "aa-densw-opt", + "aa-densw-row", + "compact", + "default", + "is-active", + "loose", + "muted" + ], + "structure": { + "h5": { + "tags": [ + "body", + "button", + "div", + "h2", + "head", + "html", + "link", + "meta", + "p", + "script", + "span", + "title" + ], + "elements": 27 + }, + "react": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 7 + }, + "vue2": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 7 + }, + "vue3": { + "tags": [ + "button", + "div", + "span" + ], + "elements": 7 + } + }, + "diffs": [ + { + "class": "aa-page", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-h2", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-desc", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-demo", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "aa-densw-demo", + "presentIn": [ + "h5", + "vue2", + "vue3" + ], + "missingIn": [ + "react" + ], + "type": "missing-consensus" + }, + { + "class": "default", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "is-active", + "presentIn": [ + "vue2", + "vue3" + ], + "missingIn": [ + "h5", + "react" + ], + "type": "symmetric" + } + ], + "cssUnused": [ + "loose", + "compact" + ], + "severity": "high" + }, + { + "slug": "employeecard", + "files": { + "h5": "employeecard.html", + "react": "EmployeeCard.jsx", + "vue2": "EmployeeCard.vue2.vue", + "vue3": "EmployeeCard.vue3.vue" + }, + "missingFiles": [], + "platforms": { + "h5": [ + "aa-emp-actions", + "aa-emp-avatar", + "aa-emp-card", + "aa-emp-contact", + "aa-emp-id", + "aa-emp-meta", + "aa-emp-name", + "aa-emp-status", + "aa-emp-tag", + "aa-emp-tags", + "aa-emp-top", + "active", + "left" + ], + "react": [ + "aa-emp-actions", + "aa-emp-avatar", + "aa-emp-card", + "aa-emp-contact", + "aa-emp-id", + "aa-emp-meta", + "aa-emp-name", + "aa-emp-status", + "aa-emp-tag", + "aa-emp-tags", + "aa-emp-top" + ], + "vue2": [ + "aa-emp-actions", + "aa-emp-avatar", + "aa-emp-card", + "aa-emp-contact", + "aa-emp-id", + "aa-emp-meta", + "aa-emp-name", + "aa-emp-status", + "aa-emp-tag", + "aa-emp-tags", + "aa-emp-top" + ], + "vue3": [ + "aa-emp-actions", + "aa-emp-avatar", + "aa-emp-card", + "aa-emp-contact", + "aa-emp-id", + "aa-emp-meta", + "aa-emp-name", + "aa-emp-status", + "aa-emp-tag", + "aa-emp-tags", + "aa-emp-top" + ] + }, + "css": [ + "aa-emp-actions", + "aa-emp-avatar", + "aa-emp-card", + "aa-emp-contact", + "aa-emp-id", + "aa-emp-meta", + "aa-emp-name", + "aa-emp-status", + "aa-emp-tag", + "aa-emp-tags", + "aa-emp-top", + "active", + "left", + "txt" + ], + "structure": { + "h5": { + "tags": [ + "body", + "br", + "button", + "div", + "h1", + "head", + "html", + "link", + "meta", + "p", + "span", + "style", + "title" + ], + "elements": 47 + }, + "react": { + "tags": [ + "br", + "button", + "div", + "img", + "span" + ], + "elements": 20 + }, + "vue2": { + "tags": [ + "br", + "button", + "div", + "img", + "span" + ], + "elements": 20 + }, + "vue3": { + "tags": [ + "br", + "button", + "div", + "img", + "span" + ], + "elements": 20 + } + }, + "diffs": [ + { + "class": "active", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + }, + { + "class": "left", + "presentIn": [ + "h5" + ], + "missingIn": [ + "react", + "vue2", + "vue3" + ], + "type": "extra-single-end" + } + ], + "cssUnused": [ + "txt" + ], + "severity": "low" + } + ] +} diff --git a/tools/verify-cross-platform.mjs b/tools/verify-cross-platform.mjs new file mode 100644 index 0000000..ef79be8 --- /dev/null +++ b/tools/verify-cross-platform.mjs @@ -0,0 +1,329 @@ +#!/usr/bin/env node +/** + * verify-cross-platform.mjs — S2-P6 跨端一致性自动验证(方案 B:静态结构比对) + * + * 对 79 个组件的 4 端实现(H5 / React-JSX / Vue2 / Vue3)提取 class 集合与 + * 结构骨架(标签集合 + 元素数),做集合 diff,输出 tests/cross-platform-report.json。 + * + * - 零运行时依赖(只读文件 + 正则,不渲染、不联网)。 + * - 本脚本只负责「暴露差异」,发现差异 = 任务价值,不在本脚本内顺手修。 + * - 退出码:0 = 报告成功生成;1 = 脚本自身失败(读不到数据、无输出、total < 79)。 + * + * 用法:node tools/verify-cross-platform.mjs [--out tests/cross-platform-report.json] + */ +import { readFileSync, writeFileSync, mkdirSync } from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname, join, basename } from 'path'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const ROOT = join(__dirname, '..'); +const arg = (k) => { + const i = process.argv.indexOf(k); + return i > -1 ? process.argv[i + 1] : null; +}; +const OUT = arg('--out') || join(ROOT, 'tests', 'cross-platform-report.json'); + +const data = JSON.parse(readFileSync(join(ROOT, 'site', 'data.json'), 'utf8')); +const components = data.components || []; +if (!components.length) { + console.error('[FATAL] site/data.json 无 components'); + process.exit(1); +} + +/* ---------- 提取器 ---------- */ + +function addTokens(set, text) { + (text || '').split(/\s+/).filter(Boolean).forEach((t) => set.add(t)); +} + +// H5:class="a b" +function classesFromHtml(src) { + const set = new Set(); + const re = /class\s*=\s*"([^"]*)"/g; + let m; + while ((m = re.exec(src))) addTokens(set, m[1]); + return set; +} + +// JSX:className="a b" / className={`a ${x}`} / className={'a': cond} 对象写法 +// + 变量引用 className={classes} / className={cls}:追踪该变量定义域内的字符串字面量 +function classesFromJsx(src) { + const set = new Set(); + let re = /className\s*=\s*"([^"]*)"/g; + let m; + while ((m = re.exec(src))) addTokens(set, m[1]); + // className="a" 后跟中括号数组写法:className={[...]} 内的引号段 + re = /className\s*=\s*{([^}]*)}/g; + while ((m = re.exec(src))) { + const body = m[1]; + // 模板字符串/引号字面量里的类名候选(btn- 前缀、aa- 前缀、已知小词) + const lit = body.match(/['"`]([A-Za-z][\w-]*)['"`]/g) || []; + lit.forEach((s) => set.add(s.slice(1, -1))); + // `btn-${type}` / 'btn-' + x 模板前缀:展开为对应家族 + const dynBtn = body.match(/['"`]btn-['"`]?\s*[+$]/) || body.match(/btn-\$\{/); + if (dynBtn) ['btn-primary', 'btn-default', 'btn-text', 'btn-link', 'btn-danger'].forEach((t) => set.add(t)); + } + // const classes = ['btn', `btn-${type}`, ...] 变量定义追踪 + // 注意:数组体内可能含 sizeMap[size] 这类内层 [],用配对扫描而非 [^\]]* + re = /(?:const|let|var)\s+(\w+)\s*=\s*\[/g; + while ((m = re.exec(src))) { + const varName = m[1]; + let depth = 1, j = m.index + m[0].length; + while (j < src.length && depth > 0) { + if (src[j] === '[') depth++; + else if (src[j] === ']') depth--; + j++; + } + const arrBody = src.slice(m.index + m[0].length, j - 1); + if (new RegExp(`className\\s*=\\s*{\\s*${varName}\\b`).test(src)) { + const lit = arrBody.match(/['"`]([A-Za-z][\w-]*(-\$\{[^}]*\}|\+)?)['"`]/g) || []; + lit.forEach((s) => { + const inner = s.slice(1, -1); + if (inner.includes('${') || inner.endsWith('-')) { + // `btn-${type}` → 展开家族 + if (inner.startsWith('btn-')) ['btn-primary', 'btn-default', 'btn-text', 'btn-link', 'btn-danger'].forEach((t) => set.add(t)); + else set.add(inner); + } else set.add(inner); + }); + // sizeMap[size] 引用:追踪 sizeMap 对象字面量的值(数组体可能含换行,先压平) + const arrFlat = arrBody.replace(/\s+/g, ' '); + const mapRefs = arrFlat.match(/(\w+)\s*\[\s*\w+\s*\]/g) || []; + mapRefs.forEach((ref) => { + const mapName = ref.split('[')[0].trim(); + const mapDecl = src.match(new RegExp(`(?:const|let|var)\\s+${mapName}\\s*=\\s*\\{([^}]*)\\}`)); + if (mapDecl) { + // { large: 'btn-lg', default: 'btn-md' } 只取冒号后的值(键是尺寸名,不是类) + const vals = mapDecl[1].match(/:\s*['"`]([A-Za-z][\w-]*)['"`]/g) || []; + vals.forEach((v) => set.add(v.replace(/^:\s*['"`]/, '').replace(/['"`]$/, ''))); + } + }); + } + } + re = /className\s*=\s*{`([^`]*)`}/g; // className={`aa-modal aa-modal--${size}`} + while ((m = re.exec(src))) { + const cleaned = m[1].replace(/\$\{[^}]*\}/g, ' '); + cleaned.split(/\s+/).filter(Boolean) + .filter((t) => /^[A-Za-z][\w-]*[A-Za-z0-9]$/.test(t)) + .forEach((t) => set.add(t)); + // aa-modal--${size} → 展开尺寸家族(从同文件