tembro 1.0.3 → 2.0.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/README.md +2 -2
- package/dist/components/display/smart-card.d.ts +8 -8
- package/dist/components/patterns/index.cjs +1 -1
- package/dist/components/patterns/index.js +4 -4
- package/dist/components/patterns/public.cjs +1 -1
- package/dist/components/patterns/public.js +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +19 -38
- package/dist/showcase/index.cjs +1 -1
- package/dist/showcase/index.d.ts +0 -1
- package/dist/showcase/index.js +36 -38
- package/dist/showcase/package-meta.cjs +1 -1
- package/dist/showcase/package-meta.d.ts +2 -2
- package/dist/showcase/package-meta.js +1 -1
- package/dist/showcase/premium/accordion/mock.cjs +4 -4
- package/dist/showcase/premium/accordion/mock.js +1 -1
- package/dist/showcase/{families/data-table/types.d.ts → premium/data-table-parts/data.d.ts} +4 -0
- package/dist/showcase/{families/data-table → premium/data-table-parts}/data.js +1 -1
- package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
- package/dist/showcase/premium/data-table-parts/showcase.js +1 -1
- package/dist/showcase/site-data.cjs +1 -1
- package/dist/showcase/site-data.d.ts +6 -6
- package/dist/showcase/site-data.js +414 -451
- package/dist/showcase/tembro-registry.json.cjs +1 -1
- package/dist/showcase/tembro-registry.json.js +1 -1
- package/package.json +2 -13
- package/packages/cli/dist/index.cjs +17 -17
- package/packages/cli/vendor/src/components/display/smart-card.tsx +8 -8
- package/packages/cli/vendor/src/index.ts +3 -4
- package/packages/cli/vendor/src/showcase/index.ts +5 -6
- package/packages/cli/vendor/src/showcase/package-meta.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/accordion/mock.ts +4 -4
- package/packages/cli/vendor/src/showcase/{families/data-table → premium/data-table-parts}/data.ts +25 -1
- package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +1 -2
- package/packages/cli/vendor/src/showcase/site-data.tsx +151 -216
- package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
- package/registry.json +1 -1
- package/dist/families/badge-family.cjs +0 -1
- package/dist/families/badge-family.d.ts +0 -5
- package/dist/families/badge-family.js +0 -5
- package/dist/families/card-family.cjs +0 -1
- package/dist/families/card-family.d.ts +0 -16
- package/dist/families/card-family.js +0 -21
- package/dist/families/catalog.cjs +0 -1
- package/dist/families/catalog.d.ts +0 -11
- package/dist/families/catalog.js +0 -140
- package/dist/families/data-table-family.cjs +0 -1
- package/dist/families/data-table-family.d.ts +0 -18
- package/dist/families/data-table-family.js +0 -29
- package/dist/families/docs-adoption.cjs +0 -1
- package/dist/families/docs-adoption.d.ts +0 -16
- package/dist/families/docs-adoption.js +0 -53
- package/dist/families/docs-groups.cjs +0 -1
- package/dist/families/docs-groups.d.ts +0 -18
- package/dist/families/docs-groups.js +0 -262
- package/dist/families/docs-queries.cjs +0 -1
- package/dist/families/docs-queries.d.ts +0 -37
- package/dist/families/docs-queries.js +0 -50
- package/dist/families/docs-routing.cjs +0 -1
- package/dist/families/docs-routing.d.ts +0 -17
- package/dist/families/docs-routing.js +0 -49
- package/dist/families/form-family.cjs +0 -1
- package/dist/families/form-family.d.ts +0 -20
- package/dist/families/form-family.js +0 -35
- package/dist/families/index.cjs +0 -1
- package/dist/families/index.d.ts +0 -19
- package/dist/families/index.js +0 -20
- package/dist/families/input-family.cjs +0 -1
- package/dist/families/input-family.d.ts +0 -32
- package/dist/families/input-family.js +0 -56
- package/dist/families/member-metadata.cjs +0 -1
- package/dist/families/member-metadata.d.ts +0 -11
- package/dist/families/member-metadata.js +0 -1013
- package/dist/families/member-queries.cjs +0 -1
- package/dist/families/member-queries.d.ts +0 -6
- package/dist/families/member-queries.js +0 -14
- package/dist/families/member-snippet-queries.cjs +0 -1
- package/dist/families/member-snippet-queries.d.ts +0 -8
- package/dist/families/member-snippet-queries.js +0 -30
- package/dist/families/member-snippets.cjs +0 -484
- package/dist/families/member-snippets.d.ts +0 -11
- package/dist/families/member-snippets.js +0 -1061
- package/dist/families/migration-map.cjs +0 -1
- package/dist/families/migration-map.d.ts +0 -10
- package/dist/families/migration-map.js +0 -787
- package/dist/families/overlay-family.cjs +0 -1
- package/dist/families/overlay-family.d.ts +0 -22
- package/dist/families/overlay-family.js +0 -29
- package/dist/families/public-surface-rationalization.cjs +0 -1
- package/dist/families/public-surface-rationalization.d.ts +0 -169
- package/dist/families/public-surface-rationalization.js +0 -296
- package/dist/families/queries.cjs +0 -1
- package/dist/families/queries.d.ts +0 -12
- package/dist/families/queries.js +0 -162
- package/dist/families/select-family.cjs +0 -1
- package/dist/families/select-family.d.ts +0 -22
- package/dist/families/select-family.js +0 -27
- package/dist/families/views.cjs +0 -1
- package/dist/families/views.d.ts +0 -26
- package/dist/families/views.js +0 -45
- package/dist/showcase/families/actions/index.cjs +0 -1
- package/dist/showcase/families/actions/index.d.ts +0 -2
- package/dist/showcase/families/actions/index.js +0 -3
- package/dist/showcase/families/actions/mock.cjs +0 -5
- package/dist/showcase/families/actions/mock.d.ts +0 -2
- package/dist/showcase/families/actions/mock.js +0 -40
- package/dist/showcase/families/actions/showcase.cjs +0 -1
- package/dist/showcase/families/actions/showcase.d.ts +0 -2
- package/dist/showcase/families/actions/showcase.js +0 -53
- package/dist/showcase/families/calendar/index.cjs +0 -1
- package/dist/showcase/families/calendar/index.d.ts +0 -2
- package/dist/showcase/families/calendar/index.js +0 -3
- package/dist/showcase/families/calendar/mock.cjs +0 -5
- package/dist/showcase/families/calendar/mock.d.ts +0 -2
- package/dist/showcase/families/calendar/mock.js +0 -40
- package/dist/showcase/families/calendar/showcase.cjs +0 -1
- package/dist/showcase/families/calendar/showcase.d.ts +0 -2
- package/dist/showcase/families/calendar/showcase.js +0 -60
- package/dist/showcase/families/command/index.cjs +0 -1
- package/dist/showcase/families/command/index.d.ts +0 -2
- package/dist/showcase/families/command/index.js +0 -3
- package/dist/showcase/families/command/mock.cjs +0 -5
- package/dist/showcase/families/command/mock.d.ts +0 -2
- package/dist/showcase/families/command/mock.js +0 -40
- package/dist/showcase/families/command/showcase.cjs +0 -1
- package/dist/showcase/families/command/showcase.d.ts +0 -2
- package/dist/showcase/families/command/showcase.js +0 -40
- package/dist/showcase/families/data-table/data.d.ts +0 -5
- package/dist/showcase/families/data-table/index.cjs +0 -1
- package/dist/showcase/families/data-table/index.d.ts +0 -4
- package/dist/showcase/families/data-table/index.js +0 -4
- package/dist/showcase/families/data-table/mock.cjs +0 -24
- package/dist/showcase/families/data-table/mock.d.ts +0 -2
- package/dist/showcase/families/data-table/mock.js +0 -48
- package/dist/showcase/families/data-table/showcase.cjs +0 -1
- package/dist/showcase/families/data-table/showcase.d.ts +0 -3
- package/dist/showcase/families/data-table/showcase.js +0 -751
- package/dist/showcase/families/data-table/types.cjs +0 -1
- package/dist/showcase/families/data-table/types.js +0 -0
- package/dist/showcase/families/display/data.cjs +0 -1
- package/dist/showcase/families/display/data.d.ts +0 -6
- package/dist/showcase/families/display/data.js +0 -24
- package/dist/showcase/families/display/index.cjs +0 -1
- package/dist/showcase/families/display/index.d.ts +0 -2
- package/dist/showcase/families/display/index.js +0 -3
- package/dist/showcase/families/display/mock.cjs +0 -5
- package/dist/showcase/families/display/mock.d.ts +0 -2
- package/dist/showcase/families/display/mock.js +0 -40
- package/dist/showcase/families/display/showcase.cjs +0 -1
- package/dist/showcase/families/display/showcase.d.ts +0 -2
- package/dist/showcase/families/display/showcase.js +0 -201
- package/dist/showcase/families/filters/data.cjs +0 -1
- package/dist/showcase/families/filters/data.d.ts +0 -31
- package/dist/showcase/families/filters/data.js +0 -61
- package/dist/showcase/families/filters/index.cjs +0 -1
- package/dist/showcase/families/filters/index.d.ts +0 -2
- package/dist/showcase/families/filters/index.js +0 -3
- package/dist/showcase/families/filters/mock.cjs +0 -5
- package/dist/showcase/families/filters/mock.d.ts +0 -2
- package/dist/showcase/families/filters/mock.js +0 -40
- package/dist/showcase/families/filters/showcase.cjs +0 -1
- package/dist/showcase/families/filters/showcase.d.ts +0 -3
- package/dist/showcase/families/filters/showcase.js +0 -213
- package/dist/showcase/families/form/data.cjs +0 -1
- package/dist/showcase/families/form/data.d.ts +0 -22
- package/dist/showcase/families/form/data.js +0 -53
- package/dist/showcase/families/form/index.cjs +0 -1
- package/dist/showcase/families/form/index.d.ts +0 -4
- package/dist/showcase/families/form/index.js +0 -4
- package/dist/showcase/families/form/mock.cjs +0 -12
- package/dist/showcase/families/form/mock.d.ts +0 -2
- package/dist/showcase/families/form/mock.js +0 -40
- package/dist/showcase/families/form/showcase.cjs +0 -1
- package/dist/showcase/families/form/showcase.d.ts +0 -3
- package/dist/showcase/families/form/showcase.js +0 -318
- package/dist/showcase/families/form/types.cjs +0 -1
- package/dist/showcase/families/form/types.d.ts +0 -9
- package/dist/showcase/families/form/types.js +0 -0
- package/dist/showcase/families/index.cjs +0 -1
- package/dist/showcase/families/index.d.ts +0 -3
- package/dist/showcase/families/index.js +0 -96
- package/dist/showcase/families/inputs/data.cjs +0 -1
- package/dist/showcase/families/inputs/data.d.ts +0 -24
- package/dist/showcase/families/inputs/data.js +0 -90
- package/dist/showcase/families/inputs/index.cjs +0 -1
- package/dist/showcase/families/inputs/index.d.ts +0 -2
- package/dist/showcase/families/inputs/index.js +0 -3
- package/dist/showcase/families/inputs/mock.cjs +0 -5
- package/dist/showcase/families/inputs/mock.d.ts +0 -2
- package/dist/showcase/families/inputs/mock.js +0 -40
- package/dist/showcase/families/inputs/showcase.cjs +0 -1
- package/dist/showcase/families/inputs/showcase.d.ts +0 -3
- package/dist/showcase/families/inputs/showcase.js +0 -404
- package/dist/showcase/families/layout/index.cjs +0 -1
- package/dist/showcase/families/layout/index.d.ts +0 -2
- package/dist/showcase/families/layout/index.js +0 -3
- package/dist/showcase/families/layout/mock.cjs +0 -5
- package/dist/showcase/families/layout/mock.d.ts +0 -2
- package/dist/showcase/families/layout/mock.js +0 -40
- package/dist/showcase/families/layout/showcase.cjs +0 -1
- package/dist/showcase/families/layout/showcase.d.ts +0 -2
- package/dist/showcase/families/layout/showcase.js +0 -88
- package/dist/showcase/families/navigation/index.cjs +0 -1
- package/dist/showcase/families/navigation/index.d.ts +0 -2
- package/dist/showcase/families/navigation/index.js +0 -3
- package/dist/showcase/families/navigation/mock.cjs +0 -5
- package/dist/showcase/families/navigation/mock.d.ts +0 -2
- package/dist/showcase/families/navigation/mock.js +0 -40
- package/dist/showcase/families/navigation/showcase.cjs +0 -1
- package/dist/showcase/families/navigation/showcase.d.ts +0 -2
- package/dist/showcase/families/navigation/showcase.js +0 -49
- package/dist/showcase/families/notifications/index.cjs +0 -1
- package/dist/showcase/families/notifications/index.d.ts +0 -2
- package/dist/showcase/families/notifications/index.js +0 -3
- package/dist/showcase/families/notifications/mock.cjs +0 -5
- package/dist/showcase/families/notifications/mock.d.ts +0 -2
- package/dist/showcase/families/notifications/mock.js +0 -40
- package/dist/showcase/families/notifications/showcase.cjs +0 -1
- package/dist/showcase/families/notifications/showcase.d.ts +0 -1
- package/dist/showcase/families/notifications/showcase.js +0 -50
- package/dist/showcase/families/overlay/index.cjs +0 -1
- package/dist/showcase/families/overlay/index.d.ts +0 -2
- package/dist/showcase/families/overlay/index.js +0 -3
- package/dist/showcase/families/overlay/mock.cjs +0 -5
- package/dist/showcase/families/overlay/mock.d.ts +0 -2
- package/dist/showcase/families/overlay/mock.js +0 -40
- package/dist/showcase/families/overlay/showcase.cjs +0 -1
- package/dist/showcase/families/overlay/showcase.d.ts +0 -1
- package/dist/showcase/families/overlay/showcase.js +0 -38
- package/dist/showcase/families/patterns/index.cjs +0 -1
- package/dist/showcase/families/patterns/index.d.ts +0 -2
- package/dist/showcase/families/patterns/index.js +0 -3
- package/dist/showcase/families/patterns/mock.cjs +0 -5
- package/dist/showcase/families/patterns/mock.d.ts +0 -2
- package/dist/showcase/families/patterns/mock.js +0 -40
- package/dist/showcase/families/patterns/showcase.cjs +0 -1
- package/dist/showcase/families/patterns/showcase.d.ts +0 -1
- package/dist/showcase/families/patterns/showcase.js +0 -38
- package/dist/showcase/families/types.cjs +0 -1
- package/dist/showcase/families/types.d.ts +0 -29
- package/dist/showcase/families/types.js +0 -10
- package/dist/showcase/families/upload/data.cjs +0 -1
- package/dist/showcase/families/upload/data.d.ts +0 -1
- package/dist/showcase/families/upload/data.js +0 -10
- package/dist/showcase/families/upload/index.cjs +0 -1
- package/dist/showcase/families/upload/index.d.ts +0 -2
- package/dist/showcase/families/upload/index.js +0 -3
- package/dist/showcase/families/upload/mock.cjs +0 -5
- package/dist/showcase/families/upload/mock.d.ts +0 -2
- package/dist/showcase/families/upload/mock.js +0 -40
- package/dist/showcase/families/upload/showcase.cjs +0 -1
- package/dist/showcase/families/upload/showcase.d.ts +0 -3
- package/dist/showcase/families/upload/showcase.js +0 -133
- package/dist/showcase/families/wizard/index.cjs +0 -1
- package/dist/showcase/families/wizard/index.d.ts +0 -2
- package/dist/showcase/families/wizard/index.js +0 -3
- package/dist/showcase/families/wizard/mock.cjs +0 -5
- package/dist/showcase/families/wizard/mock.d.ts +0 -2
- package/dist/showcase/families/wizard/mock.js +0 -40
- package/dist/showcase/families/wizard/showcase.cjs +0 -1
- package/dist/showcase/families/wizard/showcase.d.ts +0 -2
- package/dist/showcase/families/wizard/showcase.js +0 -56
- package/packages/cli/vendor/src/families/badge-family.ts +0 -7
- package/packages/cli/vendor/src/families/card-family.ts +0 -26
- package/packages/cli/vendor/src/families/catalog.ts +0 -125
- package/packages/cli/vendor/src/families/data-table-family.ts +0 -31
- package/packages/cli/vendor/src/families/docs-adoption.ts +0 -103
- package/packages/cli/vendor/src/families/docs-groups.ts +0 -248
- package/packages/cli/vendor/src/families/docs-queries.ts +0 -84
- package/packages/cli/vendor/src/families/docs-routing.ts +0 -89
- package/packages/cli/vendor/src/families/form-family.ts +0 -37
- package/packages/cli/vendor/src/families/index.ts +0 -19
- package/packages/cli/vendor/src/families/input-family.ts +0 -61
- package/packages/cli/vendor/src/families/member-metadata.ts +0 -1033
- package/packages/cli/vendor/src/families/member-queries.ts +0 -28
- package/packages/cli/vendor/src/families/member-snippet-queries.ts +0 -54
- package/packages/cli/vendor/src/families/member-snippets.ts +0 -1563
- package/packages/cli/vendor/src/families/migration-map.ts +0 -161
- package/packages/cli/vendor/src/families/overlay-family.ts +0 -31
- package/packages/cli/vendor/src/families/public-surface-rationalization.ts +0 -206
- package/packages/cli/vendor/src/families/queries.ts +0 -131
- package/packages/cli/vendor/src/families/select-family.ts +0 -33
- package/packages/cli/vendor/src/families/views.ts +0 -85
- package/packages/cli/vendor/src/showcase/families/actions/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/actions/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/actions/showcase.tsx +0 -36
- package/packages/cli/vendor/src/showcase/families/calendar/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/calendar/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/calendar/showcase.tsx +0 -33
- package/packages/cli/vendor/src/showcase/families/command/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/command/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/command/showcase.tsx +0 -33
- package/packages/cli/vendor/src/showcase/families/data-table/index.ts +0 -4
- package/packages/cli/vendor/src/showcase/families/data-table/mock.ts +0 -42
- package/packages/cli/vendor/src/showcase/families/data-table/showcase.tsx +0 -507
- package/packages/cli/vendor/src/showcase/families/data-table/types.ts +0 -25
- package/packages/cli/vendor/src/showcase/families/display/data.ts +0 -11
- package/packages/cli/vendor/src/showcase/families/display/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/display/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/display/showcase.tsx +0 -113
- package/packages/cli/vendor/src/showcase/families/filters/data.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/filters/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/filters/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/filters/showcase.tsx +0 -137
- package/packages/cli/vendor/src/showcase/families/form/data.ts +0 -37
- package/packages/cli/vendor/src/showcase/families/form/index.ts +0 -4
- package/packages/cli/vendor/src/showcase/families/form/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/form/showcase.tsx +0 -230
- package/packages/cli/vendor/src/showcase/families/form/types.ts +0 -10
- package/packages/cli/vendor/src/showcase/families/index.ts +0 -37
- package/packages/cli/vendor/src/showcase/families/inputs/data.ts +0 -40
- package/packages/cli/vendor/src/showcase/families/inputs/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/inputs/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/inputs/showcase.tsx +0 -294
- package/packages/cli/vendor/src/showcase/families/layout/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/layout/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/layout/showcase.tsx +0 -57
- package/packages/cli/vendor/src/showcase/families/navigation/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/navigation/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/navigation/showcase.tsx +0 -31
- package/packages/cli/vendor/src/showcase/families/notifications/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/notifications/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/notifications/showcase.tsx +0 -24
- package/packages/cli/vendor/src/showcase/families/overlay/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/overlay/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/overlay/showcase.tsx +0 -23
- package/packages/cli/vendor/src/showcase/families/patterns/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/patterns/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/patterns/showcase.tsx +0 -23
- package/packages/cli/vendor/src/showcase/families/types.ts +0 -40
- package/packages/cli/vendor/src/showcase/families/upload/data.ts +0 -7
- package/packages/cli/vendor/src/showcase/families/upload/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/upload/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/upload/showcase.tsx +0 -86
- package/packages/cli/vendor/src/showcase/families/wizard/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/families/wizard/mock.ts +0 -18
- package/packages/cli/vendor/src/showcase/families/wizard/showcase.tsx +0 -39
- /package/dist/showcase/{families/data-table → premium/data-table-parts}/data.cjs +0 -0
|
@@ -1,1033 +0,0 @@
|
|
|
1
|
-
import type { ComponentFamilyName } from "@/families/catalog"
|
|
2
|
-
|
|
3
|
-
export type ComponentMemberMaturity = "canonical" | "member" | "transitional" | "advanced"
|
|
4
|
-
|
|
5
|
-
export type ComponentMemberMetadata = {
|
|
6
|
-
component: string
|
|
7
|
-
family: ComponentFamilyName
|
|
8
|
-
section:
|
|
9
|
-
| "primitives"
|
|
10
|
-
| "presets"
|
|
11
|
-
| "form-wrappers"
|
|
12
|
-
| "wrappers"
|
|
13
|
-
| "extensions"
|
|
14
|
-
| "advanced"
|
|
15
|
-
| "transitional"
|
|
16
|
-
maturity: ComponentMemberMaturity
|
|
17
|
-
summary: string
|
|
18
|
-
useWhen: string
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const componentMemberMetadata: ComponentMemberMetadata[] = [
|
|
22
|
-
{
|
|
23
|
-
component: "Input",
|
|
24
|
-
family: "InputFamily",
|
|
25
|
-
section: "primitives",
|
|
26
|
-
maturity: "canonical",
|
|
27
|
-
summary: "Primary text-entry surface with optional clear, trailing-action, and preset-friendly hooks.",
|
|
28
|
-
useWhen: "Use as the default field for text, search-like, password-like, and clearable entry before reaching for specialized formatting presets.",
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
component: "Textarea",
|
|
32
|
-
family: "InputFamily",
|
|
33
|
-
section: "primitives",
|
|
34
|
-
maturity: "canonical",
|
|
35
|
-
summary: "Multi-line companion to Input for longer notes, descriptions, and support copy.",
|
|
36
|
-
useWhen: "Use when content should stay in the same input family, but the entry needs multi-line editing instead of a single-line field.",
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
component: "ClearableInput",
|
|
40
|
-
family: "InputFamily",
|
|
41
|
-
section: "transitional",
|
|
42
|
-
maturity: "transitional",
|
|
43
|
-
summary: "Ready-made Input preset that adds a built-in clear action.",
|
|
44
|
-
useWhen: "Use when teams want one-step clearing without rewiring Input clearable props by hand.",
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
component: "SearchInput",
|
|
48
|
-
family: "InputFamily",
|
|
49
|
-
section: "presets",
|
|
50
|
-
maturity: "member",
|
|
51
|
-
summary: "Search-oriented Input preset with icon, shortcut, and result-count affordances.",
|
|
52
|
-
useWhen: "Use for table filters, command surfaces, and search bars when Input needs search-specific chrome out of the box.",
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
component: "PasswordInput",
|
|
56
|
-
family: "InputFamily",
|
|
57
|
-
section: "presets",
|
|
58
|
-
maturity: "member",
|
|
59
|
-
summary: "Password-focused Input preset with reveal and hide behavior.",
|
|
60
|
-
useWhen: "Use in auth and credential forms when Input needs a secure visibility toggle without custom trailing actions.",
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
component: "NumberInput",
|
|
64
|
-
family: "InputFamily",
|
|
65
|
-
section: "presets",
|
|
66
|
-
maturity: "member",
|
|
67
|
-
summary: "Numeric Input preset with parsed value callbacks.",
|
|
68
|
-
useWhen: "Use when the same input surface should stay in place but emit parsed numeric values without relying on native spinner UX.",
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
component: "MaskedInput",
|
|
72
|
-
family: "InputFamily",
|
|
73
|
-
section: "transitional",
|
|
74
|
-
maturity: "transitional",
|
|
75
|
-
summary: "Formatting adapter layered on top of the base input surface.",
|
|
76
|
-
useWhen: "Use when raw and displayed values differ, such as identifiers and custom entry masks, but the control should still read like Input.",
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
component: "PhoneInput",
|
|
80
|
-
family: "InputFamily",
|
|
81
|
-
section: "presets",
|
|
82
|
-
maturity: "member",
|
|
83
|
-
summary: "Phone-number preset built on masking behavior.",
|
|
84
|
-
useWhen: "Use for phone capture when Input should keep readable formatting while storing or emitting normalized digits.",
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
component: "MoneyInput",
|
|
88
|
-
family: "InputFamily",
|
|
89
|
-
section: "presets",
|
|
90
|
-
maturity: "member",
|
|
91
|
-
summary: "Currency preset with prefix, suffix, and amount-friendly parsing behavior.",
|
|
92
|
-
useWhen: "Use for finance and pricing fields when Input needs currency context directly in the field chrome.",
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
component: "QuantityInput",
|
|
96
|
-
family: "InputFamily",
|
|
97
|
-
section: "transitional",
|
|
98
|
-
maturity: "transitional",
|
|
99
|
-
summary: "Numeric entry with optional step controls.",
|
|
100
|
-
useWhen: "Use for cart counts, stock edits, and compact quantity adjustments.",
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
component: "OtpInput",
|
|
104
|
-
family: "InputFamily",
|
|
105
|
-
section: "advanced",
|
|
106
|
-
maturity: "advanced",
|
|
107
|
-
summary: "Multi-cell one-time-code input.",
|
|
108
|
-
useWhen: "Use for verification and short secure code flows that benefit from per-digit focus management.",
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
component: "ColorInput",
|
|
112
|
-
family: "InputFamily",
|
|
113
|
-
section: "advanced",
|
|
114
|
-
maturity: "advanced",
|
|
115
|
-
summary: "Color picker field.",
|
|
116
|
-
useWhen: "Use when the browser-native color picker is enough for theme or label selection.",
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
component: "DateInput",
|
|
120
|
-
family: "InputFamily",
|
|
121
|
-
section: "presets",
|
|
122
|
-
maturity: "member",
|
|
123
|
-
summary: "Native date preset built on the shared input surface.",
|
|
124
|
-
useWhen: "Use for lightweight date capture where a full calendar popover is unnecessary but the field should still align with Input rhythm.",
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
component: "DateRangeInput",
|
|
128
|
-
family: "InputFamily",
|
|
129
|
-
section: "presets",
|
|
130
|
-
maturity: "member",
|
|
131
|
-
summary: "Two-field date-range preset using the same input framing.",
|
|
132
|
-
useWhen: "Use for admin filters and reports that need from/to entry without promoting a full visual calendar picker.",
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
component: "FormInput",
|
|
136
|
-
family: "InputFamily",
|
|
137
|
-
section: "form-wrappers",
|
|
138
|
-
maturity: "canonical",
|
|
139
|
-
summary: "Canonical React Hook Form wrapper for text-like inputs.",
|
|
140
|
-
useWhen: "Use as the primary RHF entry for text, search, password, number, phone, and date flows by switching the kind prop instead of learning many wrapper names.",
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
component: "FormSearchInput",
|
|
144
|
-
family: "InputFamily",
|
|
145
|
-
section: "transitional",
|
|
146
|
-
maturity: "transitional",
|
|
147
|
-
summary: "Compatibility alias for FormInput kind=\"search\".",
|
|
148
|
-
useWhen: "Use only when migrating existing forms; prefer FormInput with kind=\"search\" for new work.",
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
component: "FormPasswordInput",
|
|
152
|
-
family: "InputFamily",
|
|
153
|
-
section: "transitional",
|
|
154
|
-
maturity: "transitional",
|
|
155
|
-
summary: "Compatibility alias for FormInput kind=\"password\".",
|
|
156
|
-
useWhen: "Use only when migrating existing forms; prefer FormInput with kind=\"password\" for new work.",
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
component: "FormNumberInput",
|
|
160
|
-
family: "InputFamily",
|
|
161
|
-
section: "transitional",
|
|
162
|
-
maturity: "transitional",
|
|
163
|
-
summary: "Compatibility alias for FormInput kind=\"number\".",
|
|
164
|
-
useWhen: "Use only when migrating existing forms; prefer FormInput with kind=\"number\" for new work.",
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
component: "FormPhoneInput",
|
|
168
|
-
family: "InputFamily",
|
|
169
|
-
section: "transitional",
|
|
170
|
-
maturity: "transitional",
|
|
171
|
-
summary: "Compatibility alias for FormInput kind=\"phone\".",
|
|
172
|
-
useWhen: "Use only when migrating existing forms; prefer FormInput with kind=\"phone\" for new work.",
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
component: "FormDateInput",
|
|
176
|
-
family: "InputFamily",
|
|
177
|
-
section: "transitional",
|
|
178
|
-
maturity: "transitional",
|
|
179
|
-
summary: "Compatibility alias for FormInput kind=\"date\".",
|
|
180
|
-
useWhen: "Use only when migrating existing forms; prefer FormInput with kind=\"date\" for new work.",
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
component: "FormDateRangeInput",
|
|
184
|
-
family: "InputFamily",
|
|
185
|
-
section: "transitional",
|
|
186
|
-
maturity: "transitional",
|
|
187
|
-
summary: "RHF wrapper around DateRangeInput.",
|
|
188
|
-
useWhen: "Use for filter and reporting forms that submit a plain from/to range object.",
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
component: "TagInput",
|
|
192
|
-
family: "InputFamily",
|
|
193
|
-
section: "advanced",
|
|
194
|
-
maturity: "advanced",
|
|
195
|
-
summary: "Multi-token freeform entry surface.",
|
|
196
|
-
useWhen: "Use only when a basic input or select cannot represent repeated tokens cleanly.",
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
component: "QuantityStepper",
|
|
200
|
-
family: "InputFamily",
|
|
201
|
-
section: "advanced",
|
|
202
|
-
maturity: "advanced",
|
|
203
|
-
summary: "Stepper-only quantity control.",
|
|
204
|
-
useWhen: "Use for compact increment/decrement interactions where free typing should be avoided.",
|
|
205
|
-
},
|
|
206
|
-
|
|
207
|
-
{
|
|
208
|
-
component: "Select",
|
|
209
|
-
family: "SelectFamily",
|
|
210
|
-
section: "primitives",
|
|
211
|
-
maturity: "canonical",
|
|
212
|
-
summary: "Primary selection surface for known options, trigger chrome, and consistent option semantics.",
|
|
213
|
-
useWhen: "Use as the default choice input before reaching for remote loading, multi-selection, or keyboard-heavy local filtering members.",
|
|
214
|
-
},
|
|
215
|
-
{
|
|
216
|
-
component: "SimpleSelect",
|
|
217
|
-
family: "SelectFamily",
|
|
218
|
-
section: "transitional",
|
|
219
|
-
maturity: "transitional",
|
|
220
|
-
summary: "Compatibility helper for older static select setups.",
|
|
221
|
-
useWhen: "Use mainly when migrating existing static select call sites; prefer the base Select surface for new work.",
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
component: "AsyncSelect",
|
|
225
|
-
family: "SelectFamily",
|
|
226
|
-
section: "presets",
|
|
227
|
-
maturity: "member",
|
|
228
|
-
summary: "Remote-aware single-select member for search-driven option loading.",
|
|
229
|
-
useWhen: "Use when the select surface must load options on demand from a server or a large source while still reading like one selection flow.",
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
component: "AsyncMultiSelect",
|
|
233
|
-
family: "SelectFamily",
|
|
234
|
-
section: "advanced",
|
|
235
|
-
maturity: "advanced",
|
|
236
|
-
summary: "Remote-aware multi-select member with inline selected tags.",
|
|
237
|
-
useWhen: "Use only when users truly need remote multi-pick behavior with visible chips; otherwise keep the simpler single-value select path.",
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
component: "Combobox",
|
|
241
|
-
family: "SelectFamily",
|
|
242
|
-
section: "presets",
|
|
243
|
-
maturity: "member",
|
|
244
|
-
summary: "Keyboard-first local filtering member related to the select family.",
|
|
245
|
-
useWhen: "Use when fast local keyboard filtering matters more than strict trigger semantics; avoid treating it as the default remote or creatable select path.",
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
component: "FormSelect",
|
|
249
|
-
family: "SelectFamily",
|
|
250
|
-
section: "form-wrappers",
|
|
251
|
-
maturity: "canonical",
|
|
252
|
-
summary: "Canonical RHF wrapper for base, static, and async select flows.",
|
|
253
|
-
useWhen: "Use as the main form entry for submitted select state, keeping simple and async modes behind one consistent wrapper contract.",
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
component: "FormAsyncSelect",
|
|
257
|
-
family: "SelectFamily",
|
|
258
|
-
section: "transitional",
|
|
259
|
-
maturity: "transitional",
|
|
260
|
-
summary: "Compatibility alias for FormSelect kind=\"async\".",
|
|
261
|
-
useWhen: "Use only when migrating existing forms; prefer FormSelect with kind=\"async\" for new work.",
|
|
262
|
-
},
|
|
263
|
-
|
|
264
|
-
{
|
|
265
|
-
component: "Card",
|
|
266
|
-
family: "CardFamily",
|
|
267
|
-
section: "primitives",
|
|
268
|
-
maturity: "canonical",
|
|
269
|
-
summary: "Base card primitive.",
|
|
270
|
-
useWhen: "Use for neutral content framing before adopting dashboard-specific presets.",
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
component: "InfoCard",
|
|
274
|
-
family: "CardFamily",
|
|
275
|
-
section: "primitives",
|
|
276
|
-
maturity: "canonical",
|
|
277
|
-
summary: "Reusable composed information card.",
|
|
278
|
-
useWhen: "Use for common metric and summary content where teams need a faster default than raw Card composition.",
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
component: "StatCard",
|
|
282
|
-
family: "CardFamily",
|
|
283
|
-
section: "transitional",
|
|
284
|
-
maturity: "transitional",
|
|
285
|
-
summary: "Legacy compact stat display card.",
|
|
286
|
-
useWhen: "Use only when migrating older KPI tiles; prefer StatisticCard or InfoCard for new product surfaces.",
|
|
287
|
-
},
|
|
288
|
-
{
|
|
289
|
-
component: "StatisticCard",
|
|
290
|
-
family: "ChartFamily",
|
|
291
|
-
section: "presets",
|
|
292
|
-
maturity: "member",
|
|
293
|
-
summary: "Structured statistic card.",
|
|
294
|
-
useWhen: "Use when a metric needs trend, label, and support copy in one tile.",
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
component: "EntityCard",
|
|
298
|
-
family: "CardFamily",
|
|
299
|
-
section: "presets",
|
|
300
|
-
maturity: "member",
|
|
301
|
-
summary: "Entity-oriented card surface.",
|
|
302
|
-
useWhen: "Use for users, records, or business entities with compact metadata.",
|
|
303
|
-
},
|
|
304
|
-
{
|
|
305
|
-
component: "FileCard",
|
|
306
|
-
family: "CardFamily",
|
|
307
|
-
section: "presets",
|
|
308
|
-
maturity: "member",
|
|
309
|
-
summary: "File preview card.",
|
|
310
|
-
useWhen: "Use for uploads, attachments, and lightweight asset lists.",
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
component: "SmartCard",
|
|
314
|
-
family: "CardFamily",
|
|
315
|
-
section: "transitional",
|
|
316
|
-
maturity: "transitional",
|
|
317
|
-
summary: "Older card alias kept for migration compatibility.",
|
|
318
|
-
useWhen: "Use only when migrating existing surfaces; prefer Card or InfoCard for new usage.",
|
|
319
|
-
},
|
|
320
|
-
|
|
321
|
-
{
|
|
322
|
-
component: "Badge",
|
|
323
|
-
family: "BadgeFamily",
|
|
324
|
-
section: "primitives",
|
|
325
|
-
maturity: "canonical",
|
|
326
|
-
summary: "Canonical inline label and status marker.",
|
|
327
|
-
useWhen: "Use for metadata, status, counts, and small labels by switching tone, variant, size, and dot props.",
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
component: "Dialog",
|
|
331
|
-
family: "OverlayFamily",
|
|
332
|
-
section: "primitives",
|
|
333
|
-
maturity: "canonical",
|
|
334
|
-
summary: "Canonical modal dialog primitive.",
|
|
335
|
-
useWhen: "Use when a task needs focus management, blocking intent, and explicit close behavior.",
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
component: "Popover",
|
|
339
|
-
family: "OverlayFamily",
|
|
340
|
-
section: "primitives",
|
|
341
|
-
maturity: "canonical",
|
|
342
|
-
summary: "Canonical anchored floating content primitive.",
|
|
343
|
-
useWhen: "Use for non-blocking contextual controls, pickers, and rich anchored content.",
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
component: "DropdownMenu",
|
|
347
|
-
family: "OverlayFamily",
|
|
348
|
-
section: "primitives",
|
|
349
|
-
maturity: "canonical",
|
|
350
|
-
summary: "Canonical command menu primitive.",
|
|
351
|
-
useWhen: "Use for compact actions, account menus, and command lists anchored to a trigger.",
|
|
352
|
-
},
|
|
353
|
-
{
|
|
354
|
-
component: "Tooltip",
|
|
355
|
-
family: "OverlayFamily",
|
|
356
|
-
section: "presets",
|
|
357
|
-
maturity: "member",
|
|
358
|
-
summary: "Small hover/focus explanation surface.",
|
|
359
|
-
useWhen: "Use for short helper text only; do not hide critical instructions inside a tooltip.",
|
|
360
|
-
},
|
|
361
|
-
{
|
|
362
|
-
component: "RightClickMenu",
|
|
363
|
-
family: "OverlayFamily",
|
|
364
|
-
section: "presets",
|
|
365
|
-
maturity: "member",
|
|
366
|
-
summary: "Context menu surface for secondary pointer actions.",
|
|
367
|
-
useWhen: "Use when right-click actions supplement, not replace, visible primary actions.",
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
component: "AlertDialog",
|
|
371
|
-
family: "OverlayFamily",
|
|
372
|
-
section: "presets",
|
|
373
|
-
maturity: "member",
|
|
374
|
-
summary: "Destructive or high-risk confirmation dialog.",
|
|
375
|
-
useWhen: "Use when an action needs explicit confirmation before it can continue.",
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
component: "ConfirmDialog",
|
|
379
|
-
family: "OverlayFamily",
|
|
380
|
-
section: "presets",
|
|
381
|
-
maturity: "member",
|
|
382
|
-
summary: "General confirmation dialog preset.",
|
|
383
|
-
useWhen: "Use for save, publish, and approval flows that need a reusable confirm surface.",
|
|
384
|
-
},
|
|
385
|
-
{
|
|
386
|
-
component: "ModalShell",
|
|
387
|
-
family: "OverlayFamily",
|
|
388
|
-
section: "presets",
|
|
389
|
-
maturity: "member",
|
|
390
|
-
summary: "Dialog shell with title, description, body, footer, and size props.",
|
|
391
|
-
useWhen: "Use when repeated product modals need the same document structure.",
|
|
392
|
-
},
|
|
393
|
-
{
|
|
394
|
-
component: "SheetShell",
|
|
395
|
-
family: "OverlayFamily",
|
|
396
|
-
section: "presets",
|
|
397
|
-
maturity: "member",
|
|
398
|
-
summary: "Side or edge sheet surface.",
|
|
399
|
-
useWhen: "Use for progressive detail panels and lightweight side workflows.",
|
|
400
|
-
},
|
|
401
|
-
{
|
|
402
|
-
component: "Drawer",
|
|
403
|
-
family: "OverlayFamily",
|
|
404
|
-
section: "presets",
|
|
405
|
-
maturity: "member",
|
|
406
|
-
summary: "Drawer-style detail overlay.",
|
|
407
|
-
useWhen: "Use for record details and contextual edit flows that should not navigate away.",
|
|
408
|
-
},
|
|
409
|
-
{
|
|
410
|
-
component: "DialogActions",
|
|
411
|
-
family: "OverlayFamily",
|
|
412
|
-
section: "presets",
|
|
413
|
-
maturity: "member",
|
|
414
|
-
summary: "Shared dialog footer action row.",
|
|
415
|
-
useWhen: "Use inside Dialog, ModalShell, SheetShell, or Drawer when footer buttons should align consistently.",
|
|
416
|
-
},
|
|
417
|
-
{
|
|
418
|
-
component: "FormFieldShell",
|
|
419
|
-
family: "FormFamily",
|
|
420
|
-
section: "primitives",
|
|
421
|
-
maturity: "canonical",
|
|
422
|
-
summary: "Base shell for label, description, and validation copy.",
|
|
423
|
-
useWhen: "Use as the common structure for any custom form control that needs consistent field framing.",
|
|
424
|
-
},
|
|
425
|
-
{
|
|
426
|
-
component: "FormTextarea",
|
|
427
|
-
family: "FormFamily",
|
|
428
|
-
section: "wrappers",
|
|
429
|
-
maturity: "member",
|
|
430
|
-
summary: "RHF textarea wrapper.",
|
|
431
|
-
useWhen: "Use for multi-line text in forms that need shared field-shell behavior.",
|
|
432
|
-
},
|
|
433
|
-
{
|
|
434
|
-
component: "FormSwitch",
|
|
435
|
-
family: "FormFamily",
|
|
436
|
-
section: "wrappers",
|
|
437
|
-
maturity: "member",
|
|
438
|
-
summary: "RHF switch wrapper.",
|
|
439
|
-
useWhen: "Use for boolean toggles tied to validation and descriptive copy.",
|
|
440
|
-
},
|
|
441
|
-
{
|
|
442
|
-
component: "FormDatePicker",
|
|
443
|
-
family: "FormFamily",
|
|
444
|
-
section: "wrappers",
|
|
445
|
-
maturity: "member",
|
|
446
|
-
summary: "RHF wrapper around calendar date picker.",
|
|
447
|
-
useWhen: "Use when the form needs a richer date picker than a native date input.",
|
|
448
|
-
},
|
|
449
|
-
{
|
|
450
|
-
component: "FormDateRangePicker",
|
|
451
|
-
family: "FormFamily",
|
|
452
|
-
section: "wrappers",
|
|
453
|
-
maturity: "member",
|
|
454
|
-
summary: "RHF wrapper around calendar date range picker.",
|
|
455
|
-
useWhen: "Use when a form needs a visual range-selection experience instead of plain from/to inputs.",
|
|
456
|
-
},
|
|
457
|
-
{
|
|
458
|
-
component: "FormBuilder",
|
|
459
|
-
family: "FormFamily",
|
|
460
|
-
section: "advanced",
|
|
461
|
-
maturity: "advanced",
|
|
462
|
-
summary: "Schema-driven form renderer.",
|
|
463
|
-
useWhen: "Use when forms must be configured dynamically or generated from backend definitions.",
|
|
464
|
-
},
|
|
465
|
-
{
|
|
466
|
-
component: "InlineEditable",
|
|
467
|
-
family: "InputFamily",
|
|
468
|
-
section: "advanced",
|
|
469
|
-
maturity: "advanced",
|
|
470
|
-
summary: "In-place text editing surface for dense operational UIs.",
|
|
471
|
-
useWhen: "Use when editing should happen directly inside a row or card without opening a full form layout.",
|
|
472
|
-
},
|
|
473
|
-
{
|
|
474
|
-
component: "Slider",
|
|
475
|
-
family: "InputFamily",
|
|
476
|
-
section: "advanced",
|
|
477
|
-
maturity: "advanced",
|
|
478
|
-
summary: "Single-thumb visual range control for bounded numeric values.",
|
|
479
|
-
useWhen: "Use when dragging communicates the value better than typing and the range is already known.",
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
component: "RangeSlider",
|
|
483
|
-
family: "InputFamily",
|
|
484
|
-
section: "advanced",
|
|
485
|
-
maturity: "advanced",
|
|
486
|
-
summary: "Two-thumb visual control for selecting a minimum and maximum together.",
|
|
487
|
-
useWhen: "Use when one surface should own both lower and upper bounds instead of teaching two separate numeric fields.",
|
|
488
|
-
},
|
|
489
|
-
{
|
|
490
|
-
component: "Rating",
|
|
491
|
-
family: "InputFamily",
|
|
492
|
-
section: "advanced",
|
|
493
|
-
maturity: "advanced",
|
|
494
|
-
summary: "Compact score and sentiment input with star-like selection behavior.",
|
|
495
|
-
useWhen: "Use for review, quality, or satisfaction capture when a small visual rating control is clearer than raw numbers.",
|
|
496
|
-
},
|
|
497
|
-
{
|
|
498
|
-
component: "TrendCard",
|
|
499
|
-
family: "CardFamily",
|
|
500
|
-
section: "presets",
|
|
501
|
-
maturity: "member",
|
|
502
|
-
summary: "Metric card with trend and sparkline.",
|
|
503
|
-
useWhen: "Use for dashboards where historical context is important.",
|
|
504
|
-
},
|
|
505
|
-
{
|
|
506
|
-
component: "ComparisonCard",
|
|
507
|
-
family: "CardFamily",
|
|
508
|
-
section: "presets",
|
|
509
|
-
maturity: "member",
|
|
510
|
-
summary: "Multi-column stat comparison card.",
|
|
511
|
-
useWhen: "Use when comparing interrelated metrics directly.",
|
|
512
|
-
},
|
|
513
|
-
{
|
|
514
|
-
component: "DeltaBadge",
|
|
515
|
-
family: "BadgeFamily",
|
|
516
|
-
section: "primitives",
|
|
517
|
-
maturity: "member",
|
|
518
|
-
summary: "Inline trend delta badge.",
|
|
519
|
-
useWhen: "Use to show positive/negative changes within data grids or lists.",
|
|
520
|
-
},
|
|
521
|
-
{
|
|
522
|
-
component: "HoverCard",
|
|
523
|
-
family: "OverlayFamily",
|
|
524
|
-
section: "presets",
|
|
525
|
-
maturity: "member",
|
|
526
|
-
summary: "Rich hover and focus preview card.",
|
|
527
|
-
useWhen: "Use for lightweight previews when a tooltip is too small but a popover is too heavy.",
|
|
528
|
-
},
|
|
529
|
-
{
|
|
530
|
-
component: "RepeaterField",
|
|
531
|
-
family: "FormFamily",
|
|
532
|
-
section: "wrappers",
|
|
533
|
-
maturity: "member",
|
|
534
|
-
summary: "Form array manager.",
|
|
535
|
-
useWhen: "Use when a form needs repeated dynamic field groups with add/remove actions.",
|
|
536
|
-
},
|
|
537
|
-
{
|
|
538
|
-
component: "DataTable",
|
|
539
|
-
family: "DataTableFamily",
|
|
540
|
-
section: "primitives",
|
|
541
|
-
maturity: "canonical",
|
|
542
|
-
summary: "Canonical tabular data surface.",
|
|
543
|
-
useWhen: "Use when rows, sorting, selection, and pagination belong in one reusable grid.",
|
|
544
|
-
},
|
|
545
|
-
{
|
|
546
|
-
component: "DataTableToolbar",
|
|
547
|
-
family: "DataTableFamily",
|
|
548
|
-
section: "extensions",
|
|
549
|
-
maturity: "member",
|
|
550
|
-
summary: "Toolbar scaffold for table actions and filters.",
|
|
551
|
-
useWhen: "Use when the table needs a structured top bar instead of ad-hoc controls.",
|
|
552
|
-
},
|
|
553
|
-
{
|
|
554
|
-
component: "DataTablePagination",
|
|
555
|
-
family: "DataTableFamily",
|
|
556
|
-
section: "extensions",
|
|
557
|
-
maturity: "member",
|
|
558
|
-
summary: "Pagination control for the data table.",
|
|
559
|
-
useWhen: "Use when pagination UI should remain visually aligned with the table system.",
|
|
560
|
-
},
|
|
561
|
-
{
|
|
562
|
-
component: "DataTableColumnVisibilityMenu",
|
|
563
|
-
family: "DataTableFamily",
|
|
564
|
-
section: "advanced",
|
|
565
|
-
maturity: "advanced",
|
|
566
|
-
summary: "Hide/show columns control.",
|
|
567
|
-
useWhen: "Use after the base table experience is already clear and users truly need per-column personalization.",
|
|
568
|
-
},
|
|
569
|
-
{
|
|
570
|
-
component: "DataTableSortableHeader",
|
|
571
|
-
family: "DataTableFamily",
|
|
572
|
-
section: "advanced",
|
|
573
|
-
maturity: "advanced",
|
|
574
|
-
summary: "Sortable header helper.",
|
|
575
|
-
useWhen: "Use when composing custom tables around the shared sort contract instead of the full canonical DataTable route.",
|
|
576
|
-
},
|
|
577
|
-
{
|
|
578
|
-
component: "DataTableRowActions",
|
|
579
|
-
family: "DataTableFamily",
|
|
580
|
-
section: "extensions",
|
|
581
|
-
maturity: "member",
|
|
582
|
-
summary: "Row-level actions surface.",
|
|
583
|
-
useWhen: "Use when each row needs contextual actions without custom menu plumbing.",
|
|
584
|
-
},
|
|
585
|
-
{
|
|
586
|
-
component: "DataTableBulkActions",
|
|
587
|
-
family: "DataTableFamily",
|
|
588
|
-
section: "extensions",
|
|
589
|
-
maturity: "member",
|
|
590
|
-
summary: "Bulk selection action surface.",
|
|
591
|
-
useWhen: "Use when multi-row operations should appear only after selection.",
|
|
592
|
-
},
|
|
593
|
-
{
|
|
594
|
-
component: "DataTableViewPresets",
|
|
595
|
-
family: "DataTableFamily",
|
|
596
|
-
section: "extensions",
|
|
597
|
-
maturity: "member",
|
|
598
|
-
summary: "Preset view controls for table states.",
|
|
599
|
-
useWhen: "Use when users need quick switching between saved or opinionated table views.",
|
|
600
|
-
},
|
|
601
|
-
{
|
|
602
|
-
component: "createDataTableSelectColumn",
|
|
603
|
-
family: "DataTableFamily",
|
|
604
|
-
section: "advanced",
|
|
605
|
-
maturity: "advanced",
|
|
606
|
-
summary: "Selection column factory.",
|
|
607
|
-
useWhen: "Use when custom column composition is required and you still want the standard row-selection contract.",
|
|
608
|
-
},
|
|
609
|
-
{
|
|
610
|
-
component: "createDataTableActionsColumn",
|
|
611
|
-
family: "DataTableFamily",
|
|
612
|
-
section: "advanced",
|
|
613
|
-
maturity: "advanced",
|
|
614
|
-
summary: "Actions column factory.",
|
|
615
|
-
useWhen: "Use when a custom table still needs the shared row-actions contract without rewriting the full column definition.",
|
|
616
|
-
},
|
|
617
|
-
{
|
|
618
|
-
component: "TableExportMenu",
|
|
619
|
-
family: "DataTableFamily",
|
|
620
|
-
section: "advanced",
|
|
621
|
-
maturity: "advanced",
|
|
622
|
-
summary: "Export helpers for tables.",
|
|
623
|
-
useWhen: "Use only after the core table experience is already clear and export is truly required.",
|
|
624
|
-
},
|
|
625
|
-
{
|
|
626
|
-
component: "TableImportButton",
|
|
627
|
-
family: "DataTableFamily",
|
|
628
|
-
section: "advanced",
|
|
629
|
-
maturity: "advanced",
|
|
630
|
-
summary: "Import trigger tied to table workflows.",
|
|
631
|
-
useWhen: "Use only when import belongs directly beside a data table management flow.",
|
|
632
|
-
},
|
|
633
|
-
{
|
|
634
|
-
component: "Button",
|
|
635
|
-
family: "ActionFamily",
|
|
636
|
-
section: "primitives",
|
|
637
|
-
maturity: "canonical",
|
|
638
|
-
summary: "Primary clickable action surface for product flows.",
|
|
639
|
-
useWhen: "Use as the default action trigger before reaching for grouped actions, menus, or embedded copy patterns.",
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
component: "ActionMenu",
|
|
643
|
-
family: "ActionFamily",
|
|
644
|
-
section: "extensions",
|
|
645
|
-
maturity: "member",
|
|
646
|
-
summary: "Compact action list anchored to one trigger.",
|
|
647
|
-
useWhen: "Use when several related actions should sit behind one entry point instead of competing as many buttons.",
|
|
648
|
-
},
|
|
649
|
-
{
|
|
650
|
-
component: "CopyButton",
|
|
651
|
-
family: "ActionFamily",
|
|
652
|
-
section: "extensions",
|
|
653
|
-
maturity: "member",
|
|
654
|
-
summary: "One-tap copy action with built-in feedback.",
|
|
655
|
-
useWhen: "Use when copying text or IDs should behave like a small action rather than a full input field pattern.",
|
|
656
|
-
},
|
|
657
|
-
{
|
|
658
|
-
component: "ButtonGroup",
|
|
659
|
-
family: "ActionFamily",
|
|
660
|
-
section: "transitional",
|
|
661
|
-
maturity: "transitional",
|
|
662
|
-
summary: "Grouped button layout helper.",
|
|
663
|
-
useWhen: "Use when several buttons must align together, but keep it secondary to the main Button mental model.",
|
|
664
|
-
},
|
|
665
|
-
{
|
|
666
|
-
component: "CopyField",
|
|
667
|
-
family: "ActionFamily",
|
|
668
|
-
section: "transitional",
|
|
669
|
-
maturity: "transitional",
|
|
670
|
-
summary: "Embedded copy pattern around a displayed value.",
|
|
671
|
-
useWhen: "Use when a visible value and its copy action should stay bundled in one compact row.",
|
|
672
|
-
},
|
|
673
|
-
{
|
|
674
|
-
component: "QuickActionGrid",
|
|
675
|
-
family: "ActionFamily",
|
|
676
|
-
section: "transitional",
|
|
677
|
-
maturity: "transitional",
|
|
678
|
-
summary: "Grid layout for several action shortcuts.",
|
|
679
|
-
useWhen: "Use when a dense dashboard block needs a small board of quick actions rather than one primary trigger.",
|
|
680
|
-
},
|
|
681
|
-
{
|
|
682
|
-
component: "Alert",
|
|
683
|
-
family: "FeedbackFamily",
|
|
684
|
-
section: "primitives",
|
|
685
|
-
maturity: "canonical",
|
|
686
|
-
summary: "Canonical inline product status surface.",
|
|
687
|
-
useWhen: "Use when the screen needs one clear information, success, warning, or error message with optional action copy.",
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
component: "EmptyState",
|
|
691
|
-
family: "FeedbackFamily",
|
|
692
|
-
section: "primitives",
|
|
693
|
-
maturity: "canonical",
|
|
694
|
-
summary: "Empty-result and no-data state surface.",
|
|
695
|
-
useWhen: "Use when a view needs a structured zero-data message instead of a plain sentence.",
|
|
696
|
-
},
|
|
697
|
-
{
|
|
698
|
-
component: "LoadingState",
|
|
699
|
-
family: "FeedbackFamily",
|
|
700
|
-
section: "primitives",
|
|
701
|
-
maturity: "canonical",
|
|
702
|
-
summary: "Canonical loading message surface.",
|
|
703
|
-
useWhen: "Use when loading should be explained with label, description, and product framing instead of a spinner alone.",
|
|
704
|
-
},
|
|
705
|
-
{
|
|
706
|
-
component: "Progress",
|
|
707
|
-
family: "ProgressFamily",
|
|
708
|
-
section: "primitives",
|
|
709
|
-
maturity: "canonical",
|
|
710
|
-
summary: "Progress feedback bar for completion and status tracking.",
|
|
711
|
-
useWhen: "Use when a task, upload, or rollout needs visible completion progress in the main interface.",
|
|
712
|
-
},
|
|
713
|
-
{
|
|
714
|
-
component: "ProgressCircle",
|
|
715
|
-
family: "ProgressFamily",
|
|
716
|
-
section: "advanced",
|
|
717
|
-
maturity: "advanced",
|
|
718
|
-
summary: "Compact circular progress indicator for constrained dashboard spaces.",
|
|
719
|
-
useWhen: "Use when the same completion signal must fit inside small cards, badges, or compact status blocks.",
|
|
720
|
-
},
|
|
721
|
-
{
|
|
722
|
-
component: "ToastProvider",
|
|
723
|
-
family: "FeedbackFamily",
|
|
724
|
-
section: "primitives",
|
|
725
|
-
maturity: "canonical",
|
|
726
|
-
summary: "Notification host for ephemeral product feedback.",
|
|
727
|
-
useWhen: "Use when transient confirmations and background outcomes should appear as toasts across the app.",
|
|
728
|
-
},
|
|
729
|
-
{
|
|
730
|
-
component: "InlineState",
|
|
731
|
-
family: "FeedbackFamily",
|
|
732
|
-
section: "extensions",
|
|
733
|
-
maturity: "member",
|
|
734
|
-
summary: "Small inline status row for compact layouts.",
|
|
735
|
-
useWhen: "Use when state feedback must stay inside a dense card, list row, or side panel instead of taking a full empty-state layout.",
|
|
736
|
-
},
|
|
737
|
-
{
|
|
738
|
-
component: "LoadingOverlay",
|
|
739
|
-
family: "FeedbackFamily",
|
|
740
|
-
section: "extensions",
|
|
741
|
-
maturity: "member",
|
|
742
|
-
summary: "Overlay loading mask for blocking local interaction.",
|
|
743
|
-
useWhen: "Use when a surface should stay visible but temporarily blocked while loading or submitting.",
|
|
744
|
-
},
|
|
745
|
-
{
|
|
746
|
-
component: "Spinner",
|
|
747
|
-
family: "FeedbackFamily",
|
|
748
|
-
section: "extensions",
|
|
749
|
-
maturity: "member",
|
|
750
|
-
summary: "Minimal loading glyph.",
|
|
751
|
-
useWhen: "Use only when a tiny loading affordance is enough and a full LoadingState would be too heavy.",
|
|
752
|
-
},
|
|
753
|
-
{
|
|
754
|
-
component: "Skeleton",
|
|
755
|
-
family: "FeedbackFamily",
|
|
756
|
-
section: "extensions",
|
|
757
|
-
maturity: "member",
|
|
758
|
-
summary: "Placeholder surface for loading content structure.",
|
|
759
|
-
useWhen: "Use when the layout should stay visible during loading and the content shape matters more than a spinner.",
|
|
760
|
-
},
|
|
761
|
-
{
|
|
762
|
-
component: "useToast",
|
|
763
|
-
family: "FeedbackFamily",
|
|
764
|
-
section: "advanced",
|
|
765
|
-
maturity: "advanced",
|
|
766
|
-
summary: "Imperative hook for dispatching toast notifications.",
|
|
767
|
-
useWhen: "Use after ToastProvider is mounted and a feature needs to trigger transient feedback from event handlers or async flows.",
|
|
768
|
-
},
|
|
769
|
-
{
|
|
770
|
-
component: "BarChart",
|
|
771
|
-
family: "ChartFamily",
|
|
772
|
-
section: "primitives",
|
|
773
|
-
maturity: "canonical",
|
|
774
|
-
summary: "Categorical bar chart for dashboard comparisons.",
|
|
775
|
-
useWhen: "Use when values should be compared across a finite list of categories with strong scanability.",
|
|
776
|
-
},
|
|
777
|
-
{
|
|
778
|
-
component: "LineChart",
|
|
779
|
-
family: "ChartFamily",
|
|
780
|
-
section: "primitives",
|
|
781
|
-
maturity: "canonical",
|
|
782
|
-
summary: "Trend line for time or sequential values.",
|
|
783
|
-
useWhen: "Use when change over time or ordered points is more important than isolated category comparison.",
|
|
784
|
-
},
|
|
785
|
-
{
|
|
786
|
-
component: "DonutChart",
|
|
787
|
-
family: "ChartFamily",
|
|
788
|
-
section: "primitives",
|
|
789
|
-
maturity: "canonical",
|
|
790
|
-
summary: "Part-to-whole chart with central summary space.",
|
|
791
|
-
useWhen: "Use when a compact composition needs proportional slices and one clear total or center metric.",
|
|
792
|
-
},
|
|
793
|
-
{
|
|
794
|
-
component: "MetricGrid",
|
|
795
|
-
family: "ChartFamily",
|
|
796
|
-
section: "primitives",
|
|
797
|
-
maturity: "member",
|
|
798
|
-
summary: "Dashboard-ready metric grid for grouped KPI cards.",
|
|
799
|
-
useWhen: "Use when several related KPIs should stay aligned in one responsive summary surface.",
|
|
800
|
-
},
|
|
801
|
-
{
|
|
802
|
-
component: "ChartFrame",
|
|
803
|
-
family: "ChartFamily",
|
|
804
|
-
section: "extensions",
|
|
805
|
-
maturity: "member",
|
|
806
|
-
summary: "Shared shell around chart content, title, and actions.",
|
|
807
|
-
useWhen: "Use when a chart needs consistent framing, headings, and auxiliary actions without rebuilding the outer card each time.",
|
|
808
|
-
},
|
|
809
|
-
{
|
|
810
|
-
component: "ChartLegend",
|
|
811
|
-
family: "ChartFamily",
|
|
812
|
-
section: "extensions",
|
|
813
|
-
maturity: "member",
|
|
814
|
-
summary: "Legend block for chart series labels.",
|
|
815
|
-
useWhen: "Use when a chart needs explicit series mapping instead of relying on color alone.",
|
|
816
|
-
},
|
|
817
|
-
{
|
|
818
|
-
component: "Sparkline",
|
|
819
|
-
family: "ChartFamily",
|
|
820
|
-
section: "extensions",
|
|
821
|
-
maturity: "member",
|
|
822
|
-
summary: "Compact micro-trend line.",
|
|
823
|
-
useWhen: "Use when a tiny trend hint should support a number without turning into a full chart section.",
|
|
824
|
-
},
|
|
825
|
-
{
|
|
826
|
-
component: "MetricTrend",
|
|
827
|
-
family: "ChartFamily",
|
|
828
|
-
section: "extensions",
|
|
829
|
-
maturity: "member",
|
|
830
|
-
summary: "Metric summary with change direction and sparkline context.",
|
|
831
|
-
useWhen: "Use when a KPI should include both the current value and quick historical direction in one block.",
|
|
832
|
-
},
|
|
833
|
-
{
|
|
834
|
-
component: "Statistic",
|
|
835
|
-
family: "ChartFamily",
|
|
836
|
-
section: "extensions",
|
|
837
|
-
maturity: "member",
|
|
838
|
-
summary: "Structured single KPI readout.",
|
|
839
|
-
useWhen: "Use when a single metric needs title, value, and supporting copy in a more formal statistic layout.",
|
|
840
|
-
},
|
|
841
|
-
{
|
|
842
|
-
component: "StatisticGrid",
|
|
843
|
-
family: "ChartFamily",
|
|
844
|
-
section: "extensions",
|
|
845
|
-
maturity: "member",
|
|
846
|
-
summary: "Grid layout for several structured statistics.",
|
|
847
|
-
useWhen: "Use when multiple KPI readouts should stay aligned but do not need the richer MetricGrid treatment.",
|
|
848
|
-
},
|
|
849
|
-
{
|
|
850
|
-
component: "Sidebar",
|
|
851
|
-
family: "NavigationFamily",
|
|
852
|
-
section: "primitives",
|
|
853
|
-
maturity: "canonical",
|
|
854
|
-
summary: "Primary application sidebar for workspace navigation.",
|
|
855
|
-
useWhen: "Use when an app needs persistent primary navigation, nested sections, and account or workspace actions.",
|
|
856
|
-
},
|
|
857
|
-
{
|
|
858
|
-
component: "PageContainer",
|
|
859
|
-
family: "NavigationFamily",
|
|
860
|
-
section: "primitives",
|
|
861
|
-
maturity: "canonical",
|
|
862
|
-
summary: "Width and page rhythm wrapper for screen content.",
|
|
863
|
-
useWhen: "Use when pages should share one consistent max-width and horizontal spacing contract.",
|
|
864
|
-
},
|
|
865
|
-
{
|
|
866
|
-
component: "Tabs",
|
|
867
|
-
family: "NavigationFamily",
|
|
868
|
-
section: "primitives",
|
|
869
|
-
maturity: "canonical",
|
|
870
|
-
summary: "Canonical tabbed navigation surface.",
|
|
871
|
-
useWhen: "Use when the user should switch between a small set of peer sections without leaving the page.",
|
|
872
|
-
},
|
|
873
|
-
{
|
|
874
|
-
component: "Pagination",
|
|
875
|
-
family: "NavigationFamily",
|
|
876
|
-
section: "primitives",
|
|
877
|
-
maturity: "canonical",
|
|
878
|
-
summary: "Page navigation control for lists and tables.",
|
|
879
|
-
useWhen: "Use when records are split across pages and the user must move between indexed result sets.",
|
|
880
|
-
},
|
|
881
|
-
{
|
|
882
|
-
component: "Breadcrumbs",
|
|
883
|
-
family: "NavigationFamily",
|
|
884
|
-
section: "primitives",
|
|
885
|
-
maturity: "canonical",
|
|
886
|
-
summary: "Hierarchical location trail.",
|
|
887
|
-
useWhen: "Use when nested pages or resources need one concise location indicator back through the product structure.",
|
|
888
|
-
},
|
|
889
|
-
{
|
|
890
|
-
component: "Wizard",
|
|
891
|
-
family: "NavigationFamily",
|
|
892
|
-
section: "primitives",
|
|
893
|
-
maturity: "canonical",
|
|
894
|
-
summary: "Multi-step flow wrapper around a guided process.",
|
|
895
|
-
useWhen: "Use when the user must complete a sequence of connected steps with clear forward progress.",
|
|
896
|
-
},
|
|
897
|
-
{
|
|
898
|
-
component: "Section",
|
|
899
|
-
family: "NavigationFamily",
|
|
900
|
-
section: "transitional",
|
|
901
|
-
maturity: "transitional",
|
|
902
|
-
summary: "Page section wrapper for grouped content.",
|
|
903
|
-
useWhen: "Use when page content needs local framing, but keep it secondary to the primary navigation and page-shell surfaces.",
|
|
904
|
-
},
|
|
905
|
-
{
|
|
906
|
-
component: "AnchorNav",
|
|
907
|
-
family: "NavigationFamily",
|
|
908
|
-
section: "transitional",
|
|
909
|
-
maturity: "transitional",
|
|
910
|
-
summary: "In-page anchor navigation.",
|
|
911
|
-
useWhen: "Use when long detail pages need local section jumping without becoming the main navigation model.",
|
|
912
|
-
},
|
|
913
|
-
{
|
|
914
|
-
component: "Stepper",
|
|
915
|
-
family: "NavigationFamily",
|
|
916
|
-
section: "transitional",
|
|
917
|
-
maturity: "transitional",
|
|
918
|
-
summary: "Step indicator for guided flows.",
|
|
919
|
-
useWhen: "Use when a flow needs visible step progress but not the full Wizard wrapper.",
|
|
920
|
-
},
|
|
921
|
-
{
|
|
922
|
-
component: "StepperTabs",
|
|
923
|
-
family: "NavigationFamily",
|
|
924
|
-
section: "transitional",
|
|
925
|
-
maturity: "transitional",
|
|
926
|
-
summary: "Tab-like step navigation.",
|
|
927
|
-
useWhen: "Use when sections read like steps, but the interaction still behaves closer to tabs than a full wizard.",
|
|
928
|
-
},
|
|
929
|
-
{
|
|
930
|
-
component: "SegmentedControl",
|
|
931
|
-
family: "NavigationFamily",
|
|
932
|
-
section: "transitional",
|
|
933
|
-
maturity: "transitional",
|
|
934
|
-
summary: "Compact segment switcher for small option sets.",
|
|
935
|
-
useWhen: "Use when a short set of mutually exclusive views needs an inline switch rather than a full tab layout.",
|
|
936
|
-
},
|
|
937
|
-
{
|
|
938
|
-
component: "FileUpload",
|
|
939
|
-
family: "UploadFamily",
|
|
940
|
-
section: "primitives",
|
|
941
|
-
maturity: "canonical",
|
|
942
|
-
summary: "Generic file upload flow with validation and file-state handling.",
|
|
943
|
-
useWhen: "Use when users should add, review, and remove uploaded files inside the same product surface.",
|
|
944
|
-
},
|
|
945
|
-
{
|
|
946
|
-
component: "ImageUpload",
|
|
947
|
-
family: "UploadFamily",
|
|
948
|
-
section: "primitives",
|
|
949
|
-
maturity: "canonical",
|
|
950
|
-
summary: "Image-specific upload flow with preview-oriented behavior.",
|
|
951
|
-
useWhen: "Use when uploaded files are images and the product benefits from preview, replace, or image-aware affordances.",
|
|
952
|
-
},
|
|
953
|
-
{
|
|
954
|
-
component: "Checkbox",
|
|
955
|
-
family: "PrimitiveFamily",
|
|
956
|
-
section: "primitives",
|
|
957
|
-
maturity: "canonical",
|
|
958
|
-
summary: "Canonical binary and multi-select primitive.",
|
|
959
|
-
useWhen: "Use when a list or form needs explicit toggled selection with checked, unchecked, or indeterminate states.",
|
|
960
|
-
},
|
|
961
|
-
{
|
|
962
|
-
component: "RadioGroup",
|
|
963
|
-
family: "PrimitiveFamily",
|
|
964
|
-
section: "primitives",
|
|
965
|
-
maturity: "canonical",
|
|
966
|
-
summary: "Single-choice selection primitive across several options.",
|
|
967
|
-
useWhen: "Use when exactly one option from a short visible set should be selected at a time.",
|
|
968
|
-
},
|
|
969
|
-
{
|
|
970
|
-
component: "Switch",
|
|
971
|
-
family: "PrimitiveFamily",
|
|
972
|
-
section: "primitives",
|
|
973
|
-
maturity: "canonical",
|
|
974
|
-
summary: "Immediate boolean toggle primitive.",
|
|
975
|
-
useWhen: "Use when turning a setting on or off should feel faster and more direct than a checkbox row.",
|
|
976
|
-
},
|
|
977
|
-
{
|
|
978
|
-
component: "Table",
|
|
979
|
-
family: "PrimitiveFamily",
|
|
980
|
-
section: "primitives",
|
|
981
|
-
maturity: "canonical",
|
|
982
|
-
summary: "Base table markup and styling surface.",
|
|
983
|
-
useWhen: "Use when tabular content is simple enough that a full DataTable would be unnecessary.",
|
|
984
|
-
},
|
|
985
|
-
{
|
|
986
|
-
component: "Accordion",
|
|
987
|
-
family: "PrimitiveFamily",
|
|
988
|
-
section: "primitives",
|
|
989
|
-
maturity: "canonical",
|
|
990
|
-
summary: "Expandable disclosure primitive for stacked content.",
|
|
991
|
-
useWhen: "Use when dense sections should reveal more detail inline without leaving the current page context.",
|
|
992
|
-
},
|
|
993
|
-
{
|
|
994
|
-
component: "Collapse",
|
|
995
|
-
family: "PrimitiveFamily",
|
|
996
|
-
section: "transitional",
|
|
997
|
-
maturity: "transitional",
|
|
998
|
-
summary: "Low-level collapse primitive behind accordion-like disclosure patterns.",
|
|
999
|
-
useWhen: "Use when you need raw expand-collapse behavior and do not want Accordion’s higher-level structure.",
|
|
1000
|
-
},
|
|
1001
|
-
{
|
|
1002
|
-
component: "Calendar",
|
|
1003
|
-
family: "PrimitiveFamily",
|
|
1004
|
-
section: "transitional",
|
|
1005
|
-
maturity: "transitional",
|
|
1006
|
-
summary: "Calendar view primitive used by richer date pickers.",
|
|
1007
|
-
useWhen: "Use when a custom date-selection surface needs raw calendar control rather than the product-ready picker wrappers.",
|
|
1008
|
-
},
|
|
1009
|
-
{
|
|
1010
|
-
component: "Divider",
|
|
1011
|
-
family: "PrimitiveFamily",
|
|
1012
|
-
section: "transitional",
|
|
1013
|
-
maturity: "transitional",
|
|
1014
|
-
summary: "Visual separator for grouped content.",
|
|
1015
|
-
useWhen: "Use when layout sections need a subtle boundary without becoming a first-level product surface.",
|
|
1016
|
-
},
|
|
1017
|
-
{
|
|
1018
|
-
component: "Kbd",
|
|
1019
|
-
family: "PrimitiveFamily",
|
|
1020
|
-
section: "transitional",
|
|
1021
|
-
maturity: "transitional",
|
|
1022
|
-
summary: "Keyboard shortcut token.",
|
|
1023
|
-
useWhen: "Use when command surfaces and shortcuts should display consistent keycap styling inline.",
|
|
1024
|
-
},
|
|
1025
|
-
{
|
|
1026
|
-
component: "ScrollBox",
|
|
1027
|
-
family: "PrimitiveFamily",
|
|
1028
|
-
section: "transitional",
|
|
1029
|
-
maturity: "transitional",
|
|
1030
|
-
summary: "Scrollable content wrapper with constrained height.",
|
|
1031
|
-
useWhen: "Use when a panel or list needs local scrolling without teaching a larger product concept.",
|
|
1032
|
-
},
|
|
1033
|
-
] as const
|