@atlaskit/empty-state 10.2.0 → 11.0.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/CHANGELOG.md +35 -0
- package/empty-state/package.json +1 -8
- package/empty-state.docs.tsx +49 -47
- package/package.json +13 -20
- package/types/package.json +1 -8
- package/dist/types-ts4.5/empty-state.d.ts +0 -26
- package/dist/types-ts4.5/entry-points/empty-state.d.ts +0 -1
- package/dist/types-ts4.5/entry-points/types.d.ts +0 -1
- package/dist/types-ts4.5/index.d.ts +0 -2
- package/dist/types-ts4.5/styled/actions-container.d.ts +0 -16
- package/dist/types-ts4.5/styled/container.d.ts +0 -20
- package/dist/types-ts4.5/styled/image.d.ts +0 -21
- package/dist/types-ts4.5/styled/spinner-container.d.ts +0 -16
- package/dist/types-ts4.5/types.d.ts +0 -84
- package/offerings.json +0 -35
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# @atlaskit/empty-state
|
|
2
2
|
|
|
3
|
+
## 11.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`ee28cf33718b0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ee28cf33718b0) -
|
|
8
|
+
Add @atlassian/react-compiler-gating as a runtime dependency to enable React Compiler platform
|
|
9
|
+
gating.
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 11.0.0
|
|
13
|
+
|
|
14
|
+
### Major Changes
|
|
15
|
+
|
|
16
|
+
- [`f2dc9097319f0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f2dc9097319f0) - ###
|
|
17
|
+
Dropped support for _legacy_ Typescript 4 types. **Typescript 5 is now the new minimum**.
|
|
18
|
+
|
|
19
|
+
Removes the `typesVersions` property and `dist/types-ts4.5` directory from the dist.
|
|
20
|
+
|
|
21
|
+
Types are now exclusively via the `"types": "dist/types/index.d.ts"` property.
|
|
22
|
+
|
|
23
|
+
```diff
|
|
24
|
+
- "typesVersions": {
|
|
25
|
+
- ">=4.5 <4.9": {
|
|
26
|
+
- "*": [
|
|
27
|
+
- "dist/types-ts4.5/*",
|
|
28
|
+
- "dist/types-ts4.5/index.d.ts"
|
|
29
|
+
- ]
|
|
30
|
+
- }
|
|
31
|
+
- },
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- Updated dependencies
|
|
37
|
+
|
|
3
38
|
## 10.2.0
|
|
4
39
|
|
|
5
40
|
### Minor Changes
|
package/empty-state/package.json
CHANGED
|
@@ -6,12 +6,5 @@
|
|
|
6
6
|
"sideEffects": [
|
|
7
7
|
"**/*.compiled.css"
|
|
8
8
|
],
|
|
9
|
-
"types": "../dist/types/entry-points/empty-state.d.ts"
|
|
10
|
-
"typesVersions": {
|
|
11
|
-
">=4.5 <5.9": {
|
|
12
|
-
"*": [
|
|
13
|
-
"../dist/types-ts4.5/entry-points/empty-state.d.ts"
|
|
14
|
-
]
|
|
15
|
-
}
|
|
16
|
-
}
|
|
9
|
+
"types": "../dist/types/entry-points/empty-state.d.ts"
|
|
17
10
|
}
|
package/empty-state.docs.tsx
CHANGED
|
@@ -1,54 +1,56 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { StructuredContentSource } from '@atlassian/structured-docs-types/types';
|
|
4
4
|
|
|
5
|
-
const documentation:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
description:
|
|
9
|
-
'A component for when there is nothing to display (no tasks, cleared inbox, no results).',
|
|
10
|
-
status: 'general-availability',
|
|
11
|
-
import: {
|
|
5
|
+
const documentation: StructuredContentSource = {
|
|
6
|
+
components: [
|
|
7
|
+
{
|
|
12
8
|
name: 'EmptyState',
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
'Provide one primary CTA; do not stack multiple primary buttons',
|
|
23
|
-
'Use illustration as spot only—do not resize; keep relevant, neutral or humorous',
|
|
24
|
-
'Explain why the state is empty and provide clear next steps',
|
|
25
|
-
'Consider i18n for illustrations (e.g. culturally neutral imagery, translatable alt text)',
|
|
26
|
-
],
|
|
27
|
-
contentGuidelines: [
|
|
28
|
-
'Blank slate: inspirational, motivating tone',
|
|
29
|
-
'All done: celebratory tone',
|
|
30
|
-
'No results: neutral tone with next steps',
|
|
31
|
-
'Use clear, descriptive headers',
|
|
32
|
-
'Provide specific next steps; avoid negative language',
|
|
33
|
-
],
|
|
34
|
-
accessibilityGuidelines: [
|
|
35
|
-
'Avoid jargon; use simple language',
|
|
36
|
-
'Use descriptive link text (not "click here")',
|
|
37
|
-
'Add alt text only if the illustration is meaningful; otherwise omit or mark decorative',
|
|
38
|
-
'Provide clear empty state messaging',
|
|
39
|
-
'Use appropriate headings and structure',
|
|
40
|
-
'Ensure actionable content is accessible',
|
|
41
|
-
],
|
|
42
|
-
examples: [
|
|
43
|
-
{
|
|
44
|
-
name: 'Empty State',
|
|
45
|
-
description: 'Empty State example',
|
|
46
|
-
source: path.resolve(__dirname, './examples/ai/empty-state.tsx'),
|
|
9
|
+
description:
|
|
10
|
+
'A component for when there is nothing to display (no tasks, cleared inbox, no results).',
|
|
11
|
+
status: 'general-availability',
|
|
12
|
+
import: {
|
|
13
|
+
name: 'EmptyState',
|
|
14
|
+
package: '@atlaskit/empty-state',
|
|
15
|
+
type: 'default',
|
|
16
|
+
packagePath: path.resolve(__dirname),
|
|
17
|
+
packageJson: require('./package.json'),
|
|
47
18
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
19
|
+
usageGuidelines: [
|
|
20
|
+
'Use when nothing to display in a view (no tasks, no results, cleared inbox)',
|
|
21
|
+
'Header is required; illustration, description, and buttons are optional',
|
|
22
|
+
'Use wide (464px) or narrow (304px) layout as appropriate',
|
|
23
|
+
'Provide one primary CTA; do not stack multiple primary buttons',
|
|
24
|
+
'Use illustration as spot only—do not resize; keep relevant, neutral or humorous',
|
|
25
|
+
'Explain why the state is empty and provide clear next steps',
|
|
26
|
+
'Consider i18n for illustrations (e.g. culturally neutral imagery, translatable alt text)',
|
|
27
|
+
],
|
|
28
|
+
contentGuidelines: [
|
|
29
|
+
'Blank slate: inspirational, motivating tone',
|
|
30
|
+
'All done: celebratory tone',
|
|
31
|
+
'No results: neutral tone with next steps',
|
|
32
|
+
'Use clear, descriptive headers',
|
|
33
|
+
'Provide specific next steps; avoid negative language',
|
|
34
|
+
],
|
|
35
|
+
accessibilityGuidelines: [
|
|
36
|
+
'Avoid jargon; use simple language',
|
|
37
|
+
'Use descriptive link text (not "click here")',
|
|
38
|
+
'Add alt text only if the illustration is meaningful; otherwise omit or mark decorative',
|
|
39
|
+
'Provide clear empty state messaging',
|
|
40
|
+
'Use appropriate headings and structure',
|
|
41
|
+
'Ensure actionable content is accessible',
|
|
42
|
+
],
|
|
43
|
+
examples: [
|
|
44
|
+
{
|
|
45
|
+
name: 'Empty State',
|
|
46
|
+
description: 'Empty State example',
|
|
47
|
+
source: path.resolve(__dirname, './examples/ai/empty-state.tsx'),
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
keywords: ['empty', 'state', 'placeholder', 'no-content', 'void'],
|
|
51
|
+
categories: ['status'],
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
};
|
|
53
55
|
|
|
54
56
|
export default documentation;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/empty-state",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.1",
|
|
4
4
|
"description": "An empty state appears when there is no data to display and describes what the user can do next.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -27,15 +27,16 @@
|
|
|
27
27
|
"team": "Design System Team",
|
|
28
28
|
"website": {
|
|
29
29
|
"name": "Empty state",
|
|
30
|
-
"category": "
|
|
30
|
+
"category": "Messaging"
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@atlaskit/button": "^
|
|
35
|
-
"@atlaskit/heading": "^
|
|
36
|
-
"@atlaskit/primitives": "^
|
|
37
|
-
"@atlaskit/spinner": "^
|
|
38
|
-
"@atlaskit/tokens": "^
|
|
34
|
+
"@atlaskit/button": "^24.1.0",
|
|
35
|
+
"@atlaskit/heading": "^6.0.0",
|
|
36
|
+
"@atlaskit/primitives": "^20.0.0",
|
|
37
|
+
"@atlaskit/spinner": "^20.0.0",
|
|
38
|
+
"@atlaskit/tokens": "^15.0.0",
|
|
39
|
+
"@atlassian/react-compiler-gating": "^0.2.0",
|
|
39
40
|
"@babel/runtime": "^7.0.0",
|
|
40
41
|
"@compiled/react": "^0.20.0"
|
|
41
42
|
},
|
|
@@ -46,13 +47,13 @@
|
|
|
46
47
|
"@af/accessibility-testing": "workspace:^",
|
|
47
48
|
"@af/integration-testing": "workspace:^",
|
|
48
49
|
"@af/visual-regression": "workspace:^",
|
|
49
|
-
"@atlaskit/docs": "^
|
|
50
|
-
"@atlaskit/link": "^
|
|
51
|
-
"@atlaskit/section-message": "^
|
|
52
|
-
"@atlassian/react-compiler-gating": "workspace:^",
|
|
50
|
+
"@atlaskit/docs": "^12.0.0",
|
|
51
|
+
"@atlaskit/link": "^4.0.0",
|
|
52
|
+
"@atlaskit/section-message": "^9.1.0",
|
|
53
53
|
"@atlassian/ssr-tests": "workspace:^",
|
|
54
54
|
"@atlassian/structured-docs-types": "workspace:^",
|
|
55
55
|
"@testing-library/react": "^16.3.0",
|
|
56
|
+
"react": "^18.2.0",
|
|
56
57
|
"react-dom": "^18.2.0"
|
|
57
58
|
},
|
|
58
59
|
"techstack": {
|
|
@@ -74,13 +75,5 @@
|
|
|
74
75
|
"deprecation": "no-deprecated-imports"
|
|
75
76
|
}
|
|
76
77
|
},
|
|
77
|
-
"homepage": "https://atlassian.design/components/empty-state/"
|
|
78
|
-
"typesVersions": {
|
|
79
|
-
">=4.5 <4.9": {
|
|
80
|
-
"*": [
|
|
81
|
-
"dist/types-ts4.5/*",
|
|
82
|
-
"dist/types-ts4.5/index.d.ts"
|
|
83
|
-
]
|
|
84
|
-
}
|
|
85
|
-
}
|
|
78
|
+
"homepage": "https://atlassian.design/components/empty-state/"
|
|
86
79
|
}
|
package/types/package.json
CHANGED
|
@@ -6,12 +6,5 @@
|
|
|
6
6
|
"sideEffects": [
|
|
7
7
|
"**/*.compiled.css"
|
|
8
8
|
],
|
|
9
|
-
"types": "../dist/types/entry-points/types.d.ts"
|
|
10
|
-
"typesVersions": {
|
|
11
|
-
">=4.5 <5.9": {
|
|
12
|
-
"*": [
|
|
13
|
-
"../dist/types-ts4.5/entry-points/types.d.ts"
|
|
14
|
-
]
|
|
15
|
-
}
|
|
16
|
-
}
|
|
9
|
+
"types": "../dist/types/entry-points/types.d.ts"
|
|
17
10
|
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { EmptyStateProps } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* __Empty state__
|
|
5
|
-
*
|
|
6
|
-
* A component used for presenting various empty states.
|
|
7
|
-
* e.g. (no items, empty search, broken link, welcome screen etc.)
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```tsx
|
|
11
|
-
* import EmptyState from '@atlaskit/empty-state';
|
|
12
|
-
*
|
|
13
|
-
* // An example of a 404 state
|
|
14
|
-
* export default () => {
|
|
15
|
-
* <EmptyState
|
|
16
|
-
* header="Page not found"
|
|
17
|
-
* imageUrl="https://cdn.io/images/404"
|
|
18
|
-
* description="Looks like you've stumbled off track. Sorry about that! This page either doesn't exist or has been removed."
|
|
19
|
-
* primaryAction={<Button appearance="primary">Home Page</Button>}
|
|
20
|
-
* secondaryAction={<Button>Report a problem</Button>}
|
|
21
|
-
* />;
|
|
22
|
-
* };
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
declare const EmptyState: ({ buttonGroupLabel, description, header, headingLevel, headingSize, imageHeight, imageUrl, imageWidth, isLoading, maxImageHeight, maxImageWidth, primaryAction, renderImage, secondaryAction, width, tertiaryAction, testId, }: EmptyStateProps) => React.JSX.Element;
|
|
26
|
-
export default EmptyState;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from '../empty-state';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type { EmptyStateProps, RenderImageProps, Width } from '../types';
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @jsxRuntime classic
|
|
3
|
-
* @jsx jsx
|
|
4
|
-
*/
|
|
5
|
-
import { type FC, type ReactNode } from 'react';
|
|
6
|
-
/**
|
|
7
|
-
* __Actions container__
|
|
8
|
-
*
|
|
9
|
-
* A container for actions: primary action, secondary action, and tertiary action.
|
|
10
|
-
*
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
declare const ActionsContainer: FC<{
|
|
14
|
-
children: ReactNode;
|
|
15
|
-
}>;
|
|
16
|
-
export default ActionsContainer;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @jsxRuntime classic
|
|
3
|
-
* @jsx jsx
|
|
4
|
-
*/
|
|
5
|
-
import { type FC, type ReactNode } from 'react';
|
|
6
|
-
import type { Width } from '../index';
|
|
7
|
-
type ContainerProps = {
|
|
8
|
-
testId?: string;
|
|
9
|
-
width: Width;
|
|
10
|
-
children: ReactNode;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* __Container__
|
|
14
|
-
*
|
|
15
|
-
* Upper level container for Empty State.
|
|
16
|
-
*
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
declare const Container: FC<ContainerProps>;
|
|
20
|
-
export default Container;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @jsxRuntime classic
|
|
3
|
-
* @jsx jsx
|
|
4
|
-
*/
|
|
5
|
-
import { type FC } from 'react';
|
|
6
|
-
type ImageProps = {
|
|
7
|
-
height?: number;
|
|
8
|
-
maxHeight: number;
|
|
9
|
-
maxWidth: number;
|
|
10
|
-
width?: number;
|
|
11
|
-
src: string;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* __Image__
|
|
15
|
-
*
|
|
16
|
-
* Image in Empty State.
|
|
17
|
-
*
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
declare const Image: FC<ImageProps>;
|
|
21
|
-
export default Image;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @jsxRuntime classic
|
|
3
|
-
* @jsx jsx
|
|
4
|
-
*/
|
|
5
|
-
import { type FC, type ReactNode } from 'react';
|
|
6
|
-
/**
|
|
7
|
-
* __Spinner container__
|
|
8
|
-
*
|
|
9
|
-
* A spinner container for loading state of Empty State.
|
|
10
|
-
*
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
declare const SpinnerContainer: FC<{
|
|
14
|
-
children?: ReactNode;
|
|
15
|
-
}>;
|
|
16
|
-
export default SpinnerContainer;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
export interface RenderImageProps {
|
|
3
|
-
maxImageWidth?: number;
|
|
4
|
-
maxImageHeight?: number;
|
|
5
|
-
imageWidth?: number;
|
|
6
|
-
imageHeight?: number;
|
|
7
|
-
}
|
|
8
|
-
export type Width = 'narrow' | 'wide';
|
|
9
|
-
export interface EmptyStateProps {
|
|
10
|
-
/**
|
|
11
|
-
* Title that briefly describes the page to the user.
|
|
12
|
-
*/
|
|
13
|
-
header: string;
|
|
14
|
-
/**
|
|
15
|
-
* The value used to set the heading level of the header element.
|
|
16
|
-
* Must be in the range of 1 to 6. Defaults to 4.
|
|
17
|
-
*/
|
|
18
|
-
headingLevel?: number;
|
|
19
|
-
/**
|
|
20
|
-
* The keyword used to set the visual appearance of the header element.
|
|
21
|
-
* Defaults to "medium". "xsmall" can be used for empty states in smaller contexts such as popups.
|
|
22
|
-
*/
|
|
23
|
-
headingSize?: 'xsmall' | 'medium';
|
|
24
|
-
/**
|
|
25
|
-
* The main block of text that holds additional supporting information.
|
|
26
|
-
*/
|
|
27
|
-
description?: ReactNode;
|
|
28
|
-
/**
|
|
29
|
-
* Controls how much horizontal space the component fills. Defaults to "wide".
|
|
30
|
-
*/
|
|
31
|
-
width?: Width;
|
|
32
|
-
/**
|
|
33
|
-
* The url of image that will be shown above the title, fed directly into the `src` prop of an <img> element.
|
|
34
|
-
* Note, this image will be constrained by the `maxWidth` and `maxHeight` props.
|
|
35
|
-
*/
|
|
36
|
-
imageUrl?: string;
|
|
37
|
-
/**
|
|
38
|
-
* Maximum width (in pixels) of the image, default value is 160.
|
|
39
|
-
*/
|
|
40
|
-
maxImageWidth?: number;
|
|
41
|
-
/**
|
|
42
|
-
* Maximum height (in pixels) of the image, default value is 160.
|
|
43
|
-
*/
|
|
44
|
-
maxImageHeight?: number;
|
|
45
|
-
/**
|
|
46
|
-
* Primary action button for the page, usually it will be something like "Create" (or "Retry" for error pages).
|
|
47
|
-
*/
|
|
48
|
-
primaryAction?: ReactNode;
|
|
49
|
-
/**
|
|
50
|
-
* An alternative API to supply an image using a render prop. Only rendered if no `imageUrl` is supplied.
|
|
51
|
-
*/
|
|
52
|
-
renderImage?: (props: RenderImageProps) => React.ReactNode;
|
|
53
|
-
/**
|
|
54
|
-
* Secondary action button for the page.
|
|
55
|
-
*/
|
|
56
|
-
secondaryAction?: ReactNode;
|
|
57
|
-
/**
|
|
58
|
-
* Button with link to some external resource like documentation or tutorial, it will be opened in a new tab.
|
|
59
|
-
*/
|
|
60
|
-
tertiaryAction?: ReactNode;
|
|
61
|
-
/**
|
|
62
|
-
* A hook for automated testing.
|
|
63
|
-
*/
|
|
64
|
-
testId?: string;
|
|
65
|
-
/**
|
|
66
|
-
* Used to indicate a loading state. Will show a spinner next to the action buttons when true.
|
|
67
|
-
*/
|
|
68
|
-
isLoading?: boolean;
|
|
69
|
-
/**
|
|
70
|
-
* Width of the image that is rendered in EmptyState component.
|
|
71
|
-
* Useful when you want image to be of exact width to stop it bouncing around when loading in.
|
|
72
|
-
*/
|
|
73
|
-
imageWidth?: number;
|
|
74
|
-
/**
|
|
75
|
-
* Height of the image that is rendered in EmptyState component.
|
|
76
|
-
* Useful when you want image to be of exact height to stop it bouncing around when loading in.
|
|
77
|
-
* Only set `height` if you want the image to resize down on smaller devices.
|
|
78
|
-
*/
|
|
79
|
-
imageHeight?: number;
|
|
80
|
-
/**
|
|
81
|
-
* Accessible name for the action buttons group of empty state. Can be used for internationalization. Default is "Button group".
|
|
82
|
-
*/
|
|
83
|
-
buttonGroupLabel?: string;
|
|
84
|
-
}
|
package/offerings.json
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"name": "EmptyState",
|
|
4
|
-
"package": "@atlaskit/empty-state",
|
|
5
|
-
"import": {
|
|
6
|
-
"name": "EmptyState",
|
|
7
|
-
"package": "@atlaskit/empty-state",
|
|
8
|
-
"type": "default"
|
|
9
|
-
},
|
|
10
|
-
"keywords": ["empty", "state", "placeholder", "no-content", "void"],
|
|
11
|
-
"categories": ["status"],
|
|
12
|
-
"shortDescription": "A component for empty states.",
|
|
13
|
-
"status": "general-availability",
|
|
14
|
-
"accessibilityGuidelines": [
|
|
15
|
-
"Provide clear empty state messaging",
|
|
16
|
-
"Use appropriate headings and structure",
|
|
17
|
-
"Ensure actionable content is accessible",
|
|
18
|
-
"Consider screen reader experience"
|
|
19
|
-
],
|
|
20
|
-
"usageGuidelines": [
|
|
21
|
-
"Use when nothing to display in a view",
|
|
22
|
-
"Explain why the state is empty",
|
|
23
|
-
"Provide clear next steps",
|
|
24
|
-
"Keep tone helpful and encouraging",
|
|
25
|
-
"Consider all scenarios causing the empty state"
|
|
26
|
-
],
|
|
27
|
-
"contentGuidelines": [
|
|
28
|
-
"Use inspirational, motivating tone for first-time view",
|
|
29
|
-
"Provide specific next steps",
|
|
30
|
-
"Avoid negative language",
|
|
31
|
-
"Use clear, descriptive headers"
|
|
32
|
-
],
|
|
33
|
-
"examples": ["./examples/ai/empty-state.tsx"]
|
|
34
|
-
}
|
|
35
|
-
]
|