@atlaskit/ads-mcp 0.1.8 → 0.2.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/CHANGELOG.md +14 -0
- package/README.md +17 -16
- package/dist/cjs/tools/get-components/components.js +13 -0
- package/dist/es2019/tools/get-components/components.js +13 -0
- package/dist/esm/tools/get-components/components.js +13 -0
- package/dist/types/tools/get-components/components.d.ts +1 -0
- package/dist/types-ts4.5/tools/get-components/components.d.ts +1 -0
- package/package.json +3 -3
- package/src/tools/get-components/components.tsx +102 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/ads-mcp
|
|
2
2
|
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#172423](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/172423)
|
|
8
|
+
[`ec1b840853a1d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ec1b840853a1d) -
|
|
9
|
+
Adds contentGuidelines to multiple component details responses.
|
|
10
|
+
|
|
11
|
+
## 0.1.9
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
|
|
3
17
|
## 0.1.8
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -13,29 +13,30 @@ Add an entry to your `mcp.json` (eg. `~/.cursor/mcp.json` or wherever your MCP c
|
|
|
13
13
|
|
|
14
14
|
```json
|
|
15
15
|
{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
"mcpServers": {
|
|
17
|
+
"ads": {
|
|
18
|
+
"command": "npx",
|
|
19
|
+
"args": ["-y", "@atlaskit/ads-mcp"]
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
22
|
}
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## Development
|
|
26
26
|
|
|
27
|
-
You may automatically be served the local version of `@atlaskit/ads-mcp` depending on where you're
|
|
27
|
+
You may automatically be served the local version of `@atlaskit/ads-mcp` depending on where you're
|
|
28
|
+
running it from, but you should force it like so:
|
|
28
29
|
|
|
29
30
|
```json
|
|
30
31
|
{
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"ads": {
|
|
34
|
+
"command": "npx",
|
|
35
|
+
"args": [
|
|
36
|
+
"-y",
|
|
37
|
+
"~/git/atlassian/atlassian-frontend-monorepo/platform/packages/design-system/ads-mcp"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
40
41
|
}
|
|
41
42
|
```
|
|
@@ -11,6 +11,7 @@ var components = exports.components = [{
|
|
|
11
11
|
releasePhase: 'general_availability',
|
|
12
12
|
category: 'Forms and Input',
|
|
13
13
|
example: "import Button from '@atlaskit/button/new';\nimport CopyIcon from '@atlaskit/icon/core/copy';\nimport AddIcon from '@atlaskit/icon/core/add';\n\n<Button appearance=\"success\" iconAfter={AddIcon}>Create</Button>\n<Button appearance=\"primary\" iconBefore={CopyIcon}>Copy text</Button>",
|
|
14
|
+
contentGuidelines: ['Use action verbs that describe the interaction', 'Keep text concise (1-3 words ideal)', 'Avoid generic terms like "Submit" or "Click here"', 'Use sentence case', 'Use buttons for actions, links for navigation', 'Only include one primary call to action (CTA) per area', "Start with the verb and specify what's being acted on", "Don't use punctuation in button labels"],
|
|
14
15
|
props: [{
|
|
15
16
|
name: 'appearance',
|
|
16
17
|
description: 'Visual style of the button',
|
|
@@ -357,6 +358,7 @@ var components = exports.components = [{
|
|
|
357
358
|
releasePhase: 'general_availability',
|
|
358
359
|
category: 'Forms and Input',
|
|
359
360
|
example: "import Form, { Field, FormFooter, FormHeader, FormSection, HelperMessage, ErrorMessage } from '@atlaskit/form';\nimport Button from '@atlaskit/button/new';\nimport TextField from '@atlaskit/textfield';\nimport { Checkbox } from '@atlaskit/checkbox';\n\n// Basic form with validation\n<Form onSubmit={data => console.log('form data', data)}>\n\t{({ formProps }) => (\n\t\t<form {...formProps}>\n\t\t\t<FormHeader title=\"Sign in\">\n\t\t\t\t<p>Required fields are marked with an asterisk *</p>\n\t\t\t</FormHeader>\n\n\t\t\t<FormSection>\n\t\t\t\t<Field name=\"username\" label=\"Username\" isRequired>\n\t\t\t\t\t{({ fieldProps, error }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TextField autoComplete=\"username\" {...fieldProps} />\n\t\t\t\t\t\t\t{!error && <HelperMessage>You can use letters, numbers & periods.</HelperMessage>}\n\t\t\t\t\t\t\t{error && <ErrorMessage>This username is already in use.</ErrorMessage>}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Field>\n\n\t\t\t\t<Field\n\t\t\t\t\tname=\"password\"\n\t\t\t\t\tlabel=\"Password\"\n\t\t\t\t\tisRequired\n\t\t\t\t\tvalidate={value => (value && value.length < 8 ? 'TOO_SHORT' : undefined)}\n\t\t\t\t>\n\t\t\t\t\t{({ fieldProps, error, valid }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TextField type=\"password\" {...fieldProps} />\n\t\t\t\t\t\t\t{!error && !valid && (\n\t\t\t\t\t\t\t\t<HelperMessage>\n\t\t\t\t\t\t\t\t\tUse 8 or more characters with letters, numbers & symbols.\n\t\t\t\t\t\t\t\t</HelperMessage>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{error && <ErrorMessage>Password must be at least 8 characters.</ErrorMessage>}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Field>\n\n\t\t\t\t<Field name=\"remember\" defaultValue={false}>\n\t\t\t\t\t{({ fieldProps }) => (\n\t\t\t\t\t\t<Checkbox {...fieldProps} label=\"Remember me\" />\n\t\t\t\t\t)}\n\t\t\t\t</Field>\n\t\t\t</FormSection>\n\n\t\t\t<FormFooter>\n\t\t\t\t<Button type=\"submit\" appearance=\"primary\">Sign in</Button>\n\t\t\t</FormFooter>\n\t\t</form>\n\t)}\n</Form>",
|
|
361
|
+
contentGuidelines: ['Use clear, concise labels', 'Write helpful placeholder text', 'Provide specific error messages', 'Use consistent terminology', 'Use single column layout for better comprehension', 'Mark required fields with an asterisk (*)', 'Always include a visible label (exception: search fields)', 'Match field length to intended content length'],
|
|
360
362
|
props: [{
|
|
361
363
|
name: 'onSubmit',
|
|
362
364
|
description: 'Callback when the form is submitted with valid data',
|
|
@@ -657,6 +659,8 @@ var components = exports.components = [{
|
|
|
657
659
|
releasePhase: 'general_availability',
|
|
658
660
|
category: 'Messaging',
|
|
659
661
|
example: "import Banner from '@atlaskit/banner';\n\n<Banner\n\tappearance=\"announcement\"\n\tisOpen={true}\n\ticon={<Icon />}\n>\n\tImportant announcement\n</Banner>",
|
|
662
|
+
contentGuidelines: ['Reserved for critical system-level messaging', 'Use for warnings about data/functionality loss'],
|
|
663
|
+
usageGuidelines: ['This should appear at the top of the screen'],
|
|
660
664
|
props: [{
|
|
661
665
|
name: 'appearance',
|
|
662
666
|
description: 'Visual style of the banner',
|
|
@@ -681,6 +685,8 @@ var components = exports.components = [{
|
|
|
681
685
|
releasePhase: 'general_availability',
|
|
682
686
|
category: 'Messaging',
|
|
683
687
|
example: "import Flag, { FlagGroup } from '@atlaskit/flag';\n\n<FlagGroup>\n\t<Flag\n\t\tid=\"flag-1\"\n\t\ticon={<Icon label=\"Info\" />}\n\t\ttitle=\"Flag Title\"\n\t\tdescription=\"Flag description\"\n\t\tactions={[\n\t\t\t{\n\t\t\t\tcontent: 'Action',\n\t\t\t\tonClick: () => {},\n\t\t\t\ttestId: 'action-test'\n\t\t\t}\n\t\t]}\n\t\tappearance=\"normal\"\n\t\ttestId=\"flag-test\"\n\t/>\n</FlagGroup>",
|
|
688
|
+
contentGuidelines: ['Use for confirmations and alerts needing minimal interaction', 'Display event-driven messages', 'Be clear about what went wrong for errors', 'Provide specific steps to resolve issues', 'Use a helpful, non-threatening tone', 'Clearly state potential consequences for warnings', 'Confirm outcome then get out of the way for success messages'],
|
|
689
|
+
usageGuidelines: ['This should appear at the bottom left of the screen, emerging from the navigation sidebar'],
|
|
684
690
|
props: [{
|
|
685
691
|
name: 'id',
|
|
686
692
|
description: 'A unique identifier used for rendering and onDismissed callbacks',
|
|
@@ -713,6 +719,7 @@ var components = exports.components = [{
|
|
|
713
719
|
releasePhase: 'general_availability',
|
|
714
720
|
category: 'Messaging',
|
|
715
721
|
example: "import InlineMessage from '@atlaskit/inline-message';\n\n<InlineMessage\n title=\"Inline Message Title\"\n secondaryText=\"Secondary text\"\n appearance=\"info\"\n testId=\"inline-message-test\"\n>\n <p>Content that appears in the dialog when opened</p>\n</InlineMessage>",
|
|
722
|
+
contentGuidelines: ['Alerts for required actions or important information', 'Includes icon, message, and optional secondary text', 'Interactive elements reveal full message'],
|
|
716
723
|
props: [{
|
|
717
724
|
name: 'title',
|
|
718
725
|
description: 'Text to display first, bolded for emphasis',
|
|
@@ -737,6 +744,7 @@ var components = exports.components = [{
|
|
|
737
744
|
releasePhase: 'general_availability',
|
|
738
745
|
category: 'Messaging',
|
|
739
746
|
example: "import { Spotlight } from '@atlaskit/onboarding';\n\n<Spotlight\n target=\"target-element\"\n content=\"Feature description\"\n/>",
|
|
747
|
+
contentGuidelines: ['Introduces features through focused messages or tours', 'Flexible layout options', 'Used for feature discovery and guidance', 'Keep messages to two lines in length', 'Focus on single changes and their benefits', 'Avoid just naming functions', 'Write in sentence case', 'Include clear call-to-action', 'Communicate main benefit to user in headings', 'Keep headings to a few words', 'Personalize where possible', 'Include benefits and importance to the user', 'Put important keywords at start of sentence', 'Only reference UI elements visible on screen', 'Use "Next" for step progression', 'Use "OK" for final step or closing action', 'Always offer way to opt out', 'Show one spotlight at a time', 'Keep tours to 3-4 steps maximum', 'Sequence tasks logically', 'Drive content by user benefits and value', 'Be thoughtful of user context and state', 'Focus on key benefits and quick wins for new users', 'Highlight value before mechanics for feature introduction'],
|
|
740
748
|
props: [{
|
|
741
749
|
name: 'target',
|
|
742
750
|
description: 'Target element ID',
|
|
@@ -757,6 +765,7 @@ var components = exports.components = [{
|
|
|
757
765
|
releasePhase: 'general_availability',
|
|
758
766
|
category: 'Messaging',
|
|
759
767
|
example: "import SectionMessage from '@atlaskit/section-message';\n\n<SectionMessage\n appearance=\"information\"\n title=\"Section Message Title\"\n testId=\"section-message-test\"\n>\n <p>Section message content</p>\n <SectionMessage.Actions>\n <SectionMessage.Action href=\"#\">Action</SectionMessage.Action>\n </SectionMessage.Actions>\n</SectionMessage>",
|
|
768
|
+
contentGuidelines: ['Alerts about section-specific events', 'Appears above affected area', 'Used for contextual information'],
|
|
760
769
|
props: [{
|
|
761
770
|
name: 'appearance',
|
|
762
771
|
description: 'The appearance styling to use for the section message',
|
|
@@ -981,6 +990,7 @@ var components = exports.components = [{
|
|
|
981
990
|
releasePhase: 'general_availability',
|
|
982
991
|
category: 'Overlays and Layering',
|
|
983
992
|
example: "import Tooltip from '@atlaskit/tooltip';\n\n<Tooltip content=\"Tooltip content\">\n <button>Hover me</button>\n</Tooltip>",
|
|
993
|
+
contentGuidelines: ['Keep it brief (ideally 1-3 words, max 8 words)', 'Use sentence case', 'No punctuation at the end', 'Use clear, direct language', 'Avoid technical jargon', 'Never include links or interactive elements', "Don't truncate tooltip text"],
|
|
984
994
|
props: [{
|
|
985
995
|
name: 'content',
|
|
986
996
|
description: 'Tooltip content',
|
|
@@ -1025,6 +1035,8 @@ var components = exports.components = [{
|
|
|
1025
1035
|
releasePhase: 'general_availability',
|
|
1026
1036
|
category: 'Status Indicators',
|
|
1027
1037
|
example: "import EmptyState from '@atlaskit/empty-state';\n\n<EmptyState\n header=\"No items\"\n description=\"Add items to get started\"\n/>",
|
|
1038
|
+
contentGuidelines: ['Use when nothing to display in a view', 'Appropriate for: no tasks, cleared inbox, no search results', 'Explain why the state is empty', 'Provide clear next steps', 'Keep tone helpful and encouraging', 'Consider all scenarios causing the empty state', 'Use inspirational, motivating tone for first-time view'],
|
|
1039
|
+
usageGuidelines: ['Can appear full-screen or within containers'],
|
|
1028
1040
|
props: [{
|
|
1029
1041
|
name: 'header',
|
|
1030
1042
|
description: 'Empty state header',
|
|
@@ -1653,6 +1665,7 @@ var components = exports.components = [{
|
|
|
1653
1665
|
releasePhase: 'general_availability',
|
|
1654
1666
|
category: 'Messaging',
|
|
1655
1667
|
example: "import React, { Fragment, useCallback, useState } from 'react';\nimport Button from '@atlaskit/button/new';\nimport Modal, {\n\tModalBody,\n\tModalFooter,\n\tModalHeader,\n\tModalTitle,\n\tModalTransition,\n} from '@atlaskit/modal-dialog';\n\nexport default function Example() {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst openModal = useCallback(() => setIsOpen(true), []);\n\tconst closeModal = useCallback(() => setIsOpen(false), []);\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<Button aria-haspopup=\"dialog\" appearance=\"primary\" onClick={openModal}>\n\t\t\t\tOpen modal\n\t\t\t</Button>\n\n\t\t\t<ModalTransition>\n\t\t\t\t{isOpen && (\n\t\t\t\t\t<Modal onClose={closeModal}>\n\t\t\t\t\t\t<ModalHeader hasCloseButton>\n\t\t\t\t\t\t\t<ModalTitle>Default modal header</ModalTitle>\n\t\t\t\t\t\t</ModalHeader>\n\t\t\t\t\t\t<ModalBody>\n\t\t\t\t\t\t\tYour modal content.\n\t\t\t\t\t\t</ModalBody>\n\t\t\t\t\t\t<ModalFooter>\n\t\t\t\t\t\t\t<Button appearance=\"subtle\">About modals</Button>\n\t\t\t\t\t\t\t<Button appearance=\"primary\" onClick={closeModal}>\n\t\t\t\t\t\t\t\tClose\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</ModalFooter>\n\t\t\t\t\t</Modal>\n\t\t\t\t)}\n\t\t\t</ModalTransition>\n\t\t</Fragment>\n\t);\n}",
|
|
1668
|
+
contentGuidelines: ['Present short-term tasks', 'Displays content above page layer', 'Used for focused interactions', 'Use clear, descriptive titles', 'Keep content focused on a single task or message', 'Include clear action buttons', 'Use sentence case for all text'],
|
|
1656
1669
|
props: [{
|
|
1657
1670
|
name: 'autoFocus',
|
|
1658
1671
|
description: 'Focus is moved to the first interactive element or specified element',
|
|
@@ -10,6 +10,7 @@ import AddIcon from '@atlaskit/icon/core/add';
|
|
|
10
10
|
|
|
11
11
|
<Button appearance="success" iconAfter={AddIcon}>Create</Button>
|
|
12
12
|
<Button appearance="primary" iconBefore={CopyIcon}>Copy text</Button>`,
|
|
13
|
+
contentGuidelines: ['Use action verbs that describe the interaction', 'Keep text concise (1-3 words ideal)', 'Avoid generic terms like "Submit" or "Click here"', 'Use sentence case', 'Use buttons for actions, links for navigation', 'Only include one primary call to action (CTA) per area', "Start with the verb and specify what's being acted on", "Don't use punctuation in button labels"],
|
|
13
14
|
props: [{
|
|
14
15
|
name: 'appearance',
|
|
15
16
|
description: 'Visual style of the button',
|
|
@@ -764,6 +765,7 @@ import { Checkbox } from '@atlaskit/checkbox';
|
|
|
764
765
|
</form>
|
|
765
766
|
)}
|
|
766
767
|
</Form>`,
|
|
768
|
+
contentGuidelines: ['Use clear, concise labels', 'Write helpful placeholder text', 'Provide specific error messages', 'Use consistent terminology', 'Use single column layout for better comprehension', 'Mark required fields with an asterisk (*)', 'Always include a visible label (exception: search fields)', 'Match field length to intended content length'],
|
|
767
769
|
props: [{
|
|
768
770
|
name: 'onSubmit',
|
|
769
771
|
description: 'Callback when the form is submitted with valid data',
|
|
@@ -1159,6 +1161,8 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1159
1161
|
>
|
|
1160
1162
|
Important announcement
|
|
1161
1163
|
</Banner>`,
|
|
1164
|
+
contentGuidelines: ['Reserved for critical system-level messaging', 'Use for warnings about data/functionality loss'],
|
|
1165
|
+
usageGuidelines: ['This should appear at the top of the screen'],
|
|
1162
1166
|
props: [{
|
|
1163
1167
|
name: 'appearance',
|
|
1164
1168
|
description: 'Visual style of the banner',
|
|
@@ -1201,6 +1205,8 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1201
1205
|
testId="flag-test"
|
|
1202
1206
|
/>
|
|
1203
1207
|
</FlagGroup>`,
|
|
1208
|
+
contentGuidelines: ['Use for confirmations and alerts needing minimal interaction', 'Display event-driven messages', 'Be clear about what went wrong for errors', 'Provide specific steps to resolve issues', 'Use a helpful, non-threatening tone', 'Clearly state potential consequences for warnings', 'Confirm outcome then get out of the way for success messages'],
|
|
1209
|
+
usageGuidelines: ['This should appear at the bottom left of the screen, emerging from the navigation sidebar'],
|
|
1204
1210
|
props: [{
|
|
1205
1211
|
name: 'id',
|
|
1206
1212
|
description: 'A unique identifier used for rendering and onDismissed callbacks',
|
|
@@ -1242,6 +1248,7 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1242
1248
|
>
|
|
1243
1249
|
<p>Content that appears in the dialog when opened</p>
|
|
1244
1250
|
</InlineMessage>`,
|
|
1251
|
+
contentGuidelines: ['Alerts for required actions or important information', 'Includes icon, message, and optional secondary text', 'Interactive elements reveal full message'],
|
|
1245
1252
|
props: [{
|
|
1246
1253
|
name: 'title',
|
|
1247
1254
|
description: 'Text to display first, bolded for emphasis',
|
|
@@ -1271,6 +1278,7 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1271
1278
|
target="target-element"
|
|
1272
1279
|
content="Feature description"
|
|
1273
1280
|
/>`,
|
|
1281
|
+
contentGuidelines: ['Introduces features through focused messages or tours', 'Flexible layout options', 'Used for feature discovery and guidance', 'Keep messages to two lines in length', 'Focus on single changes and their benefits', 'Avoid just naming functions', 'Write in sentence case', 'Include clear call-to-action', 'Communicate main benefit to user in headings', 'Keep headings to a few words', 'Personalize where possible', 'Include benefits and importance to the user', 'Put important keywords at start of sentence', 'Only reference UI elements visible on screen', 'Use "Next" for step progression', 'Use "OK" for final step or closing action', 'Always offer way to opt out', 'Show one spotlight at a time', 'Keep tours to 3-4 steps maximum', 'Sequence tasks logically', 'Drive content by user benefits and value', 'Be thoughtful of user context and state', 'Focus on key benefits and quick wins for new users', 'Highlight value before mechanics for feature introduction'],
|
|
1274
1282
|
props: [{
|
|
1275
1283
|
name: 'target',
|
|
1276
1284
|
description: 'Target element ID',
|
|
@@ -1302,6 +1310,7 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1302
1310
|
<SectionMessage.Action href="#">Action</SectionMessage.Action>
|
|
1303
1311
|
</SectionMessage.Actions>
|
|
1304
1312
|
</SectionMessage>`,
|
|
1313
|
+
contentGuidelines: ['Alerts about section-specific events', 'Appears above affected area', 'Used for contextual information'],
|
|
1305
1314
|
props: [{
|
|
1306
1315
|
name: 'appearance',
|
|
1307
1316
|
description: 'The appearance styling to use for the section message',
|
|
@@ -1616,6 +1625,7 @@ import { Help, NavLogo } from '@atlassian/navigation-system/top-nav-items';
|
|
|
1616
1625
|
<Tooltip content="Tooltip content">
|
|
1617
1626
|
<button>Hover me</button>
|
|
1618
1627
|
</Tooltip>`,
|
|
1628
|
+
contentGuidelines: ['Keep it brief (ideally 1-3 words, max 8 words)', 'Use sentence case', 'No punctuation at the end', 'Use clear, direct language', 'Avoid technical jargon', 'Never include links or interactive elements', "Don't truncate tooltip text"],
|
|
1619
1629
|
props: [{
|
|
1620
1630
|
name: 'content',
|
|
1621
1631
|
description: 'Tooltip content',
|
|
@@ -1671,6 +1681,8 @@ import { Help, NavLogo } from '@atlassian/navigation-system/top-nav-items';
|
|
|
1671
1681
|
header="No items"
|
|
1672
1682
|
description="Add items to get started"
|
|
1673
1683
|
/>`,
|
|
1684
|
+
contentGuidelines: ['Use when nothing to display in a view', 'Appropriate for: no tasks, cleared inbox, no search results', 'Explain why the state is empty', 'Provide clear next steps', 'Keep tone helpful and encouraging', 'Consider all scenarios causing the empty state', 'Use inspirational, motivating tone for first-time view'],
|
|
1685
|
+
usageGuidelines: ['Can appear full-screen or within containers'],
|
|
1674
1686
|
props: [{
|
|
1675
1687
|
name: 'header',
|
|
1676
1688
|
description: 'Empty state header',
|
|
@@ -2457,6 +2469,7 @@ export default function Example() {
|
|
|
2457
2469
|
</Fragment>
|
|
2458
2470
|
);
|
|
2459
2471
|
}`,
|
|
2472
|
+
contentGuidelines: ['Present short-term tasks', 'Displays content above page layer', 'Used for focused interactions', 'Use clear, descriptive titles', 'Keep content focused on a single task or message', 'Include clear action buttons', 'Use sentence case for all text'],
|
|
2460
2473
|
props: [{
|
|
2461
2474
|
name: 'autoFocus',
|
|
2462
2475
|
description: 'Focus is moved to the first interactive element or specified element',
|
|
@@ -5,6 +5,7 @@ export var components = [{
|
|
|
5
5
|
releasePhase: 'general_availability',
|
|
6
6
|
category: 'Forms and Input',
|
|
7
7
|
example: "import Button from '@atlaskit/button/new';\nimport CopyIcon from '@atlaskit/icon/core/copy';\nimport AddIcon from '@atlaskit/icon/core/add';\n\n<Button appearance=\"success\" iconAfter={AddIcon}>Create</Button>\n<Button appearance=\"primary\" iconBefore={CopyIcon}>Copy text</Button>",
|
|
8
|
+
contentGuidelines: ['Use action verbs that describe the interaction', 'Keep text concise (1-3 words ideal)', 'Avoid generic terms like "Submit" or "Click here"', 'Use sentence case', 'Use buttons for actions, links for navigation', 'Only include one primary call to action (CTA) per area', "Start with the verb and specify what's being acted on", "Don't use punctuation in button labels"],
|
|
8
9
|
props: [{
|
|
9
10
|
name: 'appearance',
|
|
10
11
|
description: 'Visual style of the button',
|
|
@@ -351,6 +352,7 @@ export var components = [{
|
|
|
351
352
|
releasePhase: 'general_availability',
|
|
352
353
|
category: 'Forms and Input',
|
|
353
354
|
example: "import Form, { Field, FormFooter, FormHeader, FormSection, HelperMessage, ErrorMessage } from '@atlaskit/form';\nimport Button from '@atlaskit/button/new';\nimport TextField from '@atlaskit/textfield';\nimport { Checkbox } from '@atlaskit/checkbox';\n\n// Basic form with validation\n<Form onSubmit={data => console.log('form data', data)}>\n\t{({ formProps }) => (\n\t\t<form {...formProps}>\n\t\t\t<FormHeader title=\"Sign in\">\n\t\t\t\t<p>Required fields are marked with an asterisk *</p>\n\t\t\t</FormHeader>\n\n\t\t\t<FormSection>\n\t\t\t\t<Field name=\"username\" label=\"Username\" isRequired>\n\t\t\t\t\t{({ fieldProps, error }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TextField autoComplete=\"username\" {...fieldProps} />\n\t\t\t\t\t\t\t{!error && <HelperMessage>You can use letters, numbers & periods.</HelperMessage>}\n\t\t\t\t\t\t\t{error && <ErrorMessage>This username is already in use.</ErrorMessage>}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Field>\n\n\t\t\t\t<Field\n\t\t\t\t\tname=\"password\"\n\t\t\t\t\tlabel=\"Password\"\n\t\t\t\t\tisRequired\n\t\t\t\t\tvalidate={value => (value && value.length < 8 ? 'TOO_SHORT' : undefined)}\n\t\t\t\t>\n\t\t\t\t\t{({ fieldProps, error, valid }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TextField type=\"password\" {...fieldProps} />\n\t\t\t\t\t\t\t{!error && !valid && (\n\t\t\t\t\t\t\t\t<HelperMessage>\n\t\t\t\t\t\t\t\t\tUse 8 or more characters with letters, numbers & symbols.\n\t\t\t\t\t\t\t\t</HelperMessage>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{error && <ErrorMessage>Password must be at least 8 characters.</ErrorMessage>}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Field>\n\n\t\t\t\t<Field name=\"remember\" defaultValue={false}>\n\t\t\t\t\t{({ fieldProps }) => (\n\t\t\t\t\t\t<Checkbox {...fieldProps} label=\"Remember me\" />\n\t\t\t\t\t)}\n\t\t\t\t</Field>\n\t\t\t</FormSection>\n\n\t\t\t<FormFooter>\n\t\t\t\t<Button type=\"submit\" appearance=\"primary\">Sign in</Button>\n\t\t\t</FormFooter>\n\t\t</form>\n\t)}\n</Form>",
|
|
355
|
+
contentGuidelines: ['Use clear, concise labels', 'Write helpful placeholder text', 'Provide specific error messages', 'Use consistent terminology', 'Use single column layout for better comprehension', 'Mark required fields with an asterisk (*)', 'Always include a visible label (exception: search fields)', 'Match field length to intended content length'],
|
|
354
356
|
props: [{
|
|
355
357
|
name: 'onSubmit',
|
|
356
358
|
description: 'Callback when the form is submitted with valid data',
|
|
@@ -651,6 +653,8 @@ export var components = [{
|
|
|
651
653
|
releasePhase: 'general_availability',
|
|
652
654
|
category: 'Messaging',
|
|
653
655
|
example: "import Banner from '@atlaskit/banner';\n\n<Banner\n\tappearance=\"announcement\"\n\tisOpen={true}\n\ticon={<Icon />}\n>\n\tImportant announcement\n</Banner>",
|
|
656
|
+
contentGuidelines: ['Reserved for critical system-level messaging', 'Use for warnings about data/functionality loss'],
|
|
657
|
+
usageGuidelines: ['This should appear at the top of the screen'],
|
|
654
658
|
props: [{
|
|
655
659
|
name: 'appearance',
|
|
656
660
|
description: 'Visual style of the banner',
|
|
@@ -675,6 +679,8 @@ export var components = [{
|
|
|
675
679
|
releasePhase: 'general_availability',
|
|
676
680
|
category: 'Messaging',
|
|
677
681
|
example: "import Flag, { FlagGroup } from '@atlaskit/flag';\n\n<FlagGroup>\n\t<Flag\n\t\tid=\"flag-1\"\n\t\ticon={<Icon label=\"Info\" />}\n\t\ttitle=\"Flag Title\"\n\t\tdescription=\"Flag description\"\n\t\tactions={[\n\t\t\t{\n\t\t\t\tcontent: 'Action',\n\t\t\t\tonClick: () => {},\n\t\t\t\ttestId: 'action-test'\n\t\t\t}\n\t\t]}\n\t\tappearance=\"normal\"\n\t\ttestId=\"flag-test\"\n\t/>\n</FlagGroup>",
|
|
682
|
+
contentGuidelines: ['Use for confirmations and alerts needing minimal interaction', 'Display event-driven messages', 'Be clear about what went wrong for errors', 'Provide specific steps to resolve issues', 'Use a helpful, non-threatening tone', 'Clearly state potential consequences for warnings', 'Confirm outcome then get out of the way for success messages'],
|
|
683
|
+
usageGuidelines: ['This should appear at the bottom left of the screen, emerging from the navigation sidebar'],
|
|
678
684
|
props: [{
|
|
679
685
|
name: 'id',
|
|
680
686
|
description: 'A unique identifier used for rendering and onDismissed callbacks',
|
|
@@ -707,6 +713,7 @@ export var components = [{
|
|
|
707
713
|
releasePhase: 'general_availability',
|
|
708
714
|
category: 'Messaging',
|
|
709
715
|
example: "import InlineMessage from '@atlaskit/inline-message';\n\n<InlineMessage\n title=\"Inline Message Title\"\n secondaryText=\"Secondary text\"\n appearance=\"info\"\n testId=\"inline-message-test\"\n>\n <p>Content that appears in the dialog when opened</p>\n</InlineMessage>",
|
|
716
|
+
contentGuidelines: ['Alerts for required actions or important information', 'Includes icon, message, and optional secondary text', 'Interactive elements reveal full message'],
|
|
710
717
|
props: [{
|
|
711
718
|
name: 'title',
|
|
712
719
|
description: 'Text to display first, bolded for emphasis',
|
|
@@ -731,6 +738,7 @@ export var components = [{
|
|
|
731
738
|
releasePhase: 'general_availability',
|
|
732
739
|
category: 'Messaging',
|
|
733
740
|
example: "import { Spotlight } from '@atlaskit/onboarding';\n\n<Spotlight\n target=\"target-element\"\n content=\"Feature description\"\n/>",
|
|
741
|
+
contentGuidelines: ['Introduces features through focused messages or tours', 'Flexible layout options', 'Used for feature discovery and guidance', 'Keep messages to two lines in length', 'Focus on single changes and their benefits', 'Avoid just naming functions', 'Write in sentence case', 'Include clear call-to-action', 'Communicate main benefit to user in headings', 'Keep headings to a few words', 'Personalize where possible', 'Include benefits and importance to the user', 'Put important keywords at start of sentence', 'Only reference UI elements visible on screen', 'Use "Next" for step progression', 'Use "OK" for final step or closing action', 'Always offer way to opt out', 'Show one spotlight at a time', 'Keep tours to 3-4 steps maximum', 'Sequence tasks logically', 'Drive content by user benefits and value', 'Be thoughtful of user context and state', 'Focus on key benefits and quick wins for new users', 'Highlight value before mechanics for feature introduction'],
|
|
734
742
|
props: [{
|
|
735
743
|
name: 'target',
|
|
736
744
|
description: 'Target element ID',
|
|
@@ -751,6 +759,7 @@ export var components = [{
|
|
|
751
759
|
releasePhase: 'general_availability',
|
|
752
760
|
category: 'Messaging',
|
|
753
761
|
example: "import SectionMessage from '@atlaskit/section-message';\n\n<SectionMessage\n appearance=\"information\"\n title=\"Section Message Title\"\n testId=\"section-message-test\"\n>\n <p>Section message content</p>\n <SectionMessage.Actions>\n <SectionMessage.Action href=\"#\">Action</SectionMessage.Action>\n </SectionMessage.Actions>\n</SectionMessage>",
|
|
762
|
+
contentGuidelines: ['Alerts about section-specific events', 'Appears above affected area', 'Used for contextual information'],
|
|
754
763
|
props: [{
|
|
755
764
|
name: 'appearance',
|
|
756
765
|
description: 'The appearance styling to use for the section message',
|
|
@@ -975,6 +984,7 @@ export var components = [{
|
|
|
975
984
|
releasePhase: 'general_availability',
|
|
976
985
|
category: 'Overlays and Layering',
|
|
977
986
|
example: "import Tooltip from '@atlaskit/tooltip';\n\n<Tooltip content=\"Tooltip content\">\n <button>Hover me</button>\n</Tooltip>",
|
|
987
|
+
contentGuidelines: ['Keep it brief (ideally 1-3 words, max 8 words)', 'Use sentence case', 'No punctuation at the end', 'Use clear, direct language', 'Avoid technical jargon', 'Never include links or interactive elements', "Don't truncate tooltip text"],
|
|
978
988
|
props: [{
|
|
979
989
|
name: 'content',
|
|
980
990
|
description: 'Tooltip content',
|
|
@@ -1019,6 +1029,8 @@ export var components = [{
|
|
|
1019
1029
|
releasePhase: 'general_availability',
|
|
1020
1030
|
category: 'Status Indicators',
|
|
1021
1031
|
example: "import EmptyState from '@atlaskit/empty-state';\n\n<EmptyState\n header=\"No items\"\n description=\"Add items to get started\"\n/>",
|
|
1032
|
+
contentGuidelines: ['Use when nothing to display in a view', 'Appropriate for: no tasks, cleared inbox, no search results', 'Explain why the state is empty', 'Provide clear next steps', 'Keep tone helpful and encouraging', 'Consider all scenarios causing the empty state', 'Use inspirational, motivating tone for first-time view'],
|
|
1033
|
+
usageGuidelines: ['Can appear full-screen or within containers'],
|
|
1022
1034
|
props: [{
|
|
1023
1035
|
name: 'header',
|
|
1024
1036
|
description: 'Empty state header',
|
|
@@ -1647,6 +1659,7 @@ export var components = [{
|
|
|
1647
1659
|
releasePhase: 'general_availability',
|
|
1648
1660
|
category: 'Messaging',
|
|
1649
1661
|
example: "import React, { Fragment, useCallback, useState } from 'react';\nimport Button from '@atlaskit/button/new';\nimport Modal, {\n\tModalBody,\n\tModalFooter,\n\tModalHeader,\n\tModalTitle,\n\tModalTransition,\n} from '@atlaskit/modal-dialog';\n\nexport default function Example() {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst openModal = useCallback(() => setIsOpen(true), []);\n\tconst closeModal = useCallback(() => setIsOpen(false), []);\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<Button aria-haspopup=\"dialog\" appearance=\"primary\" onClick={openModal}>\n\t\t\t\tOpen modal\n\t\t\t</Button>\n\n\t\t\t<ModalTransition>\n\t\t\t\t{isOpen && (\n\t\t\t\t\t<Modal onClose={closeModal}>\n\t\t\t\t\t\t<ModalHeader hasCloseButton>\n\t\t\t\t\t\t\t<ModalTitle>Default modal header</ModalTitle>\n\t\t\t\t\t\t</ModalHeader>\n\t\t\t\t\t\t<ModalBody>\n\t\t\t\t\t\t\tYour modal content.\n\t\t\t\t\t\t</ModalBody>\n\t\t\t\t\t\t<ModalFooter>\n\t\t\t\t\t\t\t<Button appearance=\"subtle\">About modals</Button>\n\t\t\t\t\t\t\t<Button appearance=\"primary\" onClick={closeModal}>\n\t\t\t\t\t\t\t\tClose\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</ModalFooter>\n\t\t\t\t\t</Modal>\n\t\t\t\t)}\n\t\t\t</ModalTransition>\n\t\t</Fragment>\n\t);\n}",
|
|
1662
|
+
contentGuidelines: ['Present short-term tasks', 'Displays content above page layer', 'Used for focused interactions', 'Use clear, descriptive titles', 'Keep content focused on a single task or message', 'Include clear action buttons', 'Use sentence case for all text'],
|
|
1650
1663
|
props: [{
|
|
1651
1664
|
name: 'autoFocus',
|
|
1652
1665
|
description: 'Focus is moved to the first interactive element or specified element',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/ads-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "The official Atlassian Design System MCP server to develop apps and user interfaces matching the Atlassian style.",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"./package.json": "./package.json"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@atlaskit/icon": "^
|
|
34
|
-
"@atlaskit/tokens": "^5.
|
|
33
|
+
"@atlaskit/icon": "^27.0.0",
|
|
34
|
+
"@atlaskit/tokens": "^5.3.0",
|
|
35
35
|
"@babel/runtime": "^7.0.0",
|
|
36
36
|
"@modelcontextprotocol/sdk": "^1.8.0",
|
|
37
37
|
"zod": "^3.23.8",
|
|
@@ -16,6 +16,7 @@ export interface Component {
|
|
|
16
16
|
example: string;
|
|
17
17
|
accessibilityGuidelines?: string[];
|
|
18
18
|
usageGuidelines?: string[];
|
|
19
|
+
contentGuidelines?: string[];
|
|
19
20
|
props: Prop[];
|
|
20
21
|
}
|
|
21
22
|
|
|
@@ -32,6 +33,16 @@ import AddIcon from '@atlaskit/icon/core/add';
|
|
|
32
33
|
|
|
33
34
|
<Button appearance="success" iconAfter={AddIcon}>Create</Button>
|
|
34
35
|
<Button appearance="primary" iconBefore={CopyIcon}>Copy text</Button>`,
|
|
36
|
+
contentGuidelines: [
|
|
37
|
+
'Use action verbs that describe the interaction',
|
|
38
|
+
'Keep text concise (1-3 words ideal)',
|
|
39
|
+
'Avoid generic terms like "Submit" or "Click here"',
|
|
40
|
+
'Use sentence case',
|
|
41
|
+
'Use buttons for actions, links for navigation',
|
|
42
|
+
'Only include one primary call to action (CTA) per area',
|
|
43
|
+
"Start with the verb and specify what's being acted on",
|
|
44
|
+
"Don't use punctuation in button labels",
|
|
45
|
+
],
|
|
35
46
|
props: [
|
|
36
47
|
{
|
|
37
48
|
name: 'appearance',
|
|
@@ -852,6 +863,16 @@ import { Checkbox } from '@atlaskit/checkbox';
|
|
|
852
863
|
</form>
|
|
853
864
|
)}
|
|
854
865
|
</Form>`,
|
|
866
|
+
contentGuidelines: [
|
|
867
|
+
'Use clear, concise labels',
|
|
868
|
+
'Write helpful placeholder text',
|
|
869
|
+
'Provide specific error messages',
|
|
870
|
+
'Use consistent terminology',
|
|
871
|
+
'Use single column layout for better comprehension',
|
|
872
|
+
'Mark required fields with an asterisk (*)',
|
|
873
|
+
'Always include a visible label (exception: search fields)',
|
|
874
|
+
'Match field length to intended content length',
|
|
875
|
+
],
|
|
855
876
|
props: [
|
|
856
877
|
{
|
|
857
878
|
name: 'onSubmit',
|
|
@@ -1322,6 +1343,11 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1322
1343
|
>
|
|
1323
1344
|
Important announcement
|
|
1324
1345
|
</Banner>`,
|
|
1346
|
+
contentGuidelines: [
|
|
1347
|
+
'Reserved for critical system-level messaging',
|
|
1348
|
+
'Use for warnings about data/functionality loss',
|
|
1349
|
+
],
|
|
1350
|
+
usageGuidelines: ['This should appear at the top of the screen'],
|
|
1325
1351
|
props: [
|
|
1326
1352
|
{
|
|
1327
1353
|
name: 'appearance',
|
|
@@ -1370,6 +1396,18 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1370
1396
|
testId="flag-test"
|
|
1371
1397
|
/>
|
|
1372
1398
|
</FlagGroup>`,
|
|
1399
|
+
contentGuidelines: [
|
|
1400
|
+
'Use for confirmations and alerts needing minimal interaction',
|
|
1401
|
+
'Display event-driven messages',
|
|
1402
|
+
'Be clear about what went wrong for errors',
|
|
1403
|
+
'Provide specific steps to resolve issues',
|
|
1404
|
+
'Use a helpful, non-threatening tone',
|
|
1405
|
+
'Clearly state potential consequences for warnings',
|
|
1406
|
+
'Confirm outcome then get out of the way for success messages',
|
|
1407
|
+
],
|
|
1408
|
+
usageGuidelines: [
|
|
1409
|
+
'This should appear at the bottom left of the screen, emerging from the navigation sidebar',
|
|
1410
|
+
],
|
|
1373
1411
|
props: [
|
|
1374
1412
|
{
|
|
1375
1413
|
name: 'id',
|
|
@@ -1421,6 +1459,11 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1421
1459
|
>
|
|
1422
1460
|
<p>Content that appears in the dialog when opened</p>
|
|
1423
1461
|
</InlineMessage>`,
|
|
1462
|
+
contentGuidelines: [
|
|
1463
|
+
'Alerts for required actions or important information',
|
|
1464
|
+
'Includes icon, message, and optional secondary text',
|
|
1465
|
+
'Interactive elements reveal full message',
|
|
1466
|
+
],
|
|
1424
1467
|
props: [
|
|
1425
1468
|
{
|
|
1426
1469
|
name: 'title',
|
|
@@ -1456,6 +1499,32 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1456
1499
|
target="target-element"
|
|
1457
1500
|
content="Feature description"
|
|
1458
1501
|
/>`,
|
|
1502
|
+
contentGuidelines: [
|
|
1503
|
+
'Introduces features through focused messages or tours',
|
|
1504
|
+
'Flexible layout options',
|
|
1505
|
+
'Used for feature discovery and guidance',
|
|
1506
|
+
'Keep messages to two lines in length',
|
|
1507
|
+
'Focus on single changes and their benefits',
|
|
1508
|
+
'Avoid just naming functions',
|
|
1509
|
+
'Write in sentence case',
|
|
1510
|
+
'Include clear call-to-action',
|
|
1511
|
+
'Communicate main benefit to user in headings',
|
|
1512
|
+
'Keep headings to a few words',
|
|
1513
|
+
'Personalize where possible',
|
|
1514
|
+
'Include benefits and importance to the user',
|
|
1515
|
+
'Put important keywords at start of sentence',
|
|
1516
|
+
'Only reference UI elements visible on screen',
|
|
1517
|
+
'Use "Next" for step progression',
|
|
1518
|
+
'Use "OK" for final step or closing action',
|
|
1519
|
+
'Always offer way to opt out',
|
|
1520
|
+
'Show one spotlight at a time',
|
|
1521
|
+
'Keep tours to 3-4 steps maximum',
|
|
1522
|
+
'Sequence tasks logically',
|
|
1523
|
+
'Drive content by user benefits and value',
|
|
1524
|
+
'Be thoughtful of user context and state',
|
|
1525
|
+
'Focus on key benefits and quick wins for new users',
|
|
1526
|
+
'Highlight value before mechanics for feature introduction',
|
|
1527
|
+
],
|
|
1459
1528
|
props: [
|
|
1460
1529
|
{
|
|
1461
1530
|
name: 'target',
|
|
@@ -1492,6 +1561,11 @@ import CommentIcon from '@atlaskit/icon/core/comment';
|
|
|
1492
1561
|
<SectionMessage.Action href="#">Action</SectionMessage.Action>
|
|
1493
1562
|
</SectionMessage.Actions>
|
|
1494
1563
|
</SectionMessage>`,
|
|
1564
|
+
contentGuidelines: [
|
|
1565
|
+
'Alerts about section-specific events',
|
|
1566
|
+
'Appears above affected area',
|
|
1567
|
+
'Used for contextual information',
|
|
1568
|
+
],
|
|
1495
1569
|
props: [
|
|
1496
1570
|
{
|
|
1497
1571
|
name: 'appearance',
|
|
@@ -1864,6 +1938,15 @@ import { Help, NavLogo } from '@atlassian/navigation-system/top-nav-items';
|
|
|
1864
1938
|
<Tooltip content="Tooltip content">
|
|
1865
1939
|
<button>Hover me</button>
|
|
1866
1940
|
</Tooltip>`,
|
|
1941
|
+
contentGuidelines: [
|
|
1942
|
+
'Keep it brief (ideally 1-3 words, max 8 words)',
|
|
1943
|
+
'Use sentence case',
|
|
1944
|
+
'No punctuation at the end',
|
|
1945
|
+
'Use clear, direct language',
|
|
1946
|
+
'Avoid technical jargon',
|
|
1947
|
+
'Never include links or interactive elements',
|
|
1948
|
+
"Don't truncate tooltip text",
|
|
1949
|
+
],
|
|
1867
1950
|
props: [
|
|
1868
1951
|
{
|
|
1869
1952
|
name: 'content',
|
|
@@ -1930,6 +2013,16 @@ import { Help, NavLogo } from '@atlassian/navigation-system/top-nav-items';
|
|
|
1930
2013
|
header="No items"
|
|
1931
2014
|
description="Add items to get started"
|
|
1932
2015
|
/>`,
|
|
2016
|
+
contentGuidelines: [
|
|
2017
|
+
'Use when nothing to display in a view',
|
|
2018
|
+
'Appropriate for: no tasks, cleared inbox, no search results',
|
|
2019
|
+
'Explain why the state is empty',
|
|
2020
|
+
'Provide clear next steps',
|
|
2021
|
+
'Keep tone helpful and encouraging',
|
|
2022
|
+
'Consider all scenarios causing the empty state',
|
|
2023
|
+
'Use inspirational, motivating tone for first-time view',
|
|
2024
|
+
],
|
|
2025
|
+
usageGuidelines: ['Can appear full-screen or within containers'],
|
|
1933
2026
|
props: [
|
|
1934
2027
|
{
|
|
1935
2028
|
name: 'header',
|
|
@@ -2887,6 +2980,15 @@ export default function Example() {
|
|
|
2887
2980
|
</Fragment>
|
|
2888
2981
|
);
|
|
2889
2982
|
}`,
|
|
2983
|
+
contentGuidelines: [
|
|
2984
|
+
'Present short-term tasks',
|
|
2985
|
+
'Displays content above page layer',
|
|
2986
|
+
'Used for focused interactions',
|
|
2987
|
+
'Use clear, descriptive titles',
|
|
2988
|
+
'Keep content focused on a single task or message',
|
|
2989
|
+
'Include clear action buttons',
|
|
2990
|
+
'Use sentence case for all text',
|
|
2991
|
+
],
|
|
2890
2992
|
props: [
|
|
2891
2993
|
{
|
|
2892
2994
|
name: 'autoFocus',
|