@design-ai/cli 4.56.0 → 4.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +109 -25
- package/CHANGELOG.md +36 -0
- package/README.ko.md +9 -26
- package/README.md +10 -23
- package/cli/bin/design-ai.mjs +1 -0
- package/cli/commands/help.mjs +7 -4
- package/cli/commands/index.mjs +292 -0
- package/cli/commands/learn-help.mjs +149 -0
- package/cli/commands/learn-print-profile.mjs +373 -0
- package/cli/commands/learn-print-restore.mjs +349 -0
- package/cli/commands/learn-print-signals.mjs +453 -0
- package/cli/commands/learn.mjs +60 -1281
- package/cli/commands/pack.mjs +7 -3
- package/cli/commands/prompt.mjs +7 -3
- package/cli/commands/search.mjs +94 -1
- package/cli/lib/dispatch.mjs +3 -0
- package/cli/lib/embedding-index.mjs +199 -0
- package/cli/lib/embedding-provider.mjs +121 -0
- package/cli/lib/embedding-rerank.mjs +52 -0
- package/cli/lib/learn-args.mjs +490 -0
- package/cli/lib/learn-backup.mjs +748 -0
- package/cli/lib/learn-curation.mjs +612 -0
- package/cli/lib/learn-eval.mjs +459 -0
- package/cli/lib/learn-profile.mjs +763 -0
- package/cli/lib/learn-select.mjs +223 -0
- package/cli/lib/learn-shared.mjs +158 -0
- package/cli/lib/learn-test-support.mjs +218 -0
- package/cli/lib/learn-usage.mjs +360 -0
- package/cli/lib/learn.mjs +83 -3694
- package/cli/lib/lexical.mjs +137 -0
- package/cli/lib/local-config.mjs +110 -0
- package/cli/lib/mcp-server.mjs +13 -3
- package/cli/lib/pack.mjs +31 -4
- package/cli/lib/prompt.mjs +42 -4
- package/cli/lib/recall.mjs +193 -0
- package/cli/lib/retrieval-index.mjs +0 -0
- package/cli/lib/search-ranked.mjs +170 -0
- package/cli/lib/search.mjs +11 -1
- package/cli/lib/signals-backlog-commands.mjs +673 -0
- package/cli/lib/signals-backlog.mjs +361 -0
- package/cli/lib/signals-eval.mjs +176 -0
- package/cli/lib/signals-readiness.mjs +247 -0
- package/cli/lib/signals-registry.mjs +377 -0
- package/cli/lib/signals-render.mjs +478 -0
- package/cli/lib/signals-shared.mjs +75 -0
- package/cli/lib/signals.mjs +16 -2337
- package/cli/lib/site-bundle-handoff-expected.mjs +173 -0
- package/cli/lib/site-bundle-handoff-runbook-action-summary.mjs +332 -0
- package/cli/lib/site-bundle-handoff-runbook-human-lines.mjs +167 -0
- package/cli/lib/site-bundle-handoff-runbook-maps.mjs +238 -0
- package/cli/lib/site-bundle-handoff-runbook-next-step.mjs +278 -0
- package/cli/lib/site-bundle-handoff-runbook.mjs +44 -931
- package/cli/lib/site-test-support.mjs +68 -0
- package/cli/lib/skill-proposals-apply-commands.mjs +135 -0
- package/cli/lib/skill-proposals-apply-contract.mjs +750 -0
- package/cli/lib/skill-proposals-apply-plan.mjs +118 -0
- package/cli/lib/skill-proposals-generate.mjs +298 -0
- package/cli/lib/skill-proposals-render.mjs +532 -0
- package/cli/lib/skill-proposals-review.mjs +262 -0
- package/cli/lib/skill-proposals.mjs +15 -2046
- package/cli/lib/workspace-args.mjs +83 -0
- package/cli/lib/workspace-git.mjs +169 -0
- package/cli/lib/workspace-learning.mjs +483 -0
- package/cli/lib/workspace-repo.mjs +139 -0
- package/cli/lib/workspace-report.mjs +283 -0
- package/cli/lib/workspace-test-support.mjs +99 -0
- package/cli/lib/workspace.mjs +30 -1056
- package/docs/AI-LEARNING-PHASE2.md +215 -0
- package/docs/DISTRIBUTION.ko.md +2 -2
- package/docs/DISTRIBUTION.md +2 -2
- package/docs/NEXT-SURFACE-DECISION.md +125 -0
- package/docs/PRODUCT-READINESS.md +3 -3
- package/docs/RELEASE-GATES.ko.md +35 -0
- package/docs/RELEASE-GATES.md +234 -0
- package/docs/ROADMAP.md +53 -8
- package/docs/external-status.md +6 -8
- package/docs/inspection-20260630.md +169 -0
- package/docs/integrations/design-ai-mcp-server.md +4 -4
- package/docs/reference/ant-design.md +413 -0
- package/docs/reference/awesome-design-md.md +439 -0
- package/docs/reference/mui.md +783 -0
- package/docs/reference/shadcn-ui.md +298 -0
- package/examples/component-accordion-actions.md +5 -5
- package/examples/component-accordion-details.md +5 -5
- package/examples/component-accordion-summary.md +5 -5
- package/examples/component-accordion.md +3 -3
- package/examples/component-affix.md +1 -1
- package/examples/component-alert-dialog.md +1 -1
- package/examples/component-alert-title.md +1 -1
- package/examples/component-alert.md +3 -3
- package/examples/component-anchor.md +1 -1
- package/examples/component-app-bar.md +1 -1
- package/examples/component-aspect-ratio.md +1 -1
- package/examples/component-auto-complete.md +2 -2
- package/examples/component-avatar-group.md +5 -5
- package/examples/component-avatar.md +3 -3
- package/examples/component-back-top.md +1 -1
- package/examples/component-backdrop.md +1 -1
- package/examples/component-badge.md +3 -3
- package/examples/component-border-beam.md +3 -3
- package/examples/component-bottom-navigation.md +1 -1
- package/examples/component-box.md +1 -1
- package/examples/component-breadcrumb.md +3 -3
- package/examples/component-button-base.md +3 -3
- package/examples/component-button-group.md +2 -2
- package/examples/component-button.md +3 -3
- package/examples/component-calendar.md +2 -2
- package/examples/component-card-actions.md +1 -1
- package/examples/component-card-content.md +1 -1
- package/examples/component-card-header.md +1 -1
- package/examples/component-card-media.md +1 -1
- package/examples/component-card.md +3 -3
- package/examples/component-carousel.md +2 -2
- package/examples/component-cascader.md +1 -1
- package/examples/component-chart.md +1 -1
- package/examples/component-checkbox.md +3 -3
- package/examples/component-click-away-listener.md +1 -1
- package/examples/component-code.md +1 -1
- package/examples/component-collapsible.md +1 -1
- package/examples/component-color-picker.md +1 -1
- package/examples/component-combobox.md +1 -1
- package/examples/component-command.md +1 -1
- package/examples/component-config-provider.md +3 -3
- package/examples/component-context-menu.md +1 -1
- package/examples/component-css-baseline.md +3 -3
- package/examples/component-date-picker.md +2 -2
- package/examples/component-descriptions.md +1 -1
- package/examples/component-dialog-actions.md +1 -1
- package/examples/component-dialog-content-text.md +1 -1
- package/examples/component-dialog-content.md +1 -1
- package/examples/component-dialog-title.md +1 -1
- package/examples/component-dialog.md +2 -2
- package/examples/component-divider.md +3 -3
- package/examples/component-drawer.md +3 -3
- package/examples/component-dropdown.md +3 -3
- package/examples/component-empty.md +2 -2
- package/examples/component-fade.md +1 -1
- package/examples/component-field.md +1 -1
- package/examples/component-filled-input.md +1 -1
- package/examples/component-flex.md +1 -1
- package/examples/component-float-button.md +2 -2
- package/examples/component-form-control-label.md +1 -1
- package/examples/component-form-control.md +1 -1
- package/examples/component-form-controls.md +1 -1
- package/examples/component-form-group.md +1 -1
- package/examples/component-form-helper-text.md +1 -1
- package/examples/component-form-label.md +1 -1
- package/examples/component-form.md +2 -2
- package/examples/component-grid.md +2 -2
- package/examples/component-grow.md +1 -1
- package/examples/component-hover-card.md +1 -1
- package/examples/component-icon-button.md +1 -1
- package/examples/component-icon.md +1 -1
- package/examples/component-image-list.md +1 -1
- package/examples/component-image.md +1 -1
- package/examples/component-input-adornment.md +1 -1
- package/examples/component-input-base.md +1 -1
- package/examples/component-input-number.md +1 -1
- package/examples/component-input-otp.md +2 -2
- package/examples/component-input.md +3 -3
- package/examples/component-item.md +1 -1
- package/examples/component-label.md +1 -1
- package/examples/component-layout.md +1 -1
- package/examples/component-link.md +1 -1
- package/examples/component-list-item-avatar.md +1 -1
- package/examples/component-list-item-button.md +1 -1
- package/examples/component-list-item-icon.md +1 -1
- package/examples/component-list-item-text.md +1 -1
- package/examples/component-list-item.md +1 -1
- package/examples/component-list-subheader.md +1 -1
- package/examples/component-list.md +2 -2
- package/examples/component-masonry.md +1 -1
- package/examples/component-mentions.md +1 -1
- package/examples/component-menu-item.md +1 -1
- package/examples/component-menu-list.md +1 -1
- package/examples/component-menu.md +1 -1
- package/examples/component-menubar.md +1 -1
- package/examples/component-message.md +1 -1
- package/examples/component-mobile-stepper.md +1 -1
- package/examples/component-modal.md +5 -5
- package/examples/component-navigation-menu.md +1 -1
- package/examples/component-notification.md +1 -1
- package/examples/component-outlined-input.md +1 -1
- package/examples/component-pagination.md +3 -3
- package/examples/component-paper.md +1 -1
- package/examples/component-popconfirm.md +1 -1
- package/examples/component-popover.md +3 -3
- package/examples/component-popper.md +1 -1
- package/examples/component-progress.md +2 -2
- package/examples/component-qr-code.md +1 -1
- package/examples/component-radio.md +3 -3
- package/examples/component-rate.md +2 -2
- package/examples/component-resizable.md +1 -1
- package/examples/component-result.md +1 -1
- package/examples/component-scroll-area.md +1 -1
- package/examples/component-segmented.md +3 -3
- package/examples/component-select.md +3 -3
- package/examples/component-separator.md +1 -1
- package/examples/component-sheet.md +1 -1
- package/examples/component-sidebar.md +1 -1
- package/examples/component-skeleton.md +3 -3
- package/examples/component-slide.md +1 -1
- package/examples/component-slider.md +3 -3
- package/examples/component-snackbar-content.md +1 -1
- package/examples/component-snackbar.md +1 -1
- package/examples/component-sonner.md +1 -1
- package/examples/component-space.md +1 -1
- package/examples/component-speed-dial-action.md +1 -1
- package/examples/component-speed-dial.md +1 -1
- package/examples/component-spin.md +2 -2
- package/examples/component-spinner.md +1 -1
- package/examples/component-splitter.md +2 -2
- package/examples/component-stack.md +1 -1
- package/examples/component-statistic.md +1 -1
- package/examples/component-step-button.md +4 -4
- package/examples/component-step-connector.md +4 -4
- package/examples/component-step-content.md +1 -1
- package/examples/component-step-icon.md +1 -1
- package/examples/component-step-label.md +1 -1
- package/examples/component-step.md +2 -2
- package/examples/component-steps.md +2 -2
- package/examples/component-swipeable-drawer.md +1 -1
- package/examples/component-switch.md +3 -3
- package/examples/component-tab-scroll-button.md +5 -5
- package/examples/component-tab.md +1 -1
- package/examples/component-table-body.md +1 -1
- package/examples/component-table-cell.md +1 -1
- package/examples/component-table-container.md +1 -1
- package/examples/component-table-footer.md +1 -1
- package/examples/component-table-head.md +1 -1
- package/examples/component-table-pagination.md +1 -1
- package/examples/component-table-row.md +1 -1
- package/examples/component-table-sort-label.md +1 -1
- package/examples/component-table.md +2 -2
- package/examples/component-tabs.md +3 -3
- package/examples/component-tag-badge.md +2 -2
- package/examples/component-tag.md +1 -1
- package/examples/component-textarea-autosize.md +1 -1
- package/examples/component-textarea.md +1 -1
- package/examples/component-time-picker.md +1 -1
- package/examples/component-timeline.md +1 -1
- package/examples/component-toast.md +4 -4
- package/examples/component-toggle-button.md +1 -1
- package/examples/component-toggle.md +1 -1
- package/examples/component-toolbar.md +1 -1
- package/examples/component-tooltip.md +3 -3
- package/examples/component-tour.md +1 -1
- package/examples/component-transfer.md +1 -1
- package/examples/component-tree-select.md +1 -1
- package/examples/component-tree.md +1 -1
- package/examples/component-typography.md +2 -2
- package/examples/component-upload.md +1 -1
- package/examples/component-watermark.md +1 -1
- package/examples/component-zoom.md +1 -1
- package/knowledge/COVERAGE.md +4 -3
- package/knowledge/components/INDEX.md +202 -202
- package/knowledge/patterns/brand-references.md +72 -72
- package/package.json +1 -1
- package/tools/audit/local-ci.py +16 -1
- package/tools/audit/package-smoke.py +611 -9
- package/tools/audit/registry-smoke.py +534 -0
- package/tools/audit/release-metadata.py +47 -1
- package/tools/audit/smoke_assertions.py +915 -13
- package/tools/migrations/refs-links-to-reference-pages.py +179 -0
|
@@ -162,8 +162,8 @@ When motion disabled: spinner is static. Provide a text label or different non-a
|
|
|
162
162
|
|
|
163
163
|
## References
|
|
164
164
|
|
|
165
|
-
- Ant Design: [`refs/ant-design/components/spin/`](../
|
|
166
|
-
- MUI: [`CircularProgress`](../
|
|
165
|
+
- Ant Design: [`refs/ant-design/components/spin/`](../docs/reference/ant-design.md#spin) — `Spin`. Standard spinner with `tip`, `delay`, `wrapperClassName`.
|
|
166
|
+
- MUI: [`CircularProgress`](../docs/reference/mui.md#circular-progress) (Material's equivalent). Same role.
|
|
167
167
|
- shadcn-ui: no built-in. Use Lucide's `Loader2` icon with CSS spin.
|
|
168
168
|
|
|
169
169
|
## Cross-reference
|
|
@@ -193,7 +193,7 @@ For longer waits, Korean: "잠시만 기다려 주세요...".
|
|
|
193
193
|
|
|
194
194
|
## References
|
|
195
195
|
|
|
196
|
-
- MUI: [`CircularProgress`](../
|
|
196
|
+
- MUI: [`CircularProgress`](../docs/reference/mui.md#circular-progress) (indeterminate variant)
|
|
197
197
|
- Patterns: standard SVG spinner
|
|
198
198
|
|
|
199
199
|
## Cross-reference
|
|
@@ -200,9 +200,9 @@ function CodeEditor() {
|
|
|
200
200
|
|
|
201
201
|
## References
|
|
202
202
|
|
|
203
|
-
- Ant Design: [`refs/ant-design/components/splitter/`](../
|
|
203
|
+
- Ant Design: [`refs/ant-design/components/splitter/`](../docs/reference/ant-design.md#splitter) — `Splitter` + `Splitter.Panel`. Modern Ant addition.
|
|
204
204
|
- MUI: no built-in. Use `react-resizable-panels` or `allotment`.
|
|
205
|
-
- shadcn-ui: [`resizable.tsx`](../
|
|
205
|
+
- shadcn-ui: [`resizable.tsx`](../docs/reference/shadcn-ui.md#resizable) — wraps `react-resizable-panels`. Cleanest impl.
|
|
206
206
|
|
|
207
207
|
## Cross-reference
|
|
208
208
|
|
|
@@ -265,7 +265,7 @@ For libraries: `react-sparklines`, `recharts` mini variant, or hand-roll an SVG.
|
|
|
265
265
|
|
|
266
266
|
## References
|
|
267
267
|
|
|
268
|
-
- Ant Design: [`refs/ant-design/components/statistic/`](../
|
|
268
|
+
- Ant Design: [`refs/ant-design/components/statistic/`](../docs/reference/ant-design.md#statistic) — `Statistic` + `Statistic.Countdown` (auto-counting). Solid baseline.
|
|
269
269
|
- MUI: no dedicated component — compose `<Card><CardContent><Typography variant="overline">label</Typography>...`.
|
|
270
270
|
- shadcn-ui: no built-in. Compose from `Card` + Tailwind.
|
|
271
271
|
|
|
@@ -144,10 +144,10 @@ Inherits button-like props from MUI `ButtonBase`. In MUI, `disabled` is controll
|
|
|
144
144
|
|
|
145
145
|
## References
|
|
146
146
|
|
|
147
|
-
- MUI direct source: [`refs/mui/packages/mui-material/src/StepButton/StepButton.d.ts`](../
|
|
148
|
-
- MUI implementation: [`refs/mui/packages/mui-material/src/StepButton/StepButton.js`](../
|
|
149
|
-
- MUI stepper docs/examples: [`refs/mui/docs/data/material/components/steppers/`](../
|
|
150
|
-
- Ant Design parent pattern: [`refs/ant-design/components/steps/`](../
|
|
147
|
+
- MUI direct source: [`refs/mui/packages/mui-material/src/StepButton/StepButton.d.ts`](../docs/reference/mui.md#step-button)
|
|
148
|
+
- MUI implementation: [`refs/mui/packages/mui-material/src/StepButton/StepButton.js`](../docs/reference/mui.md#step-button)
|
|
149
|
+
- MUI stepper docs/examples: [`refs/mui/docs/data/material/components/steppers/`](../docs/reference/mui.md)
|
|
150
|
+
- Ant Design parent pattern: [`refs/ant-design/components/steps/`](../docs/reference/ant-design.md#steps)
|
|
151
151
|
- Accessibility baseline: [`knowledge/a11y/keyboard-and-focus.md`](../knowledge/a11y/keyboard-and-focus.md)
|
|
152
152
|
|
|
153
153
|
## Cross-reference
|
|
@@ -144,10 +144,10 @@ function CheckoutConnector(props: StepConnectorProps) {
|
|
|
144
144
|
|
|
145
145
|
## References
|
|
146
146
|
|
|
147
|
-
- MUI direct source: [`refs/mui/packages/mui-material/src/StepConnector/StepConnector.d.ts`](../
|
|
148
|
-
- MUI implementation: [`refs/mui/packages/mui-material/src/StepConnector/StepConnector.js`](../
|
|
149
|
-
- MUI stepper docs/examples: [`refs/mui/docs/data/material/components/steppers/`](../
|
|
150
|
-
- Ant Design parent pattern: [`refs/ant-design/components/steps/`](../
|
|
147
|
+
- MUI direct source: [`refs/mui/packages/mui-material/src/StepConnector/StepConnector.d.ts`](../docs/reference/mui.md#step-connector)
|
|
148
|
+
- MUI implementation: [`refs/mui/packages/mui-material/src/StepConnector/StepConnector.js`](../docs/reference/mui.md#step-connector)
|
|
149
|
+
- MUI stepper docs/examples: [`refs/mui/docs/data/material/components/steppers/`](../docs/reference/mui.md)
|
|
150
|
+
- Ant Design parent pattern: [`refs/ant-design/components/steps/`](../docs/reference/ant-design.md#steps)
|
|
151
151
|
- Accessibility baseline: [`knowledge/a11y/keyboard-and-focus.md`](../knowledge/a11y/keyboard-and-focus.md)
|
|
152
152
|
|
|
153
153
|
## Cross-reference
|
|
@@ -76,8 +76,8 @@ This is handled by the parent `Steps` component, not Step itself.
|
|
|
76
76
|
|
|
77
77
|
## References
|
|
78
78
|
|
|
79
|
-
- MUI: [`Step`](../
|
|
80
|
-
- Ant: [`Steps`](../
|
|
79
|
+
- MUI: [`Step`](../docs/reference/mui.md#step)
|
|
80
|
+
- Ant: [`Steps`](../docs/reference/ant-design.md#steps) (parent)
|
|
81
81
|
|
|
82
82
|
## Cross-reference
|
|
83
83
|
|
|
@@ -247,8 +247,8 @@ For `n > 5` steps on mobile, **always switch to compact or text-only**.
|
|
|
247
247
|
|
|
248
248
|
## References
|
|
249
249
|
|
|
250
|
-
- Ant Design: [`refs/ant-design/components/steps/`](../
|
|
251
|
-
- MUI: [`refs/mui/packages/mui-material/src/Stepper/`](../
|
|
250
|
+
- Ant Design: [`refs/ant-design/components/steps/`](../docs/reference/ant-design.md#steps) — `Steps`, `Steps.Item`. Status, direction, size, progress dot variant. Most exhaustive.
|
|
251
|
+
- MUI: [`refs/mui/packages/mui-material/src/Stepper/`](../docs/reference/mui.md#stepper) — `Stepper`, `Step`, `StepLabel`, `StepContent`. Vertical with collapsible content per step is unique.
|
|
252
252
|
- shadcn-ui: no built-in — compose from primitives. The `progress` and custom layout get you 80% there.
|
|
253
253
|
|
|
254
254
|
API choices made:
|
|
@@ -139,7 +139,7 @@ function MobileApp() {
|
|
|
139
139
|
|
|
140
140
|
## References
|
|
141
141
|
|
|
142
|
-
- MUI: [`SwipeableDrawer`](../
|
|
142
|
+
- MUI: [`SwipeableDrawer`](../docs/reference/mui.md#swipeable-drawer)
|
|
143
143
|
- iOS native drawer pattern; Material 3 standard drawer
|
|
144
144
|
|
|
145
145
|
## Cross-reference
|
|
@@ -89,9 +89,9 @@ Touch target ≥ 44pt regardless via padding.
|
|
|
89
89
|
|
|
90
90
|
## References
|
|
91
91
|
|
|
92
|
-
- Ant: [`Switch`](../
|
|
93
|
-
- MUI: [`Switch`](../
|
|
94
|
-
- shadcn-ui: [`switch`](../
|
|
92
|
+
- Ant: [`Switch`](../docs/reference/ant-design.md#switch)
|
|
93
|
+
- MUI: [`Switch`](../docs/reference/mui.md#switch)
|
|
94
|
+
- shadcn-ui: [`switch`](../docs/reference/shadcn-ui.md#switch)
|
|
95
95
|
|
|
96
96
|
## Cross-reference
|
|
97
97
|
|
|
@@ -166,11 +166,11 @@ function ScrollableTabsHeader({ tabs, value, onValueChange }: Props) {
|
|
|
166
166
|
|
|
167
167
|
## References
|
|
168
168
|
|
|
169
|
-
- MUI direct source: [`refs/mui/packages/mui-material/src/TabScrollButton/TabScrollButton.d.ts`](../
|
|
170
|
-
- MUI implementation: [`refs/mui/packages/mui-material/src/TabScrollButton/TabScrollButton.js`](../
|
|
171
|
-
- MUI tabs source: [`refs/mui/packages/mui-material/src/Tabs/`](../
|
|
172
|
-
- Ant Design parent pattern: [`refs/ant-design/components/tabs/`](../
|
|
173
|
-
- shadcn-ui parent pattern: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/tabs.tsx`](../
|
|
169
|
+
- MUI direct source: [`refs/mui/packages/mui-material/src/TabScrollButton/TabScrollButton.d.ts`](../docs/reference/mui.md#tab-scroll-button)
|
|
170
|
+
- MUI implementation: [`refs/mui/packages/mui-material/src/TabScrollButton/TabScrollButton.js`](../docs/reference/mui.md#tab-scroll-button)
|
|
171
|
+
- MUI tabs source: [`refs/mui/packages/mui-material/src/Tabs/`](../docs/reference/mui.md#tabs)
|
|
172
|
+
- Ant Design parent pattern: [`refs/ant-design/components/tabs/`](../docs/reference/ant-design.md#tabs)
|
|
173
|
+
- shadcn-ui parent pattern: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/tabs.tsx`](../docs/reference/shadcn-ui.md#tabs)
|
|
174
174
|
- Accessibility baseline: [`knowledge/a11y/keyboard-and-focus.md`](../knowledge/a11y/keyboard-and-focus.md)
|
|
175
175
|
|
|
176
176
|
## Cross-reference
|
|
@@ -111,7 +111,7 @@ function AccountTabs() {
|
|
|
111
111
|
|
|
112
112
|
## References
|
|
113
113
|
|
|
114
|
-
- MUI: [`Tab`](../
|
|
114
|
+
- MUI: [`Tab`](../docs/reference/mui.md#tab) + [`Tabs`](../docs/reference/mui.md#tabs)
|
|
115
115
|
|
|
116
116
|
## Cross-reference
|
|
117
117
|
|
|
@@ -72,7 +72,7 @@ Renders `<tbody>` — semantic role for table body comes for free. No additional
|
|
|
72
72
|
|
|
73
73
|
## References
|
|
74
74
|
|
|
75
|
-
- MUI: [`TableBody`](../
|
|
75
|
+
- MUI: [`TableBody`](../docs/reference/mui.md#table-body)
|
|
76
76
|
|
|
77
77
|
## Cross-reference
|
|
78
78
|
|
|
@@ -101,7 +101,7 @@ function SortableHeader({ orderBy, order, onSort }) {
|
|
|
101
101
|
|
|
102
102
|
## References
|
|
103
103
|
|
|
104
|
-
- MUI: [`TableSortLabel`](../
|
|
104
|
+
- MUI: [`TableSortLabel`](../docs/reference/mui.md#table-sort-label)
|
|
105
105
|
|
|
106
106
|
## Cross-reference
|
|
107
107
|
|
|
@@ -186,9 +186,9 @@ Pick #1 for product UIs, #2 for power-user data tools.
|
|
|
186
186
|
|
|
187
187
|
## References
|
|
188
188
|
|
|
189
|
-
- Ant Design: [`refs/ant-design/components/table/`](../
|
|
189
|
+
- Ant Design: [`refs/ant-design/components/table/`](../docs/reference/ant-design.md#table) — most exhaustive: tree data, expandable rows, virtual scroll, drag-drop column reorder, fixed headers/columns. Heavy but production-grade.
|
|
190
190
|
- MUI: `<Table>` (basic) and `<DataGrid>` (heavy, paid for some features). DataGrid has best DX for filtering/sorting but is a large dep.
|
|
191
|
-
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/table.tsx`](../
|
|
191
|
+
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/table.tsx`](../docs/reference/shadcn-ui.md#table) — primitives only (`<Table>`, `<TableHeader>`, etc.). Pair with TanStack Table for behavior. **Recommended modern pattern.**
|
|
192
192
|
|
|
193
193
|
API choices made:
|
|
194
194
|
- **TanStack Table as the engine** — headless, framework-agnostic, free, mature. Don't reinvent.
|
|
@@ -168,9 +168,9 @@ Critical contract — get this exactly right:
|
|
|
168
168
|
|
|
169
169
|
## References
|
|
170
170
|
|
|
171
|
-
- Ant Design: [`refs/ant-design/components/tabs/`](../
|
|
172
|
-
- MUI: [`refs/mui/packages/mui-material/src/Tabs/`](../
|
|
173
|
-
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/tabs.tsx`](../
|
|
171
|
+
- Ant Design: [`refs/ant-design/components/tabs/`](../docs/reference/ant-design.md#tabs) — `Tabs`, `Tabs.TabPane`, supports `card`/`line`/`editable-card` variants. Most variants out of the box.
|
|
172
|
+
- MUI: [`refs/mui/packages/mui-material/src/Tabs/`](../docs/reference/mui.md#tabs) — `Tabs` + `Tab` + `TabPanel` (separately). MUI has good `scrollable` props.
|
|
173
|
+
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/tabs.tsx`](../docs/reference/shadcn-ui.md#tabs) — Radix Tabs primitive. Cleanest a11y. **Default for new projects.**
|
|
174
174
|
|
|
175
175
|
API choices made:
|
|
176
176
|
- **Composition with `Tabs.Trigger` / `Tabs.Content`** matching value strings — Radix pattern, lowest surface area.
|
|
@@ -291,9 +291,9 @@ Use `offset` to fine-tune (badges often need -4px / -4px to overlap nicely).
|
|
|
291
291
|
|
|
292
292
|
## References
|
|
293
293
|
|
|
294
|
-
- Ant Design: [`refs/ant-design/components/tag/`](../
|
|
294
|
+
- Ant Design: [`refs/ant-design/components/tag/`](../docs/reference/ant-design.md#tag) (Tag) + [`refs/ant-design/components/badge/`](../docs/reference/ant-design.md#badge) (Badge). Both well-developed; Tag has `Tag.CheckableTag` for filter-style.
|
|
295
295
|
- MUI: `Chip` (closest to Tag) + `Badge`. MUI Chip has `clickable`, `deletable`, `avatar` slot — most flexible.
|
|
296
|
-
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/badge.tsx`](../
|
|
296
|
+
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/badge.tsx`](../docs/reference/shadcn-ui.md#badge) — minimal Tag-equivalent. shadcn doesn't have a separate Tag/Badge distinction; user composes.
|
|
297
297
|
|
|
298
298
|
API choices made:
|
|
299
299
|
- **Tag and Badge as separate components**: matches Ant + MUI; clearer than a single "Pill" with a `mode` flag.
|
|
@@ -105,7 +105,7 @@ function ChatInput() {
|
|
|
105
105
|
|
|
106
106
|
## References
|
|
107
107
|
|
|
108
|
-
- MUI: [`TextareaAutosize`](../
|
|
108
|
+
- MUI: [`TextareaAutosize`](../docs/reference/mui.md#textarea-autosize)
|
|
109
109
|
- CSS `field-sizing` property (Working Draft)
|
|
110
110
|
|
|
111
111
|
## Cross-reference
|
|
@@ -163,7 +163,7 @@ Critical for Hangul input — composition events span multiple keystrokes.
|
|
|
163
163
|
## References
|
|
164
164
|
|
|
165
165
|
- HTML5 `<textarea>`
|
|
166
|
-
- shadcn-ui: [`textarea`](../
|
|
166
|
+
- shadcn-ui: [`textarea`](../docs/reference/shadcn-ui.md#textarea)
|
|
167
167
|
- MUI: TextareaAutosize
|
|
168
168
|
|
|
169
169
|
## Cross-reference
|
|
@@ -195,7 +195,7 @@ function AppointmentBooking() {
|
|
|
195
195
|
|
|
196
196
|
## References
|
|
197
197
|
|
|
198
|
-
- Ant: [`TimePicker`](../
|
|
198
|
+
- Ant: [`TimePicker`](../docs/reference/ant-design.md#time-picker)
|
|
199
199
|
- MUI: `TimePicker` (in @mui/x-date-pickers)
|
|
200
200
|
- HTML5: `<input type="time">` (limited but accessible default)
|
|
201
201
|
|
|
@@ -160,7 +160,7 @@ Status terms:
|
|
|
160
160
|
|
|
161
161
|
## References
|
|
162
162
|
|
|
163
|
-
- Ant Design: [`refs/ant-design/components/timeline/`](../
|
|
163
|
+
- Ant Design: [`refs/ant-design/components/timeline/`](../docs/reference/ant-design.md#timeline) — `Timeline` with modes, custom icons, color overrides.
|
|
164
164
|
- MUI: `@mui/lab` `Timeline` (separate package) — alternate mode well-supported.
|
|
165
165
|
- shadcn-ui: no built-in. Compose from primitives.
|
|
166
166
|
|
|
@@ -206,10 +206,10 @@ upload().then(
|
|
|
206
206
|
## References
|
|
207
207
|
|
|
208
208
|
- Ant Design:
|
|
209
|
-
- [`refs/ant-design/components/message/`](../
|
|
210
|
-
- [`refs/ant-design/components/notification/`](../
|
|
211
|
-
- MUI: [`refs/mui/packages/mui-material/src/Snackbar/Snackbar.tsx`](../
|
|
212
|
-
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/sonner.tsx`](../
|
|
209
|
+
- [`refs/ant-design/components/message/`](../docs/reference/ant-design.md#message) — single-line transient messages (closest to "toast").
|
|
210
|
+
- [`refs/ant-design/components/notification/`](../docs/reference/ant-design.md#notification) — multi-line, with title and description (closest to this spec's full toast). Ant separates these by line count — most other systems combine.
|
|
211
|
+
- MUI: [`refs/mui/packages/mui-material/src/Snackbar/Snackbar.tsx`](../docs/reference/mui.md#snackbar) — composition-style React component. The least ergonomic of the three for the imperative pattern; pair with `useSnackbar` hook from notistack or build a custom queue.
|
|
212
|
+
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/sonner.tsx`](../docs/reference/shadcn-ui.md#sonner) — wraps `sonner` library. Sonner is the modern de-facto standard; its API (this spec mirrors it) is the cleanest of the three.
|
|
213
213
|
|
|
214
214
|
API choices made:
|
|
215
215
|
- **Imperative API as primary** (`toast.success(...)`) — matches user mental model. Composition (`<Toast>` JSX) is rejected — toasts come from any code path, not from render.
|
|
@@ -120,7 +120,7 @@ function TextStyleToolbar({ formats, onChange }) {
|
|
|
120
120
|
|
|
121
121
|
## References
|
|
122
122
|
|
|
123
|
-
- MUI: [`ToggleButton`](../
|
|
123
|
+
- MUI: [`ToggleButton`](../docs/reference/mui.md#toggle-button) + [`ToggleButtonGroup`](../docs/reference/mui.md#toggle-button-group)
|
|
124
124
|
|
|
125
125
|
## Cross-reference
|
|
126
126
|
|
|
@@ -210,7 +210,7 @@ Pretendard for label / Korean text in `aria-label`.
|
|
|
210
210
|
|
|
211
211
|
## References
|
|
212
212
|
|
|
213
|
-
- shadcn-ui: [`toggle`](../
|
|
213
|
+
- shadcn-ui: [`toggle`](../docs/reference/shadcn-ui.md#toggle), [`toggle-group`](../docs/reference/shadcn-ui.md#toggle-group) (Radix)
|
|
214
214
|
- WAI-ARIA: [Toggle button](https://www.w3.org/WAI/ARIA/apg/patterns/button/) + [Radio group](https://www.w3.org/WAI/ARIA/apg/patterns/radio/)
|
|
215
215
|
|
|
216
216
|
## Cross-reference
|
|
@@ -94,7 +94,7 @@ Stateless. Children carry their own states.
|
|
|
94
94
|
|
|
95
95
|
## References
|
|
96
96
|
|
|
97
|
-
- MUI: [`Toolbar`](../
|
|
97
|
+
- MUI: [`Toolbar`](../docs/reference/mui.md#toolbar)
|
|
98
98
|
- WAI-ARIA: [Toolbar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/)
|
|
99
99
|
|
|
100
100
|
## Cross-reference
|
|
@@ -168,9 +168,9 @@ The native `title` attribute does NOT meet a11y requirements:
|
|
|
168
168
|
|
|
169
169
|
## References
|
|
170
170
|
|
|
171
|
-
- Ant Design: [`refs/ant-design/components/tooltip/`](../
|
|
172
|
-
- MUI: [`refs/mui/packages/mui-material/src/Tooltip/`](../
|
|
173
|
-
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/tooltip.tsx`](../
|
|
171
|
+
- Ant Design: [`refs/ant-design/components/tooltip/`](../docs/reference/ant-design.md#tooltip) — `Tooltip` with rich placement options (12 directions). `mouseEnterDelay` / `mouseLeaveDelay` props.
|
|
172
|
+
- MUI: [`refs/mui/packages/mui-material/src/Tooltip/`](../docs/reference/mui.md#tooltip) — `Tooltip` with `placement`, `enterDelay`, `leaveDelay`, `arrow`. Solid implementation.
|
|
173
|
+
- shadcn-ui: [`refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/tooltip.tsx`](../docs/reference/shadcn-ui.md#tooltip) — Radix Tooltip primitive. **Default — best a11y of the three.**
|
|
174
174
|
|
|
175
175
|
## Cross-reference
|
|
176
176
|
|
|
@@ -165,7 +165,7 @@ If selector doesn't match (e.g., conditional UI not rendered), skip the step or
|
|
|
165
165
|
|
|
166
166
|
## References
|
|
167
167
|
|
|
168
|
-
- Ant Design: [`refs/ant-design/components/tour/`](../
|
|
168
|
+
- Ant Design: [`refs/ant-design/components/tour/`](../docs/reference/ant-design.md#tour) — `Tour` with steps, target refs, custom rendering. Modern Ant addition.
|
|
169
169
|
- MUI: no built-in. Use libraries like `react-joyride` or `intro.js`.
|
|
170
170
|
- shadcn-ui: no built-in. Compose with Popover + custom backdrop.
|
|
171
171
|
|
|
@@ -146,7 +146,7 @@ Or a simpler "tap to toggle" pattern:
|
|
|
146
146
|
|
|
147
147
|
## References
|
|
148
148
|
|
|
149
|
-
- Ant Design: [`refs/ant-design/components/transfer/`](../
|
|
149
|
+
- Ant Design: [`refs/ant-design/components/transfer/`](../docs/reference/ant-design.md#transfer) — `Transfer`. Most exhaustive; supports tree-like (`Transfer.TableTransfer`).
|
|
150
150
|
- MUI / shadcn-ui: no built-in.
|
|
151
151
|
|
|
152
152
|
## Cross-reference
|
|
@@ -191,7 +191,7 @@ function DepartmentSelect() {
|
|
|
191
191
|
|
|
192
192
|
## References
|
|
193
193
|
|
|
194
|
-
- Ant: [`TreeSelect`](../
|
|
194
|
+
- Ant: [`TreeSelect`](../docs/reference/ant-design.md#tree-select)
|
|
195
195
|
- WAI-ARIA: [Tree pattern](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/)
|
|
196
196
|
|
|
197
197
|
## Cross-reference
|
|
@@ -281,7 +281,7 @@ Announce on movement:
|
|
|
281
281
|
|
|
282
282
|
## References
|
|
283
283
|
|
|
284
|
-
- Ant Design: [`refs/ant-design/components/tree/`](../
|
|
284
|
+
- Ant Design: [`refs/ant-design/components/tree/`](../docs/reference/ant-design.md#tree) — `Tree` with `Tree.DirectoryTree` for file-style. Most exhaustive (drag-drop, async, search, virtual). Heavy.
|
|
285
285
|
- MUI: `@mui/x-tree-view` (separate package) — `RichTreeView` (declarative), `SimpleTreeView` (composition). Excellent a11y.
|
|
286
286
|
- shadcn-ui: no built-in. Compose from primitives + headless library (react-arborist or @aria-tree).
|
|
287
287
|
|
|
@@ -202,8 +202,8 @@ For **Ant Design / MUI projects**: Typography is canonical; use it.
|
|
|
202
202
|
|
|
203
203
|
## References
|
|
204
204
|
|
|
205
|
-
- Ant Design: [`refs/ant-design/components/typography/`](../
|
|
206
|
-
- MUI: [`refs/mui/packages/mui-material/src/Typography/`](../
|
|
205
|
+
- Ant Design: [`refs/ant-design/components/typography/`](../docs/reference/ant-design.md#typography) — `Typography`, `Typography.Title`, `Typography.Text`, `Typography.Paragraph`. Most exhaustive: copyable, ellipsis with tooltip, editable.
|
|
206
|
+
- MUI: [`refs/mui/packages/mui-material/src/Typography/`](../docs/reference/mui.md#typography) — `Typography` with variants matching Material 3 (display, headline, title, body, label).
|
|
207
207
|
- shadcn-ui: no Typography component. Apply utility classes directly.
|
|
208
208
|
|
|
209
209
|
## Cross-reference
|
|
@@ -278,7 +278,7 @@ Profile photo replacement. Click opens picker; uploaded file replaces avatar.
|
|
|
278
278
|
|
|
279
279
|
## References
|
|
280
280
|
|
|
281
|
-
- Ant Design: [`refs/ant-design/components/upload/`](../
|
|
281
|
+
- Ant Design: [`refs/ant-design/components/upload/`](../docs/reference/ant-design.md#upload) — `Upload` with `Upload.Dragger` (drop zone), file list, multiple modes. Most exhaustive.
|
|
282
282
|
- MUI: no dedicated component. Compose `<input type="file">` with custom button.
|
|
283
283
|
- shadcn-ui: no built-in. Compose with file input + drop-zone library (e.g., `react-dropzone`).
|
|
284
284
|
|
|
@@ -208,7 +208,7 @@ Watermark with the **viewer's name + date** discourages internal screenshot-leak
|
|
|
208
208
|
|
|
209
209
|
## References
|
|
210
210
|
|
|
211
|
-
- Ant Design: [`refs/ant-design/components/watermark/`](../
|
|
211
|
+
- Ant Design: [`refs/ant-design/components/watermark/`](../docs/reference/ant-design.md#watermark) — `Watermark`. Modern Ant addition with comprehensive options.
|
|
212
212
|
- MUI / shadcn-ui: no built-in. Compose with CSS or canvas.
|
|
213
213
|
|
|
214
214
|
## Cross-reference
|
package/knowledge/COVERAGE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- generated by tools/audit/check-coverage.py — do not hand-edit -->
|
|
2
2
|
---
|
|
3
3
|
title: Design-AI coverage report
|
|
4
|
-
generated_at: 2026-
|
|
4
|
+
generated_at: 2026-07-03
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Coverage report
|
|
@@ -15,7 +15,7 @@ generated_at: 2026-05-29
|
|
|
15
15
|
| Knowledge files | 92 | 77 hand-written + 15 generated |
|
|
16
16
|
| Skills (PLAYBOOK + SKILL) | 20 | 20 with verification phase |
|
|
17
17
|
| Worked examples | 221 | |
|
|
18
|
-
| Extractors |
|
|
18
|
+
| Extractors | 12 | |
|
|
19
19
|
| Canonical components | 200 | indexed across Ant / MUI / shadcn |
|
|
20
20
|
| Components with worked spec | 181 | **90.5% spec coverage** (16 via parent/alias specs) |
|
|
21
21
|
|
|
@@ -49,7 +49,7 @@ generated_at: 2026-05-29
|
|
|
49
49
|
|
|
50
50
|
| File | Lines | Type | Title |
|
|
51
51
|
| --- | --- | --- | --- |
|
|
52
|
-
| [knowledge/COVERAGE.md](../knowledge/COVERAGE.md) |
|
|
52
|
+
| [knowledge/COVERAGE.md](../knowledge/COVERAGE.md) | 741 | generated | Coverage report |
|
|
53
53
|
| [knowledge/PRINCIPLES.md](../knowledge/PRINCIPLES.md) | 108 | hand-written | Design-AI principles |
|
|
54
54
|
|
|
55
55
|
#### a11y
|
|
@@ -729,6 +729,7 @@ Specs that don't match the canonical index and are not used as coverage aliases:
|
|
|
729
729
|
- `tools/extractors/component_spec_scaffold.py`
|
|
730
730
|
- `tools/extractors/component_spec_scaffold_v2.py`
|
|
731
731
|
- `tools/extractors/mui_palette.py`
|
|
732
|
+
- `tools/extractors/reference_pages.py`
|
|
732
733
|
- `tools/extractors/shadcn_registry.py`
|
|
733
734
|
- `tools/extractors/ui_ux_pro_max.py`
|
|
734
735
|
- `tools/extractors/ui_ux_pro_max_extras.py`
|