@usefragments/core 1.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/LICENSE +21 -0
- package/dist/chunk-243QYRUF.js +2145 -0
- package/dist/chunk-243QYRUF.js.map +1 -0
- package/dist/chunk-3LLRNCPX.js +111 -0
- package/dist/chunk-3LLRNCPX.js.map +1 -0
- package/dist/chunk-EIYNNS77.js +48 -0
- package/dist/chunk-EIYNNS77.js.map +1 -0
- package/dist/chunk-JNBFJ34I.js +326 -0
- package/dist/chunk-JNBFJ34I.js.map +1 -0
- package/dist/chunk-R3X7UBHU.js +228 -0
- package/dist/chunk-R3X7UBHU.js.map +1 -0
- package/dist/chunk-SH4KPIYH.js +393 -0
- package/dist/chunk-SH4KPIYH.js.map +1 -0
- package/dist/chunk-V4VQB57N.js +56 -0
- package/dist/chunk-V4VQB57N.js.map +1 -0
- package/dist/chunk-X34IA4LR.js +319 -0
- package/dist/chunk-X34IA4LR.js.map +1 -0
- package/dist/chunk-YF65VYRY.js +493 -0
- package/dist/chunk-YF65VYRY.js.map +1 -0
- package/dist/codes/index.d.ts +40 -0
- package/dist/codes/index.js +23 -0
- package/dist/codes/index.js.map +1 -0
- package/dist/compiled-types/index.d.ts +5 -0
- package/dist/compiled-types/index.js +1 -0
- package/dist/compiled-types/index.js.map +1 -0
- package/dist/generate/index.d.ts +47 -0
- package/dist/generate/index.js +11 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/governance-BOa3KyiJ.d.ts +3279 -0
- package/dist/graph/index.d.ts +66 -0
- package/dist/graph/index.js +17 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/index.d.ts +11388 -0
- package/dist/index.js +8711 -0
- package/dist/index.js.map +1 -0
- package/dist/package-identity.d.ts +42 -0
- package/dist/package-identity.js +23 -0
- package/dist/package-identity.js.map +1 -0
- package/dist/preview/index.d.ts +484 -0
- package/dist/preview/index.js +1129 -0
- package/dist/preview/index.js.map +1 -0
- package/dist/react-types.d.ts +22 -0
- package/dist/react-types.js +1 -0
- package/dist/react-types.js.map +1 -0
- package/dist/registry.d.ts +2367 -0
- package/dist/registry.js +62 -0
- package/dist/registry.js.map +1 -0
- package/dist/schemas/index.d.ts +2584 -0
- package/dist/schemas/index.js +55 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/severity.d.ts +18 -0
- package/dist/severity.js +27 -0
- package/dist/severity.js.map +1 -0
- package/dist/test-utils.d.ts +14 -0
- package/dist/test-utils.js +63 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/topology/index.d.ts +48 -0
- package/dist/topology/index.js +7 -0
- package/dist/topology/index.js.map +1 -0
- package/dist/types-xJ2xyp_G.d.ts +119 -0
- package/package.json +120 -0
- package/src/__tests__/contract-parser.test.ts +614 -0
- package/src/__tests__/dtcg-generators.test.ts +439 -0
- package/src/__tests__/dtcg-parser.test.ts +884 -0
- package/src/__tests__/preview-runtime.test.tsx +111 -0
- package/src/__tests__/schema.test.ts +31 -0
- package/src/__tests__/severity.test.ts +34 -0
- package/src/__tests__/style-comparison.test.ts +662 -0
- package/src/__tests__/tokens-compat.test.ts +51 -0
- package/src/agent-format.test.ts +105 -0
- package/src/agent-format.ts +141 -0
- package/src/bundle.ts +149 -0
- package/src/codes/__tests__/codes.test.ts +73 -0
- package/src/codes/codes.ts +463 -0
- package/src/codes/index.ts +7 -0
- package/src/codes/source-finding-bridge.ts +113 -0
- package/src/compiled-types/index.ts +293 -0
- package/src/component-contract.ts +231 -0
- package/src/component-discovery.ts +80 -0
- package/src/composition.test.ts +262 -0
- package/src/composition.ts +318 -0
- package/src/config-paths.test.ts +78 -0
- package/src/config-paths.ts +47 -0
- package/src/config.ts +18 -0
- package/src/conform-prove.test.ts +274 -0
- package/src/conform-prove.ts +326 -0
- package/src/conform.ts +160 -0
- package/src/constants.ts +114 -0
- package/src/context.ts +2 -0
- package/src/contract/fixture.ts +110 -0
- package/src/contract/hash.test.ts +86 -0
- package/src/contract/hash.ts +195 -0
- package/src/contract/index.ts +43 -0
- package/src/contract/preimage.test.ts +254 -0
- package/src/contract/preimage.ts +365 -0
- package/src/contract/stamp.test.ts +100 -0
- package/src/contract/stamp.ts +105 -0
- package/src/contract-parser.ts +141 -0
- package/src/defineFragment.test.ts +257 -0
- package/src/defineFragment.ts +293 -0
- package/src/dtcg-generators.ts +324 -0
- package/src/dtcg-parser.ts +1 -0
- package/src/dtcg.ts +237 -0
- package/src/facts/__snapshots__/facts.test.ts.snap +124 -0
- package/src/facts/builders.ts +835 -0
- package/src/facts/compile.ts +422 -0
- package/src/facts/fact-index.ts +394 -0
- package/src/facts/facts.test.ts +494 -0
- package/src/facts/ids.ts +125 -0
- package/src/facts/index.ts +119 -0
- package/src/facts/types.ts +614 -0
- package/src/figma.ts +263 -0
- package/src/fragment-types.ts +214 -0
- package/src/generate/generate.test.ts +594 -0
- package/src/generate/index.ts +438 -0
- package/src/governance-integrity.test.ts +186 -0
- package/src/governance-integrity.ts +282 -0
- package/src/governance.test.ts +300 -0
- package/src/governance.ts +605 -0
- package/src/governance.type-test.ts +75 -0
- package/src/graph/engine.ts +446 -0
- package/src/graph/graph.test.ts +746 -0
- package/src/graph/index.ts +32 -0
- package/src/graph/serialization.ts +55 -0
- package/src/graph/types.ts +178 -0
- package/src/index.ts +891 -0
- package/src/local-canonical.ts +102 -0
- package/src/mcp-snapshot.ts +222 -0
- package/src/package-identity-match.ts +33 -0
- package/src/package-identity.generated.ts +233 -0
- package/src/package-identity.test.ts +99 -0
- package/src/package-identity.ts +157 -0
- package/src/performance-presets.ts +142 -0
- package/src/preview/comparison-artifact.test.ts +228 -0
- package/src/preview/comparison-artifact.ts +181 -0
- package/src/preview/comparison-context.ts +93 -0
- package/src/preview/comparison-evidence.ts +112 -0
- package/src/preview/comparison-format.ts +21 -0
- package/src/preview/comparison-presentation.ts +187 -0
- package/src/preview/comparison-references.test.ts +430 -0
- package/src/preview/comparison-references.ts +72 -0
- package/src/preview/comparison-score.ts +59 -0
- package/src/preview/comparison-styles.ts +197 -0
- package/src/preview/comparison.test.ts +559 -0
- package/src/preview/comparison.ts +488 -0
- package/src/preview/index.ts +10 -0
- package/src/preview/types.ts +309 -0
- package/src/preview/validation.test.ts +290 -0
- package/src/preview/validation.ts +356 -0
- package/src/preview-runtime.tsx +144 -0
- package/src/raw-html-canonical.test.ts +41 -0
- package/src/raw-html-canonical.ts +179 -0
- package/src/react-types.ts +21 -0
- package/src/registry-install-plan.ts +344 -0
- package/src/registry.test.ts +245 -0
- package/src/registry.ts +369 -0
- package/src/rules/a11y-required-accessible-name.ts +93 -0
- package/src/rules/color-math.test.ts +72 -0
- package/src/rules/color-math.ts +192 -0
- package/src/rules/components-forbidden-prop-value.ts +108 -0
- package/src/rules/components-prefer-library.ts +943 -0
- package/src/rules/components-unknown-prop.ts +94 -0
- package/src/rules/composition-pattern-schema.ts +125 -0
- package/src/rules/composition-pattern.test.ts +320 -0
- package/src/rules/composition-pattern.ts +271 -0
- package/src/rules/emit-gate.test.ts +42 -0
- package/src/rules/emit-gate.ts +60 -0
- package/src/rules/finding.ts +54 -0
- package/src/rules/index.ts +235 -0
- package/src/rules/jsx-preferred-component.ts +68 -0
- package/src/rules/jsx-preferred-import-path.ts +67 -0
- package/src/rules/presets.ts +57 -0
- package/src/rules/props-invalid-value.ts +115 -0
- package/src/rules/rules.test.ts +3636 -0
- package/src/rules/spacing-resolution.ts +184 -0
- package/src/rules/styles-no-raw-color.ts +329 -0
- package/src/rules/styles-no-raw-dimensions.ts +357 -0
- package/src/rules/styles-no-raw-spacing.ts +236 -0
- package/src/rules/styles-no-raw-typography.ts +237 -0
- package/src/rules/tailwind-arbitrary-color.test.ts +128 -0
- package/src/rules/tailwind-arbitrary-color.ts +93 -0
- package/src/rules/tailwind-arbitrary-spacing.test.ts +157 -0
- package/src/rules/tailwind-arbitrary-spacing.ts +120 -0
- package/src/rules/tailwind-forbidden-palette.test.ts +116 -0
- package/src/rules/tailwind-forbidden-palette.ts +107 -0
- package/src/rules/tailwind-off-scale-spacing-token.test.ts +100 -0
- package/src/rules/tailwind-off-scale-spacing-token.ts +108 -0
- package/src/rules/tailwind-raw-color-via-token.test.ts +108 -0
- package/src/rules/tailwind-raw-color-via-token.ts +82 -0
- package/src/rules/tailwind-rule-utils.ts +106 -0
- package/src/rules/tailwind-unknown-class.test.ts +157 -0
- package/src/rules/tailwind-unknown-class.ts +121 -0
- package/src/rules/taxonomy.test.ts +238 -0
- package/src/rules/theme-no-theme-coupled-literal.ts +132 -0
- package/src/rules/tiers.ts +111 -0
- package/src/rules/tokens-css-vars-must-be-defined.test.ts +244 -0
- package/src/rules/tokens-css-vars-must-be-defined.ts +156 -0
- package/src/rules/tokens-require-dual-fallback.ts +78 -0
- package/src/rules/types.ts +27 -0
- package/src/rules/utils.test.ts +110 -0
- package/src/rules/utils.ts +599 -0
- package/src/schema.ts +427 -0
- package/src/schemas/index.ts +275 -0
- package/src/schemas/schemas.test.ts +124 -0
- package/src/severity.ts +54 -0
- package/src/storyAdapter.test.ts +571 -0
- package/src/storyAdapter.ts +761 -0
- package/src/storyFilters.test.ts +350 -0
- package/src/storyFilters.ts +253 -0
- package/src/storybook-csf.ts +11 -0
- package/src/style-comparison.ts +423 -0
- package/src/test-utils.ts +68 -0
- package/src/token-parser.ts +2 -0
- package/src/token-types.ts +287 -0
- package/src/tokens/categories.ts +131 -0
- package/src/tokens/color.ts +193 -0
- package/src/tokens/design-token-parser.test.ts +159 -0
- package/src/tokens/design-token-parser.ts +402 -0
- package/src/tokens/dtcg.ts +428 -0
- package/src/tokens/index.ts +130 -0
- package/src/tokens/lookup.ts +19 -0
- package/src/tokens/scss.ts +171 -0
- package/src/tokens/tailwind-v4.ts +187 -0
- package/src/tokens/types.ts +43 -0
- package/src/topology/index.ts +9 -0
- package/src/topology/resolve-area.test.ts +174 -0
- package/src/topology/resolve-area.ts +215 -0
- package/src/types.ts +1057 -0
package/src/dtcg.ts
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* W3C Design Token Community Group (DTCG) format types and Zod schemas.
|
|
3
|
+
*
|
|
4
|
+
* Implements the W3C DTCG specification for design token files.
|
|
5
|
+
* @see https://www.designtokens.org/tr/2025.10/format/
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Token types per DTCG spec
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
export type DTCGTokenType =
|
|
15
|
+
| 'color'
|
|
16
|
+
| 'dimension'
|
|
17
|
+
| 'fontFamily'
|
|
18
|
+
| 'fontWeight'
|
|
19
|
+
| 'duration'
|
|
20
|
+
| 'cubicBezier'
|
|
21
|
+
| 'number'
|
|
22
|
+
| 'shadow'
|
|
23
|
+
| 'border'
|
|
24
|
+
| 'strokeStyle'
|
|
25
|
+
| 'transition'
|
|
26
|
+
| 'gradient'
|
|
27
|
+
| 'typography';
|
|
28
|
+
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Value types per DTCG spec
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
/** Color value (sRGB) */
|
|
34
|
+
export interface DTCGColorValue {
|
|
35
|
+
colorSpace: string;
|
|
36
|
+
components: number[];
|
|
37
|
+
hex?: string;
|
|
38
|
+
alpha?: number;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Dimension value */
|
|
42
|
+
export interface DTCGDimensionValue {
|
|
43
|
+
value: number;
|
|
44
|
+
unit: 'px' | 'rem';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Shadow value (single layer) */
|
|
48
|
+
export interface DTCGShadowValue {
|
|
49
|
+
color: string | DTCGColorValue;
|
|
50
|
+
offsetX: string | DTCGDimensionValue;
|
|
51
|
+
offsetY: string | DTCGDimensionValue;
|
|
52
|
+
blur: string | DTCGDimensionValue;
|
|
53
|
+
spread: string | DTCGDimensionValue;
|
|
54
|
+
inset?: boolean;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Border value */
|
|
58
|
+
export interface DTCGBorderValue {
|
|
59
|
+
color: string | DTCGColorValue;
|
|
60
|
+
width: string | DTCGDimensionValue;
|
|
61
|
+
style: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Typography value */
|
|
65
|
+
export interface DTCGTypographyValue {
|
|
66
|
+
fontFamily: string | string[];
|
|
67
|
+
fontSize: string | DTCGDimensionValue;
|
|
68
|
+
fontWeight: number | string;
|
|
69
|
+
letterSpacing?: string | DTCGDimensionValue;
|
|
70
|
+
lineHeight?: string | number;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Transition value */
|
|
74
|
+
export interface DTCGTransitionValue {
|
|
75
|
+
duration: string;
|
|
76
|
+
delay?: string;
|
|
77
|
+
timingFunction: number[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/** Gradient stop */
|
|
81
|
+
export interface DTCGGradientStop {
|
|
82
|
+
color: string | DTCGColorValue;
|
|
83
|
+
position: number;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Cubic bezier value */
|
|
87
|
+
export type DTCGCubicBezierValue = [number, number, number, number];
|
|
88
|
+
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Token and group structures
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
|
|
93
|
+
/** A single design token */
|
|
94
|
+
export interface DTCGToken {
|
|
95
|
+
$value: unknown;
|
|
96
|
+
$type?: DTCGTokenType;
|
|
97
|
+
$description?: string;
|
|
98
|
+
$deprecated?: boolean | string;
|
|
99
|
+
$extensions?: Record<string, unknown>;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** A group (recursive container for tokens and sub-groups) */
|
|
103
|
+
export interface DTCGGroup {
|
|
104
|
+
$type?: DTCGTokenType;
|
|
105
|
+
$description?: string;
|
|
106
|
+
$deprecated?: boolean | string;
|
|
107
|
+
$extensions?: Record<string, unknown>;
|
|
108
|
+
$extends?: string;
|
|
109
|
+
[key: string]: DTCGToken | DTCGGroup | unknown;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** Root file structure — a top-level group */
|
|
113
|
+
export type DTCGTokenFile = DTCGGroup;
|
|
114
|
+
|
|
115
|
+
// ---------------------------------------------------------------------------
|
|
116
|
+
// Resolved token (after parsing)
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
|
|
119
|
+
export interface ResolvedDTCGToken {
|
|
120
|
+
/** Dot-separated path (e.g., "color.brand.primary") */
|
|
121
|
+
path: string;
|
|
122
|
+
/** Resolved type (inherited from group if not set on token) */
|
|
123
|
+
type: DTCGTokenType;
|
|
124
|
+
/** Raw $value from the token */
|
|
125
|
+
rawValue: unknown;
|
|
126
|
+
/** CSS-compatible string value */
|
|
127
|
+
cssValue: string;
|
|
128
|
+
/** Description */
|
|
129
|
+
description?: string;
|
|
130
|
+
/** Whether token is deprecated */
|
|
131
|
+
deprecated?: boolean | string;
|
|
132
|
+
/** Extensions data */
|
|
133
|
+
extensions?: Record<string, unknown>;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
// Zod schemas for runtime validation
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
|
|
140
|
+
const dtcgTokenTypeSchema = z.enum([
|
|
141
|
+
'color', 'dimension', 'fontFamily', 'fontWeight',
|
|
142
|
+
'duration', 'cubicBezier', 'number',
|
|
143
|
+
'shadow', 'border', 'strokeStyle', 'transition',
|
|
144
|
+
'gradient', 'typography',
|
|
145
|
+
]);
|
|
146
|
+
|
|
147
|
+
const dtcgColorValueSchema = z.union([
|
|
148
|
+
z.string(),
|
|
149
|
+
z.object({
|
|
150
|
+
colorSpace: z.string().default('srgb'),
|
|
151
|
+
components: z.array(z.number()),
|
|
152
|
+
hex: z.string().optional(),
|
|
153
|
+
alpha: z.number().optional(),
|
|
154
|
+
}),
|
|
155
|
+
]);
|
|
156
|
+
|
|
157
|
+
const dtcgDimensionValueSchema = z.union([
|
|
158
|
+
z.string(),
|
|
159
|
+
z.object({
|
|
160
|
+
value: z.number(),
|
|
161
|
+
unit: z.enum(['px', 'rem']),
|
|
162
|
+
}),
|
|
163
|
+
]);
|
|
164
|
+
|
|
165
|
+
const dtcgShadowValueSchema = z.object({
|
|
166
|
+
color: dtcgColorValueSchema,
|
|
167
|
+
offsetX: dtcgDimensionValueSchema,
|
|
168
|
+
offsetY: dtcgDimensionValueSchema,
|
|
169
|
+
blur: dtcgDimensionValueSchema,
|
|
170
|
+
spread: dtcgDimensionValueSchema.optional(),
|
|
171
|
+
inset: z.boolean().optional(),
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
const dtcgBorderValueSchema = z.object({
|
|
175
|
+
color: dtcgColorValueSchema,
|
|
176
|
+
width: dtcgDimensionValueSchema,
|
|
177
|
+
style: z.string(),
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
const dtcgTypographyValueSchema = z.object({
|
|
181
|
+
fontFamily: z.union([z.string(), z.array(z.string())]),
|
|
182
|
+
fontSize: dtcgDimensionValueSchema,
|
|
183
|
+
fontWeight: z.union([z.number(), z.string()]),
|
|
184
|
+
letterSpacing: dtcgDimensionValueSchema.optional(),
|
|
185
|
+
lineHeight: z.union([z.string(), z.number()]).optional(),
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
const dtcgTransitionValueSchema = z.object({
|
|
189
|
+
duration: z.string(),
|
|
190
|
+
delay: z.string().optional(),
|
|
191
|
+
timingFunction: z.array(z.number()).length(4),
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
const dtcgGradientStopSchema = z.object({
|
|
195
|
+
color: dtcgColorValueSchema,
|
|
196
|
+
position: z.number(),
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
const dtcgCubicBezierValueSchema = z.tuple([
|
|
200
|
+
z.number(), z.number(), z.number(), z.number(),
|
|
201
|
+
]);
|
|
202
|
+
|
|
203
|
+
/** Schema for a single token node (has $value) */
|
|
204
|
+
const dtcgTokenSchema = z.object({
|
|
205
|
+
$value: z.unknown(),
|
|
206
|
+
$type: dtcgTokenTypeSchema.optional(),
|
|
207
|
+
$description: z.string().optional(),
|
|
208
|
+
$deprecated: z.union([z.boolean(), z.string()]).optional(),
|
|
209
|
+
$extensions: z.record(z.string(), z.unknown()).optional(),
|
|
210
|
+
}).passthrough();
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Top-level schema for a DTCG token file.
|
|
214
|
+
* Validates the root structure — individual tokens are validated by type
|
|
215
|
+
* during parsing since the tree is recursive.
|
|
216
|
+
*/
|
|
217
|
+
export const dtcgTokenFileSchema = z.record(z.string(), z.unknown()).refine(
|
|
218
|
+
(data) => {
|
|
219
|
+
// A valid DTCG file should not be empty and should not be an array
|
|
220
|
+
return data !== null && typeof data === 'object' && !Array.isArray(data);
|
|
221
|
+
},
|
|
222
|
+
{ message: 'DTCG token file must be a JSON object' },
|
|
223
|
+
);
|
|
224
|
+
|
|
225
|
+
// Export individual schemas for consumers
|
|
226
|
+
export {
|
|
227
|
+
dtcgTokenTypeSchema,
|
|
228
|
+
dtcgTokenSchema,
|
|
229
|
+
dtcgColorValueSchema,
|
|
230
|
+
dtcgDimensionValueSchema,
|
|
231
|
+
dtcgShadowValueSchema,
|
|
232
|
+
dtcgBorderValueSchema,
|
|
233
|
+
dtcgTypographyValueSchema,
|
|
234
|
+
dtcgTransitionValueSchema,
|
|
235
|
+
dtcgGradientStopSchema,
|
|
236
|
+
dtcgCubicBezierValueSchema,
|
|
237
|
+
};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`fact IR — deterministic snapshot > compiles the sample fragment to a stable, sorted snapshot 1`] = `
|
|
4
|
+
[
|
|
5
|
+
{
|
|
6
|
+
"because": "Buttons must announce their action.",
|
|
7
|
+
"componentId": "@usefragments/ui#Button",
|
|
8
|
+
"id": "a11y_name_required:fd20d9e34b60c0af",
|
|
9
|
+
"kind": "a11y_name_required",
|
|
10
|
+
"severity": "error",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"capability": "dom.button",
|
|
14
|
+
"componentId": "@usefragments/ui#Button",
|
|
15
|
+
"id": "component_capability:1d26f741f1c1cf85",
|
|
16
|
+
"kind": "component_capability",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"category": "forms",
|
|
20
|
+
"componentId": "@usefragments/ui#Button",
|
|
21
|
+
"description": "Interactive element for user-triggered actions.",
|
|
22
|
+
"filePath": undefined,
|
|
23
|
+
"id": "component:c4102dfa02b9634e",
|
|
24
|
+
"kind": "component",
|
|
25
|
+
"name": "Button",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"componentId": "@usefragments/ui#Button",
|
|
29
|
+
"default": undefined,
|
|
30
|
+
"description": "Size of the button",
|
|
31
|
+
"id": "prop_metadata:2cb71442de8109be",
|
|
32
|
+
"kind": "prop_metadata",
|
|
33
|
+
"prop": "size",
|
|
34
|
+
"required": false,
|
|
35
|
+
"type": "enum",
|
|
36
|
+
"values": [
|
|
37
|
+
"sm",
|
|
38
|
+
"md",
|
|
39
|
+
"lg",
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"componentId": "@usefragments/ui#Button",
|
|
44
|
+
"default": undefined,
|
|
45
|
+
"description": "Visual style",
|
|
46
|
+
"id": "prop_metadata:6109eb78d131644c",
|
|
47
|
+
"kind": "prop_metadata",
|
|
48
|
+
"prop": "variant",
|
|
49
|
+
"required": false,
|
|
50
|
+
"type": "enum",
|
|
51
|
+
"values": [
|
|
52
|
+
"primary",
|
|
53
|
+
"secondary",
|
|
54
|
+
"ghost",
|
|
55
|
+
"link",
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"componentId": "@usefragments/ui#Button",
|
|
60
|
+
"default": undefined,
|
|
61
|
+
"description": "Disables the button",
|
|
62
|
+
"id": "prop_metadata:c93e5811d4471225",
|
|
63
|
+
"kind": "prop_metadata",
|
|
64
|
+
"prop": "disabled",
|
|
65
|
+
"required": false,
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"values": undefined,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"because": "Use Link for ordinary navigation.",
|
|
71
|
+
"componentId": "@usefragments/ui#Button",
|
|
72
|
+
"id": "prop_value_avoided:0d3e1c622bd230f6",
|
|
73
|
+
"kind": "prop_value_avoided",
|
|
74
|
+
"prop": "variant",
|
|
75
|
+
"severity": "warn",
|
|
76
|
+
"suggest": undefined,
|
|
77
|
+
"value": "link",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"because": "Checkout CTAs should stay visually dominant.",
|
|
81
|
+
"componentId": "@usefragments/ui#Button",
|
|
82
|
+
"id": "prop_value_forbidden:a84799cc456f2908",
|
|
83
|
+
"kind": "prop_value_forbidden",
|
|
84
|
+
"pathPattern": "apps/checkout/**",
|
|
85
|
+
"prop": "variant",
|
|
86
|
+
"replaceWith": "primary",
|
|
87
|
+
"severity": "error",
|
|
88
|
+
"value": "secondary",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "scale_value:4c5bf2023f8fe7e6",
|
|
92
|
+
"kind": "scale_value",
|
|
93
|
+
"scale": "space",
|
|
94
|
+
"value": 0,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "scale_value:6a82590ad1db7b8e",
|
|
98
|
+
"kind": "scale_value",
|
|
99
|
+
"scale": "space",
|
|
100
|
+
"value": 8,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "scale_value:8abc65b62aac9472",
|
|
104
|
+
"kind": "scale_value",
|
|
105
|
+
"scale": "space",
|
|
106
|
+
"value": 4,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "scale:6857f032ced40006",
|
|
110
|
+
"kind": "scale",
|
|
111
|
+
"name": "space",
|
|
112
|
+
"unit": "px",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"except": [
|
|
116
|
+
"transparent",
|
|
117
|
+
],
|
|
118
|
+
"id": "style_raw_color_forbidden:8e4b55c7e9750a7b",
|
|
119
|
+
"kind": "style_raw_color_forbidden",
|
|
120
|
+
"prefer": "token",
|
|
121
|
+
"severity": "error",
|
|
122
|
+
},
|
|
123
|
+
]
|
|
124
|
+
`;
|