@edwardguerra/design-system 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/README.md +77 -0
- package/dist/css/main.css +132 -0
- package/dist/css/tokens.css +318 -0
- package/dist/index.cjs +31 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.mjs +1188 -0
- package/dist/index.mjs.map +1 -0
- package/dist/style.css +1 -0
- package/dist/tokens/_variables.scss +296 -0
- package/dist/tokens/tokens.d.ts +338 -0
- package/dist/tokens/tokens.js +297 -0
- package/dist/tokens/tokens.json +294 -0
- package/dist/tokens/variables.css +318 -0
- package/dist/types/components/Accordion/Accordion.d.ts +30 -0
- package/dist/types/components/Accordion/Accordion.stories.d.ts +15 -0
- package/dist/types/components/Accordion/Accordion.test.d.ts +1 -0
- package/dist/types/components/Accordion/index.d.ts +2 -0
- package/dist/types/components/Article/Article.d.ts +21 -0
- package/dist/types/components/Article/Article.stories.d.ts +13 -0
- package/dist/types/components/Article/Article.test.d.ts +1 -0
- package/dist/types/components/Article/index.d.ts +2 -0
- package/dist/types/components/Badge/Badge.d.ts +20 -0
- package/dist/types/components/Badge/Badge.stories.d.ts +20 -0
- package/dist/types/components/Badge/Badge.test.d.ts +1 -0
- package/dist/types/components/Badge/index.d.ts +2 -0
- package/dist/types/components/Button/Button.d.ts +49 -0
- package/dist/types/components/Button/Button.stories.d.ts +43 -0
- package/dist/types/components/Button/Button.test.d.ts +1 -0
- package/dist/types/components/Button/index.d.ts +2 -0
- package/dist/types/components/Card/Card.d.ts +43 -0
- package/dist/types/components/Card/Card.stories.d.ts +31 -0
- package/dist/types/components/Card/Card.test.d.ts +1 -0
- package/dist/types/components/Card/index.d.ts +2 -0
- package/dist/types/components/Carousel/Carousel.d.ts +27 -0
- package/dist/types/components/Carousel/Carousel.stories.d.ts +12 -0
- package/dist/types/components/Carousel/Carousel.test.d.ts +1 -0
- package/dist/types/components/Carousel/index.d.ts +2 -0
- package/dist/types/components/DescriptionList/DescriptionList.d.ts +31 -0
- package/dist/types/components/DescriptionList/DescriptionList.stories.d.ts +12 -0
- package/dist/types/components/DescriptionList/DescriptionList.test.d.ts +1 -0
- package/dist/types/components/DescriptionList/index.d.ts +2 -0
- package/dist/types/components/Feature/Feature.d.ts +25 -0
- package/dist/types/components/Feature/Feature.stories.d.ts +19 -0
- package/dist/types/components/Feature/Feature.test.d.ts +1 -0
- package/dist/types/components/Feature/index.d.ts +2 -0
- package/dist/types/components/Icon/Icon.d.ts +24 -0
- package/dist/types/components/Icon/Icon.stories.d.ts +21 -0
- package/dist/types/components/Icon/Icon.test.d.ts +1 -0
- package/dist/types/components/Icon/index.d.ts +2 -0
- package/dist/types/components/Input/Input.d.ts +40 -0
- package/dist/types/components/Input/Input.stories.d.ts +30 -0
- package/dist/types/components/Input/Input.test.d.ts +1 -0
- package/dist/types/components/Input/index.d.ts +2 -0
- package/dist/types/components/Link/Link.d.ts +45 -0
- package/dist/types/components/Link/Link.stories.d.ts +19 -0
- package/dist/types/components/Link/Link.test.d.ts +1 -0
- package/dist/types/components/Link/index.d.ts +2 -0
- package/dist/types/components/List/List.d.ts +35 -0
- package/dist/types/components/List/List.stories.d.ts +14 -0
- package/dist/types/components/List/List.test.d.ts +1 -0
- package/dist/types/components/List/index.d.ts +2 -0
- package/dist/types/components/Menu/Menu.d.ts +44 -0
- package/dist/types/components/Menu/Menu.stories.d.ts +19 -0
- package/dist/types/components/Menu/Menu.test.d.ts +1 -0
- package/dist/types/components/Menu/index.d.ts +2 -0
- package/dist/types/components/Modal/Modal.d.ts +44 -0
- package/dist/types/components/Modal/Modal.stories.d.ts +26 -0
- package/dist/types/components/Modal/Modal.test.d.ts +1 -0
- package/dist/types/components/Modal/index.d.ts +2 -0
- package/dist/types/components/Nav/Nav.d.ts +43 -0
- package/dist/types/components/Nav/Nav.stories.d.ts +19 -0
- package/dist/types/components/Nav/Nav.test.d.ts +1 -0
- package/dist/types/components/Nav/index.d.ts +2 -0
- package/dist/types/components/Pagination/Pagination.d.ts +36 -0
- package/dist/types/components/Pagination/Pagination.stories.d.ts +15 -0
- package/dist/types/components/Pagination/Pagination.test.d.ts +1 -0
- package/dist/types/components/Pagination/index.d.ts +2 -0
- package/dist/types/components/Radio/Radio.d.ts +30 -0
- package/dist/types/components/Radio/Radio.stories.d.ts +15 -0
- package/dist/types/components/Radio/Radio.test.d.ts +1 -0
- package/dist/types/components/Radio/index.d.ts +2 -0
- package/dist/types/components/Slider/Slider.d.ts +44 -0
- package/dist/types/components/Slider/Slider.stories.d.ts +14 -0
- package/dist/types/components/Slider/Slider.test.d.ts +1 -0
- package/dist/types/components/Slider/index.d.ts +2 -0
- package/dist/types/components/Switch/Switch.d.ts +29 -0
- package/dist/types/components/Switch/Switch.stories.d.ts +16 -0
- package/dist/types/components/Switch/Switch.test.d.ts +1 -0
- package/dist/types/components/Switch/index.d.ts +2 -0
- package/dist/types/components/TOC/TOC.d.ts +37 -0
- package/dist/types/components/TOC/TOC.stories.d.ts +17 -0
- package/dist/types/components/TOC/TOC.test.d.ts +1 -0
- package/dist/types/components/TOC/index.d.ts +2 -0
- package/dist/types/components/Table/Table.d.ts +34 -0
- package/dist/types/components/Table/Table.stories.d.ts +13 -0
- package/dist/types/components/Table/Table.test.d.ts +1 -0
- package/dist/types/components/Table/index.d.ts +2 -0
- package/dist/types/components/Tabs/Tabs.d.ts +26 -0
- package/dist/types/components/Tabs/Tabs.stories.d.ts +14 -0
- package/dist/types/components/Tabs/Tabs.test.d.ts +1 -0
- package/dist/types/components/Tabs/index.d.ts +2 -0
- package/dist/types/components/ThemeProvider/ThemeContext.d.ts +8 -0
- package/dist/types/components/ThemeProvider/ThemeProvider.d.ts +9 -0
- package/dist/types/components/ThemeProvider/ThemeProvider.stories.d.ts +17 -0
- package/dist/types/components/ThemeProvider/ThemeProvider.test.d.ts +1 -0
- package/dist/types/components/ThemeProvider/ThemeSwitcher.d.ts +13 -0
- package/dist/types/components/ThemeProvider/index.d.ts +6 -0
- package/dist/types/components/Timeline/Timeline.d.ts +31 -0
- package/dist/types/components/Timeline/Timeline.stories.d.ts +12 -0
- package/dist/types/components/Timeline/Timeline.test.d.ts +1 -0
- package/dist/types/components/Timeline/index.d.ts +2 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts +25 -0
- package/dist/types/components/Tooltip/Tooltip.stories.d.ts +26 -0
- package/dist/types/components/Tooltip/Tooltip.test.d.ts +1 -0
- package/dist/types/components/Tooltip/index.d.ts +2 -0
- package/dist/types/components/index.d.ts +25 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/test/setup.d.ts +1 -0
- package/package.json +85 -0
- package/tokens/brands/edward-guerra.json +9 -0
- package/tokens/brands/materialandhome.json +9 -0
- package/tokens/brands/midwest-husbands.json +9 -0
- package/tokens/config.json +45 -0
- package/tokens/core/breakpoints.json +9 -0
- package/tokens/core/colors.json +217 -0
- package/tokens/core/effects.json +37 -0
- package/tokens/core/spacing.json +24 -0
- package/tokens/core/typography.json +45 -0
- package/tokens/semantic/button.json +37 -0
- package/tokens/semantic/theme.json +26 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './DescriptionList.css';
|
|
3
|
+
export interface DescriptionListProps {
|
|
4
|
+
/**
|
|
5
|
+
* DescriptionListItem elements
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Additional CSS class
|
|
10
|
+
*/
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DescriptionListItemProps {
|
|
14
|
+
/**
|
|
15
|
+
* Term label (left column)
|
|
16
|
+
*/
|
|
17
|
+
term: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Description content (right column)
|
|
20
|
+
*/
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS class
|
|
24
|
+
*/
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* DescriptionList renders a list of term/description row pairs
|
|
29
|
+
*/
|
|
30
|
+
export declare const DescriptionList: React.FC<DescriptionListProps>;
|
|
31
|
+
export declare const DescriptionListItem: React.FC<DescriptionListItemProps>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./DescriptionList").DescriptionListProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
};
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
12
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Feature.css';
|
|
3
|
+
export interface FeatureProps {
|
|
4
|
+
/**
|
|
5
|
+
* Feature content
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* "column" stacks content vertically, "row" places it side by side,
|
|
10
|
+
* "columns" arranges multiple features in a responsive grid
|
|
11
|
+
*/
|
|
12
|
+
layout?: 'column' | 'row' | 'columns';
|
|
13
|
+
/**
|
|
14
|
+
* Adds a border around the feature
|
|
15
|
+
*/
|
|
16
|
+
bordered?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Additional CSS class
|
|
19
|
+
*/
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Feature renders a content block used to highlight a single item or idea
|
|
24
|
+
*/
|
|
25
|
+
export declare const Feature: React.FC<FeatureProps>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./Feature").FeatureProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
argTypes: {
|
|
10
|
+
layout: {
|
|
11
|
+
control: string;
|
|
12
|
+
options: string[];
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export default meta;
|
|
17
|
+
type Story = StoryObj<typeof meta>;
|
|
18
|
+
export declare const Column: Story;
|
|
19
|
+
export declare const Row: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Icon.css';
|
|
3
|
+
export interface IconProps {
|
|
4
|
+
/**
|
|
5
|
+
* Icon content, typically an SVG
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Icon size
|
|
10
|
+
*/
|
|
11
|
+
size?: 'sm' | 'md' | 'lg';
|
|
12
|
+
/**
|
|
13
|
+
* Render as an outlined stroke icon (uses --eg-border for stroke color)
|
|
14
|
+
*/
|
|
15
|
+
stroke?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Additional CSS class
|
|
18
|
+
*/
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Icon wrapper for sizing and coloring inline SVG icons
|
|
23
|
+
*/
|
|
24
|
+
export declare const Icon: React.FC<IconProps>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./Icon").IconProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
argTypes: {
|
|
10
|
+
size: {
|
|
11
|
+
control: string;
|
|
12
|
+
options: string[];
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export default meta;
|
|
17
|
+
type Story = StoryObj<typeof meta>;
|
|
18
|
+
export declare const Default: Story;
|
|
19
|
+
export declare const Small: Story;
|
|
20
|
+
export declare const Large: Story;
|
|
21
|
+
export declare const Stroke: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Input.css';
|
|
3
|
+
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
|
|
4
|
+
/**
|
|
5
|
+
* Input label
|
|
6
|
+
*/
|
|
7
|
+
label?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Input size
|
|
10
|
+
*/
|
|
11
|
+
size?: 'sm' | 'md' | 'lg';
|
|
12
|
+
/**
|
|
13
|
+
* Error message to display
|
|
14
|
+
*/
|
|
15
|
+
error?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Helper text to display
|
|
18
|
+
*/
|
|
19
|
+
helperText?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Is the input required?
|
|
22
|
+
*/
|
|
23
|
+
required?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Icon to display before input
|
|
26
|
+
*/
|
|
27
|
+
iconBefore?: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Icon to display after input
|
|
30
|
+
*/
|
|
31
|
+
iconAfter?: React.ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Full width input
|
|
34
|
+
*/
|
|
35
|
+
fullWidth?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Input component for text entry
|
|
39
|
+
*/
|
|
40
|
+
export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").ForwardRefExoticComponent<import("./Input").InputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
argTypes: {
|
|
10
|
+
size: {
|
|
11
|
+
control: string;
|
|
12
|
+
options: string[];
|
|
13
|
+
};
|
|
14
|
+
type: {
|
|
15
|
+
control: string;
|
|
16
|
+
options: string[];
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export default meta;
|
|
21
|
+
type Story = StoryObj<typeof meta>;
|
|
22
|
+
export declare const Default: Story;
|
|
23
|
+
export declare const WithLabel: Story;
|
|
24
|
+
export declare const Required: Story;
|
|
25
|
+
export declare const WithError: Story;
|
|
26
|
+
export declare const WithHelperText: Story;
|
|
27
|
+
export declare const Small: Story;
|
|
28
|
+
export declare const Large: Story;
|
|
29
|
+
export declare const Disabled: Story;
|
|
30
|
+
export declare const FullWidth: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Link.css';
|
|
3
|
+
export interface LinkProps {
|
|
4
|
+
/**
|
|
5
|
+
* Link target
|
|
6
|
+
*/
|
|
7
|
+
href: string;
|
|
8
|
+
/**
|
|
9
|
+
* Link content
|
|
10
|
+
*/
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* "default" underlines on hover; "dotted" is always underlined with a dotted style
|
|
14
|
+
*/
|
|
15
|
+
variant?: 'default' | 'dotted';
|
|
16
|
+
/**
|
|
17
|
+
* Additional CSS class
|
|
18
|
+
*/
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Link renders a brand-colored text link. For button-styled links,
|
|
23
|
+
* render a Button and pass an onClick that navigates, or wrap a native
|
|
24
|
+
* anchor around it.
|
|
25
|
+
*/
|
|
26
|
+
export declare const Link: React.FC<LinkProps>;
|
|
27
|
+
export interface SkipLinkProps {
|
|
28
|
+
/**
|
|
29
|
+
* ID of the main content landmark to jump to
|
|
30
|
+
*/
|
|
31
|
+
href: string;
|
|
32
|
+
/**
|
|
33
|
+
* Link content
|
|
34
|
+
*/
|
|
35
|
+
children: React.ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Additional CSS class
|
|
38
|
+
*/
|
|
39
|
+
className?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* SkipLink is visually hidden until focused, letting keyboard users
|
|
43
|
+
* jump past repeated navigation to the main content
|
|
44
|
+
*/
|
|
45
|
+
export declare const SkipLink: React.FC<SkipLinkProps>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./Link").LinkProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
argTypes: {
|
|
10
|
+
variant: {
|
|
11
|
+
control: string;
|
|
12
|
+
options: string[];
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export default meta;
|
|
17
|
+
type Story = StoryObj<typeof meta>;
|
|
18
|
+
export declare const Default: Story;
|
|
19
|
+
export declare const Dotted: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './List.css';
|
|
3
|
+
export interface ListProps {
|
|
4
|
+
/**
|
|
5
|
+
* ListItem elements
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Additional CSS class
|
|
10
|
+
*/
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ListItemProps {
|
|
14
|
+
/**
|
|
15
|
+
* Item content
|
|
16
|
+
*/
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Marker icon shown before the item
|
|
20
|
+
*/
|
|
21
|
+
marker?: 'default' | 'check' | 'thumbs-up' | 'thumbs-down' | 'none';
|
|
22
|
+
/**
|
|
23
|
+
* Render as a row with content pushed to opposite ends and a top divider
|
|
24
|
+
*/
|
|
25
|
+
row?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Additional CSS class
|
|
28
|
+
*/
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* List renders a styled list with optional icon markers
|
|
33
|
+
*/
|
|
34
|
+
export declare const List: React.FC<ListProps>;
|
|
35
|
+
export declare const ListItem: React.FC<ListItemProps>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./List").ListProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
};
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
12
|
+
export declare const Default: Story;
|
|
13
|
+
export declare const Markers: Story;
|
|
14
|
+
export declare const Rows: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Menu.css';
|
|
3
|
+
export interface MenuProps {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the menu is visible
|
|
6
|
+
*/
|
|
7
|
+
open: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* MenuItem elements
|
|
10
|
+
*/
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Horizontal alignment relative to the trigger
|
|
14
|
+
*/
|
|
15
|
+
align?: 'left' | 'right';
|
|
16
|
+
/**
|
|
17
|
+
* Additional CSS class
|
|
18
|
+
*/
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Menu renders a popover-style dropdown, positioned relative to a
|
|
23
|
+
* `position: relative` parent
|
|
24
|
+
*/
|
|
25
|
+
export declare const Menu: React.FC<MenuProps>;
|
|
26
|
+
export interface MenuItemProps {
|
|
27
|
+
/**
|
|
28
|
+
* Item content
|
|
29
|
+
*/
|
|
30
|
+
children: React.ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Click handler
|
|
33
|
+
*/
|
|
34
|
+
onClick?: () => void;
|
|
35
|
+
/**
|
|
36
|
+
* Marks this item as the active/current selection
|
|
37
|
+
*/
|
|
38
|
+
active?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Additional CSS class
|
|
41
|
+
*/
|
|
42
|
+
className?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare const MenuItem: React.FC<MenuItemProps>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./Menu").MenuProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
decorators: ((Story: import("@storybook/types").PartialStoryFn<import("@storybook/react").ReactRenderer, {
|
|
10
|
+
open: boolean;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
align?: "left" | "right" | undefined;
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
}>) => import("react/jsx-runtime").JSX.Element)[];
|
|
15
|
+
};
|
|
16
|
+
export default meta;
|
|
17
|
+
type Story = StoryObj<typeof meta>;
|
|
18
|
+
export declare const Open: Story;
|
|
19
|
+
export declare const Closed: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Modal.css';
|
|
3
|
+
export interface ModalProps {
|
|
4
|
+
/**
|
|
5
|
+
* Is the modal open?
|
|
6
|
+
*/
|
|
7
|
+
open: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Callback when modal should close
|
|
10
|
+
*/
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
/**
|
|
13
|
+
* Modal title
|
|
14
|
+
*/
|
|
15
|
+
title?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Modal content
|
|
18
|
+
*/
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Modal size
|
|
22
|
+
*/
|
|
23
|
+
size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
24
|
+
/**
|
|
25
|
+
* Show close button
|
|
26
|
+
*/
|
|
27
|
+
showCloseButton?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Close on backdrop click
|
|
30
|
+
*/
|
|
31
|
+
closeOnBackdrop?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Close on escape key
|
|
34
|
+
*/
|
|
35
|
+
closeOnEscape?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Footer content
|
|
38
|
+
*/
|
|
39
|
+
footer?: React.ReactNode;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Modal component for dialogs and overlays
|
|
43
|
+
*/
|
|
44
|
+
export declare const Modal: React.FC<ModalProps>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
import { type ModalProps } from './Modal';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: import("react").FC<ModalProps>;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
tags: string[];
|
|
10
|
+
argTypes: {
|
|
11
|
+
size: {
|
|
12
|
+
control: string;
|
|
13
|
+
options: string[];
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export default meta;
|
|
18
|
+
type Story = StoryObj<typeof meta>;
|
|
19
|
+
export declare const Default: Story;
|
|
20
|
+
export declare const WithFooter: Story;
|
|
21
|
+
export declare const Small: Story;
|
|
22
|
+
export declare const Large: Story;
|
|
23
|
+
export declare const FullScreen: Story;
|
|
24
|
+
export declare const NoCloseButton: Story;
|
|
25
|
+
export declare const NoBackdropClose: Story;
|
|
26
|
+
export declare const LongContent: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Nav.css';
|
|
3
|
+
export interface NavProps {
|
|
4
|
+
/**
|
|
5
|
+
* NavItem elements
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* "side" renders a fixed sidebar layout; "inline" is a plain list
|
|
10
|
+
*/
|
|
11
|
+
variant?: 'side' | 'inline';
|
|
12
|
+
/**
|
|
13
|
+
* Additional CSS class
|
|
14
|
+
*/
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface NavItemProps {
|
|
18
|
+
/**
|
|
19
|
+
* Item content
|
|
20
|
+
*/
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* If provided, renders as a link
|
|
24
|
+
*/
|
|
25
|
+
href?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Click handler (used when no href is provided)
|
|
28
|
+
*/
|
|
29
|
+
onClick?: () => void;
|
|
30
|
+
/**
|
|
31
|
+
* Marks this item as the active page/section
|
|
32
|
+
*/
|
|
33
|
+
active?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Additional CSS class
|
|
36
|
+
*/
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Nav renders a list of navigation links
|
|
41
|
+
*/
|
|
42
|
+
export declare const Nav: React.FC<NavProps>;
|
|
43
|
+
export declare const NavItem: React.FC<NavItemProps>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./Nav").NavProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
argTypes: {
|
|
10
|
+
variant: {
|
|
11
|
+
control: string;
|
|
12
|
+
options: string[];
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export default meta;
|
|
17
|
+
type Story = StoryObj<typeof meta>;
|
|
18
|
+
export declare const Inline: Story;
|
|
19
|
+
export declare const Side: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Pagination.css';
|
|
3
|
+
export interface PaginationProps {
|
|
4
|
+
/**
|
|
5
|
+
* Label for the previous link
|
|
6
|
+
*/
|
|
7
|
+
previousLabel?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Label for the next link
|
|
10
|
+
*/
|
|
11
|
+
nextLabel?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Called when the previous link is activated
|
|
14
|
+
*/
|
|
15
|
+
onPrevious?: () => void;
|
|
16
|
+
/**
|
|
17
|
+
* Called when the next link is activated
|
|
18
|
+
*/
|
|
19
|
+
onNext?: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Disable the previous link
|
|
22
|
+
*/
|
|
23
|
+
previousDisabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Disable the next link
|
|
26
|
+
*/
|
|
27
|
+
nextDisabled?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Additional CSS class
|
|
30
|
+
*/
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Pagination component for moving between previous/next content
|
|
35
|
+
*/
|
|
36
|
+
export declare const Pagination: React.FC<PaginationProps>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("./Pagination").PaginationProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
};
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
12
|
+
export declare const Default: Story;
|
|
13
|
+
export declare const CustomLabels: Story;
|
|
14
|
+
export declare const PreviousDisabled: Story;
|
|
15
|
+
export declare const NextDisabled: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|