@equal-experts/kuat-react 0.14.0 → 0.15.0-beta.1
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/agent-docs/AGENTS.md +1 -1
- package/agent-docs/README.md +1 -1
- package/agent-docs/components/callout.md +66 -0
- package/agent-docs/components/components.manifest.json +6 -0
- package/agent-docs/external/kuat-agent-rules/reference/accessibility/accessibility.md +27 -1
- package/agent-docs/external/kuat-agent-rules/reference/design-language/colour-usage.md +107 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/colours.md +86 -11
- package/agent-docs/external/kuat-agent-rules/reference/design-language/tokens/colors.tokens.json +193 -5
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/patterns/README.md +6 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/website.md +14 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/README.md +1 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/accessibility.md +0 -29
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/colour-modes.md +58 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/component-decision-tree.md +3 -32
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/component-registry.md +1 -1
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/product-content.md +0 -26
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/README.md +14 -5
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/{forms.md → complete-a-form.md} +43 -53
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/{dashboards.md → dashboard.md} +42 -51
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/documentation.md +41 -51
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/{authentication.md → sign-in.md} +42 -52
- package/agent-docs/manifest.json +3 -3
- package/agent-docs/rules/LOADING-consumer.md +1 -1
- package/dist/callout-DFmAtUwR.js +46 -0
- package/dist/callout.d.ts +3 -0
- package/dist/callout.js +7 -0
- package/dist/components/ui/callout/callout.d.ts +19 -0
- package/dist/components/ui/callout/index.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +196 -193
- package/dist/style.css +1 -1
- package/package.json +5 -1
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
# Documentation
|
|
1
|
+
# Documentation
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**User goal:** Find information quickly, understand it, complete tasks with step-by-step guidance, and
|
|
4
|
+
stay oriented throughout.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
> **Pattern:** *Pages* · single-medium (web-product) — concept and implementation together.
|
|
7
|
+
> Covers documentation sites, knowledge bases, API references, and content-heavy pages.
|
|
6
8
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
### User Goals
|
|
9
|
+
## Context
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
- **Stay oriented** - Know where they are and where to go next
|
|
11
|
+
Documentation is where users go to find information, understand how something works, and complete tasks.
|
|
12
|
+
They want to search and navigate efficiently, read clear and well-structured explanations, follow
|
|
13
|
+
step-by-step guidance that works, and always know where they are and where to go next.
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
## Principles
|
|
17
16
|
|
|
18
17
|
| Principle | Implementation |
|
|
19
18
|
|-----------|----------------|
|
|
@@ -22,22 +21,18 @@ Patterns for documentation sites, knowledge bases, API references, and content-h
|
|
|
22
21
|
| Multiple paths | Search, navigation, breadcrumbs |
|
|
23
22
|
| Progressive detail | Overview first, details on demand |
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
Success shows up as: search effectiveness (found what they needed), time to find information, page bounce
|
|
25
|
+
rate, and task completion rate for tutorials.
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
- Time to find information
|
|
29
|
-
- Page bounce rate
|
|
30
|
-
- Task completion rate (for tutorials)
|
|
27
|
+
## Solution in web-product
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Layout
|
|
29
|
+
### Layout
|
|
35
30
|
|
|
36
31
|
**Base Layout:** Sidebar Navigation + Split Layout
|
|
37
32
|
|
|
38
33
|
Documentation uses a three-column layout on desktop:
|
|
39
34
|
|
|
40
|
-
|
|
35
|
+
#### Docs Landing Page
|
|
41
36
|
|
|
42
37
|
Use Horizontal Navigation:
|
|
43
38
|
|
|
@@ -57,7 +52,7 @@ Use Horizontal Navigation:
|
|
|
57
52
|
└─────────────────────────────────────┘
|
|
58
53
|
```
|
|
59
54
|
|
|
60
|
-
|
|
55
|
+
#### Docs Content Page
|
|
61
56
|
|
|
62
57
|
Use Sidebar + Split (three-column):
|
|
63
58
|
|
|
@@ -77,7 +72,7 @@ Use Sidebar + Split (three-column):
|
|
|
77
72
|
└──────┴──────────────────────────────────┘
|
|
78
73
|
```
|
|
79
74
|
|
|
80
|
-
|
|
75
|
+
#### Specifications
|
|
81
76
|
|
|
82
77
|
| Element | Value |
|
|
83
78
|
|---------|-------|
|
|
@@ -86,11 +81,9 @@ Use Sidebar + Split (three-column):
|
|
|
86
81
|
| Content max-width | 800px (prose) |
|
|
87
82
|
| Content padding | 32-48px |
|
|
88
83
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
## Design
|
|
84
|
+
### Design
|
|
92
85
|
|
|
93
|
-
|
|
86
|
+
#### Color Tokens
|
|
94
87
|
|
|
95
88
|
| Element | Token |
|
|
96
89
|
|---------|-------|
|
|
@@ -101,7 +94,7 @@ Use Sidebar + Split (three-column):
|
|
|
101
94
|
| Inline code | `bg-muted` |
|
|
102
95
|
| Links | `text-primary` |
|
|
103
96
|
|
|
104
|
-
|
|
97
|
+
#### Typography
|
|
105
98
|
|
|
106
99
|
| Element | Style |
|
|
107
100
|
|---------|-------|
|
|
@@ -112,7 +105,7 @@ Use Sidebar + Split (three-column):
|
|
|
112
105
|
| Code | `font-mono text-sm` |
|
|
113
106
|
| Sidebar nav | `text-sm` |
|
|
114
107
|
|
|
115
|
-
|
|
108
|
+
#### Navigation Sidebar
|
|
116
109
|
|
|
117
110
|
| Element | Specification |
|
|
118
111
|
|---------|---------------|
|
|
@@ -123,7 +116,7 @@ Use Sidebar + Split (three-column):
|
|
|
123
116
|
| Sub-pages | Indented, smaller text |
|
|
124
117
|
| Scroll | Independent from content |
|
|
125
118
|
|
|
126
|
-
|
|
119
|
+
#### Table of Contents (Right)
|
|
127
120
|
|
|
128
121
|
| Element | Specification |
|
|
129
122
|
|---------|---------------|
|
|
@@ -132,11 +125,9 @@ Use Sidebar + Split (three-column):
|
|
|
132
125
|
| Active tracking | Highlight current section on scroll |
|
|
133
126
|
| Visibility | Hide below 1280px |
|
|
134
127
|
|
|
135
|
-
|
|
128
|
+
### Content
|
|
136
129
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
### Page Structure
|
|
130
|
+
#### Page Structure
|
|
140
131
|
|
|
141
132
|
```markdown
|
|
142
133
|
# Page Title ← H1, one per page
|
|
@@ -150,7 +141,7 @@ Intro paragraph ← No heading, describes page purpose
|
|
|
150
141
|
#### Detail ← H4, use sparingly
|
|
151
142
|
```
|
|
152
143
|
|
|
153
|
-
|
|
144
|
+
#### Navigation Hierarchy
|
|
154
145
|
|
|
155
146
|
```
|
|
156
147
|
Getting Started ← Category (bold, not clickable)
|
|
@@ -163,7 +154,7 @@ Components ← Category
|
|
|
163
154
|
Examples ← Sub-page
|
|
164
155
|
```
|
|
165
156
|
|
|
166
|
-
|
|
157
|
+
#### Breadcrumbs
|
|
167
158
|
|
|
168
159
|
```
|
|
169
160
|
Docs / Components / Button / Variants
|
|
@@ -173,7 +164,7 @@ Docs / Components / Button / Variants
|
|
|
173
164
|
- All items clickable except current
|
|
174
165
|
- Truncate middle items on mobile if needed
|
|
175
166
|
|
|
176
|
-
|
|
167
|
+
#### Previous/Next Navigation
|
|
177
168
|
|
|
178
169
|
```
|
|
179
170
|
┌─────────────────────────────────────────┐
|
|
@@ -186,9 +177,7 @@ Docs / Components / Button / Variants
|
|
|
186
177
|
- Based on sidebar navigation order
|
|
187
178
|
- Show page titles, not just "Previous/Next"
|
|
188
179
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
## Accessibility
|
|
180
|
+
### Accessibility
|
|
192
181
|
|
|
193
182
|
**Base requirements:** See [accessibility foundations](../../../accessibility/accessibility.md) and [web accessibility](../accessibility.md)
|
|
194
183
|
|
|
@@ -203,18 +192,16 @@ Docs / Components / Button / Variants
|
|
|
203
192
|
| Code blocks | Scrollable with keyboard, screen reader context |
|
|
204
193
|
| Multiple nav labels | `aria-label` to distinguish left vs right sidebars |
|
|
205
194
|
|
|
206
|
-
|
|
195
|
+
#### Code Blocks
|
|
207
196
|
|
|
208
197
|
- Ensure code blocks are keyboard scrollable
|
|
209
198
|
- Provide language context for screen readers
|
|
210
199
|
- Copy button must be keyboard accessible
|
|
211
200
|
- Don't rely on syntax highlighting alone for meaning
|
|
212
201
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
## Implementation
|
|
202
|
+
### Implementation
|
|
216
203
|
|
|
217
|
-
|
|
204
|
+
#### Code Block Patterns
|
|
218
205
|
|
|
219
206
|
**Inline Code:**
|
|
220
207
|
|
|
@@ -248,7 +235,7 @@ Docs / Components / Button / Variants
|
|
|
248
235
|
- Preserve selection across page navigation
|
|
249
236
|
- Accessible tab panel pattern
|
|
250
237
|
|
|
251
|
-
|
|
238
|
+
#### Search Patterns
|
|
252
239
|
|
|
253
240
|
**Search Bar:**
|
|
254
241
|
|
|
@@ -264,7 +251,7 @@ Docs / Components / Button / Variants
|
|
|
264
251
|
- Keyboard navigation (arrows + enter)
|
|
265
252
|
- Recent searches
|
|
266
253
|
|
|
267
|
-
|
|
254
|
+
#### Table of Contents Behavior
|
|
268
255
|
|
|
269
256
|
| Behavior | Implementation |
|
|
270
257
|
|----------|----------------|
|
|
@@ -274,7 +261,7 @@ Docs / Components / Button / Variants
|
|
|
274
261
|
| Hide on small screens | Below 1280px |
|
|
275
262
|
| Collapse | Optionally collapsible |
|
|
276
263
|
|
|
277
|
-
|
|
264
|
+
#### Responsive Behavior
|
|
278
265
|
|
|
279
266
|
| Breakpoint | Left Sidebar | Content | Right Sidebar |
|
|
280
267
|
|------------|--------------|---------|---------------|
|
|
@@ -282,8 +269,6 @@ Docs / Components / Button / Variants
|
|
|
282
269
|
| Tablet | Collapsible | Full width | Hidden |
|
|
283
270
|
| Desktop | Visible (240px) | Centered (max 800px) | Visible (200px) |
|
|
284
271
|
|
|
285
|
-
---
|
|
286
|
-
|
|
287
272
|
## Best Practices
|
|
288
273
|
|
|
289
274
|
### Do's
|
|
@@ -324,9 +309,14 @@ Docs / Components / Button / Variants
|
|
|
324
309
|
| External links | Mark with icon, open in new tab |
|
|
325
310
|
| Deprecated content | Clear warnings, link to current |
|
|
326
311
|
|
|
327
|
-
|
|
312
|
+
## Examples
|
|
313
|
+
|
|
314
|
+
The three-column docs content page above is the canonical mid-fidelity frame: a left navigation sidebar
|
|
315
|
+
(240-280px) with the doc tree, a centred prose column (max 800px) carrying breadcrumbs, title, and body,
|
|
316
|
+
and a sticky right-hand "On This Page" table of contents. The docs landing page is the same system in a
|
|
317
|
+
horizontal-nav variant — hero search, category cards, popular articles — with the sidebar dropped.
|
|
328
318
|
|
|
329
|
-
## Related
|
|
319
|
+
## Related
|
|
330
320
|
|
|
331
321
|
- [Product Design](../design.md) - Sidebar and Split layouts
|
|
332
322
|
- [Accessibility foundations](../../../accessibility/accessibility.md) - Structure and headings
|
|
@@ -1,42 +1,38 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Help users to sign in
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**User goal:** Get into the product quickly and securely, and recover access without friction when a
|
|
4
|
+
password is forgotten.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
> **Pattern:** *Help users to…* · single-medium (web-product) — concept and implementation together.
|
|
7
|
+
> Covers login, registration, password reset, and MFA / code entry.
|
|
6
8
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
### User Goals
|
|
9
|
+
## Context
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
Authentication is a barrier to the user's real task. Users want to get in quickly, trust that their
|
|
12
|
+
credentials are protected, and recover easily when something goes wrong. It is the first impression of
|
|
13
|
+
the product's competence, so friction and unclear errors here cost disproportionately.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## Principles
|
|
16
16
|
|
|
17
|
-
| Principle |
|
|
17
|
+
| Principle | What it means |
|
|
18
18
|
|-----------|----------------|
|
|
19
19
|
| Minimise friction | Only ask for essential information |
|
|
20
20
|
| Clear feedback | Immediate, helpful error messages |
|
|
21
21
|
| Maintain trust | Security indicators, clear privacy info |
|
|
22
22
|
| Support recovery | Easy password reset, account recovery |
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Success shows up as: time to complete login/registration, password-reset completion rate, error and
|
|
25
|
+
recovery rates, and abandonment rate.
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
- Password reset completion rate
|
|
28
|
-
- Error rate and recovery success
|
|
29
|
-
- Abandonment rate
|
|
27
|
+
## Solution in web-product
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
## Layout
|
|
29
|
+
### Layout
|
|
34
30
|
|
|
35
31
|
**Base Layout:** Single Column
|
|
36
32
|
|
|
37
33
|
Authentication pages should minimise distraction and focus users on the task.
|
|
38
34
|
|
|
39
|
-
|
|
35
|
+
#### Page Structure
|
|
40
36
|
|
|
41
37
|
```
|
|
42
38
|
┌─────────────────────────────────────────┐
|
|
@@ -59,7 +55,7 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
59
55
|
└─────────────────────────────────────────┘
|
|
60
56
|
```
|
|
61
57
|
|
|
62
|
-
|
|
58
|
+
#### Specifications
|
|
63
59
|
|
|
64
60
|
| Element | Value |
|
|
65
61
|
|---------|-------|
|
|
@@ -71,23 +67,21 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
71
67
|
| Minimum viewport height | 100vh |
|
|
72
68
|
| Logo placement | Centered above card, or inside card header |
|
|
73
69
|
|
|
74
|
-
|
|
70
|
+
#### Header
|
|
75
71
|
|
|
76
72
|
- **Minimal navigation** - Logo only, no full navigation
|
|
77
73
|
- Logo links to marketing site or app home
|
|
78
74
|
- No distracting elements
|
|
79
75
|
|
|
80
|
-
|
|
76
|
+
#### Footer
|
|
81
77
|
|
|
82
78
|
- Minimal: legal links only (Privacy Policy, Terms)
|
|
83
79
|
- Copyright notice optional
|
|
84
80
|
- No marketing content
|
|
85
81
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
## Design
|
|
82
|
+
### Design
|
|
89
83
|
|
|
90
|
-
|
|
84
|
+
#### Color Tokens
|
|
91
85
|
|
|
92
86
|
| Element | Token |
|
|
93
87
|
|---------|-------|
|
|
@@ -98,7 +92,7 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
98
92
|
| Error text | `text-destructive` |
|
|
99
93
|
| Link text | `text-primary` |
|
|
100
94
|
|
|
101
|
-
|
|
95
|
+
#### Typography
|
|
102
96
|
|
|
103
97
|
| Element | Style |
|
|
104
98
|
|---------|-------|
|
|
@@ -109,7 +103,7 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
109
103
|
| Error messages | `text-sm text-destructive` |
|
|
110
104
|
| Links | `text-sm text-primary underline` |
|
|
111
105
|
|
|
112
|
-
|
|
106
|
+
#### Spacing
|
|
113
107
|
|
|
114
108
|
| Element | Spacing |
|
|
115
109
|
|---------|---------|
|
|
@@ -119,11 +113,9 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
119
113
|
| Form to button | 24px |
|
|
120
114
|
| Button to secondary link | 16px |
|
|
121
115
|
|
|
122
|
-
|
|
116
|
+
### Content
|
|
123
117
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
### Login Page
|
|
118
|
+
#### Login Page
|
|
127
119
|
|
|
128
120
|
**Required Elements:**
|
|
129
121
|
|
|
@@ -146,7 +138,7 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
146
138
|
| Forgot link | "Forgot your password?" |
|
|
147
139
|
| Register link | "Don't have an account? Sign up" |
|
|
148
140
|
|
|
149
|
-
|
|
141
|
+
#### Registration Page
|
|
150
142
|
|
|
151
143
|
**Required Elements:**
|
|
152
144
|
|
|
@@ -166,7 +158,7 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
166
158
|
- Unmet: `text-muted-foreground`
|
|
167
159
|
- Met: `text-green-600` with checkmark
|
|
168
160
|
|
|
169
|
-
|
|
161
|
+
#### Password Reset Flow
|
|
170
162
|
|
|
171
163
|
**Step 1: Request Reset**
|
|
172
164
|
|
|
@@ -181,16 +173,14 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
181
173
|
- Password requirements visible
|
|
182
174
|
- "Reset password" button
|
|
183
175
|
|
|
184
|
-
|
|
176
|
+
#### MFA / Code Entry
|
|
185
177
|
|
|
186
178
|
- 6-digit code input (individual boxes or single field)
|
|
187
179
|
- "Resend code" link with countdown timer
|
|
188
180
|
- "Use different method" secondary action
|
|
189
181
|
- Clear instructions on where code was sent
|
|
190
182
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
## Accessibility
|
|
183
|
+
### Accessibility
|
|
194
184
|
|
|
195
185
|
**Base requirements:** See [accessibility foundations](../../../accessibility/accessibility.md) and [web accessibility](../accessibility.md)
|
|
196
186
|
|
|
@@ -205,7 +195,7 @@ Authentication pages should minimise distraction and focus users on the task.
|
|
|
205
195
|
| Password toggle | Toggle button is keyboard accessible |
|
|
206
196
|
| Error announcement | Screen reader announces errors on submit |
|
|
207
197
|
|
|
208
|
-
|
|
198
|
+
#### Form Validation
|
|
209
199
|
|
|
210
200
|
Follow the standard validation pattern:
|
|
211
201
|
|
|
@@ -215,11 +205,9 @@ Follow the standard validation pattern:
|
|
|
215
205
|
- **Error summary** - Show summary at top with links to fields
|
|
216
206
|
- **Focus first error** - Move focus to first invalid field
|
|
217
207
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
## Implementation
|
|
208
|
+
### Implementation
|
|
221
209
|
|
|
222
|
-
|
|
210
|
+
#### Button Placement
|
|
223
211
|
|
|
224
212
|
**Component guide:** `shadcn:button` — the `components/button.md` guide lives in the consumer package or overlay (see [component-registry.md](../component-registry.md)).
|
|
225
213
|
|
|
@@ -229,7 +217,7 @@ Follow the standard validation pattern:
|
|
|
229
217
|
| Secondary link | Below button, centered | Text link |
|
|
230
218
|
| Forgot password | Below password field, right | Text link |
|
|
231
219
|
|
|
232
|
-
|
|
220
|
+
#### Error States
|
|
233
221
|
|
|
234
222
|
| Error Type | Display Location |
|
|
235
223
|
|------------|-----------------|
|
|
@@ -238,7 +226,7 @@ Follow the standard validation pattern:
|
|
|
238
226
|
| Rate limiting | Alert above form with wait time |
|
|
239
227
|
| Network error | Alert above form with retry option |
|
|
240
228
|
|
|
241
|
-
|
|
229
|
+
#### Security Considerations
|
|
242
230
|
|
|
243
231
|
| Requirement | Implementation |
|
|
244
232
|
|-------------|----------------|
|
|
@@ -247,7 +235,7 @@ Follow the standard validation pattern:
|
|
|
247
235
|
| Password visibility | Toggle with clear state indication |
|
|
248
236
|
| Session timeout | Warn before logging out |
|
|
249
237
|
|
|
250
|
-
|
|
238
|
+
#### Responsive Behavior
|
|
251
239
|
|
|
252
240
|
| Breakpoint | Behavior |
|
|
253
241
|
|------------|----------|
|
|
@@ -255,8 +243,6 @@ Follow the standard validation pattern:
|
|
|
255
243
|
| Tablet | Centered card, 400px max |
|
|
256
244
|
| Desktop | Centered card, 400px max |
|
|
257
245
|
|
|
258
|
-
---
|
|
259
|
-
|
|
260
246
|
## Best Practices
|
|
261
247
|
|
|
262
248
|
### Do's
|
|
@@ -294,10 +280,14 @@ Follow the standard validation pattern:
|
|
|
294
280
|
| Email not verified | Offer to resend verification |
|
|
295
281
|
| Session expired mid-flow | Preserve form data, prompt re-authentication |
|
|
296
282
|
|
|
297
|
-
|
|
283
|
+
## Examples
|
|
284
|
+
|
|
285
|
+
The single centred auth card above (max 400px, logo centred, primary action full-width) is the canonical
|
|
286
|
+
mid-fidelity frame. The same frame serves login, registration, password reset, and MFA — the fields and
|
|
287
|
+
microcopy change, the layout does not.
|
|
298
288
|
|
|
299
|
-
## Related
|
|
289
|
+
## Related
|
|
300
290
|
|
|
301
291
|
- [Product Design](../design.md) - Layout patterns
|
|
302
292
|
- [Web Accessibility](../accessibility.md) - Form validation pattern
|
|
303
|
-
- [
|
|
293
|
+
- [Help users to complete a form](./complete-a-form.md) - General form patterns
|
package/agent-docs/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageVersion": "0.
|
|
2
|
+
"packageVersion": "0.15.0-beta.1",
|
|
3
3
|
"rules": {
|
|
4
|
-
"snapshotRef": "
|
|
5
|
-
"snapshotDate": "2026-07-
|
|
4
|
+
"snapshotRef": "038a985b57fe567a24d3a663277f4594d75b9a87",
|
|
5
|
+
"snapshotDate": "2026-07-06T14:20:52.535Z",
|
|
6
6
|
"sourceRepo": "equalexperts/kuat-agent-docs",
|
|
7
7
|
"loadingPath": "agent-docs/rules/LOADING-consumer.md"
|
|
8
8
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsxs as c, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import * as d from "react";
|
|
3
|
+
import { XCircle as m, AlertTriangle as _, CheckCircle2 as f, Info as C } from "lucide-react";
|
|
4
|
+
import { c as h } from "./utils-DLUjLwnh.js";
|
|
5
|
+
const T = ["info", "positive", "warning", "issue"], p = {
|
|
6
|
+
info: C,
|
|
7
|
+
positive: f,
|
|
8
|
+
warning: _,
|
|
9
|
+
issue: m
|
|
10
|
+
}, N = d.forwardRef(function({ className: e, type: a = "info", title: s, description: o, icon: n = !0, action: l, ...i }, r) {
|
|
11
|
+
const u = p[a];
|
|
12
|
+
return /* @__PURE__ */ c(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
ref: r,
|
|
16
|
+
role: "status",
|
|
17
|
+
"data-slot": "callout",
|
|
18
|
+
"data-type": a,
|
|
19
|
+
className: h("callout", `callout--${a}`, e),
|
|
20
|
+
...i,
|
|
21
|
+
children: [
|
|
22
|
+
n ? /* @__PURE__ */ t(u, { "aria-hidden": "true", className: "callout__icon", "data-slot": "callout-icon" }) : null,
|
|
23
|
+
/* @__PURE__ */ t("div", { className: "callout__content", "data-slot": "callout-content", children: /* @__PURE__ */ c("div", { className: "callout__text-content", children: [
|
|
24
|
+
/* @__PURE__ */ t("p", { className: "callout__title", "data-slot": "callout-title", children: s }),
|
|
25
|
+
o != null ? /* @__PURE__ */ t("p", { className: "callout__description", "data-slot": "callout-description", children: o }) : null,
|
|
26
|
+
l ? /* @__PURE__ */ t(
|
|
27
|
+
"a",
|
|
28
|
+
{
|
|
29
|
+
className: "callout__action",
|
|
30
|
+
"data-slot": "callout-action",
|
|
31
|
+
href: l.href,
|
|
32
|
+
target: l.target,
|
|
33
|
+
onClick: l.onClick,
|
|
34
|
+
children: l.label
|
|
35
|
+
}
|
|
36
|
+
) : null
|
|
37
|
+
] }) })
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
N.displayName = "Callout";
|
|
43
|
+
export {
|
|
44
|
+
N as C,
|
|
45
|
+
T as a
|
|
46
|
+
};
|
package/dist/callout.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { KuatSlotContent } from '../../../lib/react-node-compat';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export declare const CALLOUT_TYPES: readonly ["info", "positive", "warning", "issue"];
|
|
4
|
+
export type CalloutType = (typeof CALLOUT_TYPES)[number];
|
|
5
|
+
export interface CalloutAction {
|
|
6
|
+
label: string;
|
|
7
|
+
href: string;
|
|
8
|
+
target?: React.HTMLAttributeAnchorTarget;
|
|
9
|
+
onClick?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
10
|
+
}
|
|
11
|
+
export interface CalloutProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
12
|
+
type?: CalloutType;
|
|
13
|
+
title: KuatSlotContent;
|
|
14
|
+
description?: KuatSlotContent;
|
|
15
|
+
icon?: boolean;
|
|
16
|
+
action?: CalloutAction;
|
|
17
|
+
}
|
|
18
|
+
declare const Callout: React.ForwardRefExoticComponent<CalloutProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export { Callout };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants
|
|
|
4
4
|
export type { ButtonGroupProps, ButtonGroupTextProps, ButtonGroupSeparatorProps, ButtonGroupOrientation, } from './components/ui/button-group';
|
|
5
5
|
export { ContentCard } from './components/ui/content-card';
|
|
6
6
|
export type { ContentCardProps } from './components/ui/content-card';
|
|
7
|
+
export { Callout, CALLOUT_TYPES } from './components/ui/callout';
|
|
8
|
+
export type { CalloutProps, CalloutType, CalloutAction, } from './components/ui/callout';
|
|
7
9
|
export { KuatHeader, kuatHeaderVariants, EELogo, KUAT_HEADER_LOCKUP_VARIANTS, KUAT_HEADER_APP_SWITCHER_EMPTY, } from './components/ui/kuat-header';
|
|
8
10
|
export type { KuatHeaderProps, EELogoProps, KuatHeaderVariant, KuatHeaderLockupVariant, KuatHeaderSubItem, KuatHeaderNavItem, KuatHeaderAccountItem, KuatHeaderAccountConfig, KuatHeaderAccountLabels, KuatHeaderAccountMobileTier, KuatHeaderActionItem, KuatHeaderApp, KuatHeaderAppSwitcherConfig, KuatHeaderAppSwitcherEmpty, KuatHeaderAppSwitcherLabels, KuatHeaderLockupConfig, } from './components/ui/kuat-header';
|
|
9
11
|
export { shouldShowAppSwitcher, resolveAppSwitcherLabels, resolveHeaderLockup, } from './components/ui/kuat-header';
|