elij-ui-library 0.1.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/README.md +100 -0
- package/dist/components/ActionLinkButton/ActionLinkButton.d.ts +13 -0
- package/dist/components/ActionLinkButton/index.d.ts +2 -0
- package/dist/components/Alert/Alert.d.ts +10 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Avatar/Avatar.d.ts +9 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Badge/Badge.d.ts +7 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +12 -0
- package/dist/components/Breadcrumb/index.d.ts +2 -0
- package/dist/components/Button/Button.d.ts +10 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Card/Card.d.ts +9 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Charts/Charts.d.ts +52 -0
- package/dist/components/Charts/index.d.ts +2 -0
- package/dist/components/Checkbox/Checkbox.d.ts +6 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Dialog/Dialog.d.ts +12 -0
- package/dist/components/Dialog/index.d.ts +2 -0
- package/dist/components/Divider/Divider.d.ts +6 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Drawer/Drawer.d.ts +13 -0
- package/dist/components/Drawer/index.d.ts +2 -0
- package/dist/components/Dropdown/Dropdown.d.ts +13 -0
- package/dist/components/Dropdown/index.d.ts +2 -0
- package/dist/components/Empty/Empty.d.ts +9 -0
- package/dist/components/Empty/index.d.ts +2 -0
- package/dist/components/EventCarousel/EventCarousel.d.ts +13 -0
- package/dist/components/EventCarousel/index.d.ts +2 -0
- package/dist/components/FilterTabs/FilterTabs.d.ts +14 -0
- package/dist/components/FilterTabs/index.d.ts +2 -0
- package/dist/components/Flex/Flex.d.ts +11 -0
- package/dist/components/Flex/index.d.ts +2 -0
- package/dist/components/Grid/Grid.d.ts +15 -0
- package/dist/components/Grid/index.d.ts +2 -0
- package/dist/components/Input/Input.d.ts +9 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Layout/Layout.d.ts +6 -0
- package/dist/components/Layout/index.d.ts +1 -0
- package/dist/components/Menu/Menu.d.ts +18 -0
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Pagination/Pagination.d.ts +10 -0
- package/dist/components/Pagination/index.d.ts +2 -0
- package/dist/components/Progress/Progress.d.ts +9 -0
- package/dist/components/Progress/index.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +18 -0
- package/dist/components/RadioGroup/index.d.ts +2 -0
- package/dist/components/Result/Result.d.ts +10 -0
- package/dist/components/Result/index.d.ts +2 -0
- package/dist/components/SectionHeading/SectionHeading.d.ts +8 -0
- package/dist/components/SectionHeading/index.d.ts +2 -0
- package/dist/components/Select/Select.d.ts +16 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Skeleton/Skeleton.d.ts +8 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Space/Space.d.ts +9 -0
- package/dist/components/Space/index.d.ts +2 -0
- package/dist/components/Spinner/Spinner.d.ts +6 -0
- package/dist/components/Spinner/index.d.ts +2 -0
- package/dist/components/Steps/Steps.d.ts +16 -0
- package/dist/components/Steps/index.d.ts +2 -0
- package/dist/components/Switch/Switch.d.ts +8 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Table/Table.d.ts +18 -0
- package/dist/components/Table/index.d.ts +2 -0
- package/dist/components/Tabs/Tabs.d.ts +17 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tag/Tag.d.ts +9 -0
- package/dist/components/Tag/index.d.ts +2 -0
- package/dist/components/Textarea/Textarea.d.ts +9 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Tooltip/Tooltip.d.ts +8 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Typography/Typography.d.ts +15 -0
- package/dist/components/Typography/index.d.ts +2 -0
- package/dist/components/WhatsAppButton/WhatsAppButton.d.ts +13 -0
- package/dist/components/WhatsAppButton/index.d.ts +2 -0
- package/dist/i18n/messages.d.ts +59 -0
- package/dist/icons/WhatsAppIcon.d.ts +6 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +81 -0
- package/dist/index.js +778 -0
- package/dist/provider/UIContext.d.ts +10 -0
- package/dist/provider/UIProvider.d.ts +10 -0
- package/dist/provider/index.d.ts +5 -0
- package/dist/ui-library.css +1 -0
- package/package.json +77 -0
package/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Elij UI
|
|
2
|
+
|
|
3
|
+
A reusable React + TypeScript component library with Storybook documentation.
|
|
4
|
+
|
|
5
|
+
## Development
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install
|
|
9
|
+
npm run dev
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Storybook will be available at `http://localhost:6006`.
|
|
13
|
+
|
|
14
|
+
## Build
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm run build
|
|
18
|
+
npm run build-storybook
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Components
|
|
22
|
+
|
|
23
|
+
- Actions: `Button`
|
|
24
|
+
- Data visualization: `LineChart`, `BarChart`, `AreaChart`, `PieChart`, `DonutChart`, `StackedBarChart`, `StackedBarLineChart`, `VerticalBarChart`, `HorizontalBarChart`, `GroupedBarChart`, `DualAxisChart`
|
|
25
|
+
- General: `Title`, `Text`, `Paragraph`, `Link`
|
|
26
|
+
- Forms: `Input`, `Textarea`, `Checkbox`, `RadioGroup`, `Switch`, `Select`
|
|
27
|
+
- Navigation: `Menu`, `Dropdown`, `Tabs`, `Breadcrumb`, `Pagination`, `Steps`
|
|
28
|
+
- Feedback: `Alert`, `Spinner`, `Skeleton`, `Progress`, `Result`
|
|
29
|
+
- Data display: `Badge`, `Card`, `CardHeader`, `CardBody`, `CardFooter`, `Avatar`, `Tag`, `Tooltip`, `Table`, `Empty`
|
|
30
|
+
- Overlay: `Dialog`, `Drawer`
|
|
31
|
+
- Layout: `Divider`, `Space`, `Flex`, `Row`, `Col`, `Layout`, `Header`, `Sider`, `Content`, `Footer`
|
|
32
|
+
|
|
33
|
+
Every component includes TypeScript types and Storybook examples. Form controls expose native HTML attributes, and interactive components include keyboard and accessibility semantics.
|
|
34
|
+
|
|
35
|
+
## Test
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm run test
|
|
39
|
+
npm run typecheck
|
|
40
|
+
npm run lint
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Use from another local project
|
|
44
|
+
|
|
45
|
+
Build this library first, then install it from the consuming project:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm install ../ui-library
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Import the shared stylesheet once in your application's entry file, then use components normally:
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
import 'elij-ui-library/styles.css';
|
|
55
|
+
import { Button } from 'elij-ui-library';
|
|
56
|
+
|
|
57
|
+
export function Example() {
|
|
58
|
+
return <Button variant="primary">Continue</Button>;
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Locale and color themes
|
|
63
|
+
|
|
64
|
+
Wrap your application, or one section of it, with `UIProvider`. English and light theme are used by default.
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
import 'elij-ui-library/styles.css';
|
|
68
|
+
import { Button, UIProvider, useUI } from 'elij-ui-library';
|
|
69
|
+
|
|
70
|
+
function Actions() {
|
|
71
|
+
const { t } = useUI();
|
|
72
|
+
return <Button>{t('next')}</Button>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function App() {
|
|
76
|
+
return (
|
|
77
|
+
<UIProvider locale="zh-CN" theme="dark">
|
|
78
|
+
<Actions />
|
|
79
|
+
</UIProvider>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Built-in locales are `en` and `zh-CN`. Built-in themes are `light`, `dark`, and `ocean`. Add another locale by passing `messages`, and add another theme by defining CSS variables under your own `[data-ui-theme="..."]` selector.
|
|
85
|
+
|
|
86
|
+
Elij UI automatically translates built-in control text and accessible labels such as close, loading, pagination, menus, tabs, steps, and progress. Product-specific content—titles, field labels, table data, and messages—remains owned by the consuming application and should be passed through props. In Storybook, use the globe toolbar to switch both component semantics and demo content between English and Simplified Chinese.
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<UIProvider
|
|
90
|
+
locale="en-SG"
|
|
91
|
+
messages={{ next: 'Carry on' }}
|
|
92
|
+
theme="my-theme"
|
|
93
|
+
>
|
|
94
|
+
<App />
|
|
95
|
+
</UIProvider>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
For active development across projects, use `npm link` or a workspace monorepo. Before publishing to npm, remove `private: true` from `package.json`, choose an available package name, and run `npm publish --access public`.
|
|
99
|
+
|
|
100
|
+
Charts are responsive and theme-aware, with loading, empty, tooltip, legend, formatter, custom palette, and accessible-label support. Cartesian charts accept `data`, `series`, and `xKey`; pie charts accept `nameKey` and `valueKey`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonSize, ButtonVariant } from '../Button';
|
|
3
|
+
export interface ActionLinkButtonProps {
|
|
4
|
+
href: string;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
size?: ButtonSize;
|
|
8
|
+
variant?: ButtonVariant;
|
|
9
|
+
className?: string;
|
|
10
|
+
target?: string;
|
|
11
|
+
rel?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function ActionLinkButton({ href, children, icon, size, variant, className, target, rel, }: ActionLinkButtonProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type AlertVariant = 'info' | 'success' | 'warning' | 'error';
|
|
3
|
+
export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
title?: ReactNode;
|
|
6
|
+
variant?: AlertVariant;
|
|
7
|
+
onDismiss?: () => void;
|
|
8
|
+
dismissLabel?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function Alert({ children, title, variant, onDismiss, dismissLabel, className, ...props }: AlertProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
src?: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
size?: 'small' | 'medium' | 'large' | number;
|
|
7
|
+
shape?: 'circle' | 'square';
|
|
8
|
+
}
|
|
9
|
+
export declare function Avatar({ src, alt, children, size, shape, className, style, ...props }: AvatarProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type BadgeVariant = 'neutral' | 'primary' | 'success' | 'warning' | 'danger';
|
|
3
|
+
export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
variant?: BadgeVariant;
|
|
6
|
+
}
|
|
7
|
+
export declare function Badge({ children, variant, className, ...props }: BadgeProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface BreadcrumbItem {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
href?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface BreadcrumbProps {
|
|
7
|
+
items: BreadcrumbItem[];
|
|
8
|
+
separator?: ReactNode;
|
|
9
|
+
ariaLabel?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function Breadcrumb({ items, separator, ariaLabel, className }: BreadcrumbProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type ButtonVariant = 'primary' | 'secondary' | 'ghost';
|
|
3
|
+
export type ButtonSize = 'small' | 'medium' | 'large';
|
|
4
|
+
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
variant?: ButtonVariant;
|
|
7
|
+
size?: ButtonSize;
|
|
8
|
+
fullWidth?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
interactive?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function Card({ children, interactive, className, ...props }: CardProps): import("react").JSX.Element;
|
|
7
|
+
export declare function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
|
|
8
|
+
export declare function CardBody({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
|
|
9
|
+
export declare function CardFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ChartSeries {
|
|
3
|
+
dataKey: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
color?: string;
|
|
6
|
+
stackId?: string;
|
|
7
|
+
yAxisId?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CartesianChartProps {
|
|
10
|
+
data: Record<string, unknown>[];
|
|
11
|
+
series: ChartSeries[];
|
|
12
|
+
xKey: string;
|
|
13
|
+
height?: number;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
showGrid?: boolean;
|
|
16
|
+
showLegend?: boolean;
|
|
17
|
+
showTooltip?: boolean;
|
|
18
|
+
ariaLabel?: string;
|
|
19
|
+
valueFormatter?: (value: unknown) => ReactNode;
|
|
20
|
+
barSize?: number;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface CombinationChartProps extends Omit<CartesianChartProps, 'series'> {
|
|
24
|
+
barSeries: ChartSeries[];
|
|
25
|
+
lineSeries: ChartSeries[];
|
|
26
|
+
dualAxis?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface PieChartProps {
|
|
29
|
+
data: Record<string, unknown>[];
|
|
30
|
+
nameKey: string;
|
|
31
|
+
valueKey: string;
|
|
32
|
+
height?: number;
|
|
33
|
+
loading?: boolean;
|
|
34
|
+
donut?: boolean;
|
|
35
|
+
colors?: string[];
|
|
36
|
+
showLegend?: boolean;
|
|
37
|
+
showTooltip?: boolean;
|
|
38
|
+
ariaLabel?: string;
|
|
39
|
+
valueFormatter?: (value: unknown) => ReactNode;
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
export declare function LineChart(props: CartesianChartProps): import("react").JSX.Element;
|
|
43
|
+
export declare function BarChart(props: CartesianChartProps): import("react").JSX.Element;
|
|
44
|
+
export declare function AreaChart(props: CartesianChartProps): import("react").JSX.Element;
|
|
45
|
+
export declare function VerticalBarChart(props: CartesianChartProps): import("react").JSX.Element;
|
|
46
|
+
export declare function GroupedBarChart(props: CartesianChartProps): import("react").JSX.Element;
|
|
47
|
+
export declare function StackedBarChart({ series, ...props }: CartesianChartProps): import("react").JSX.Element;
|
|
48
|
+
export declare function HorizontalBarChart({ data, series, xKey, height, loading, showGrid, showLegend, showTooltip, ariaLabel, valueFormatter, barSize, className }: CartesianChartProps): import("react").JSX.Element;
|
|
49
|
+
export declare function StackedBarLineChart({ data, barSeries, lineSeries, xKey, dualAxis, height, loading, showGrid, showLegend, showTooltip, ariaLabel, valueFormatter, barSize, className }: CombinationChartProps): import("react").JSX.Element;
|
|
50
|
+
export declare function DualAxisChart(props: CombinationChartProps): import("react").JSX.Element;
|
|
51
|
+
export declare function PieChart({ data, nameKey, valueKey, height, loading, donut, colors, showLegend, showTooltip, ariaLabel, valueFormatter, className }: PieChartProps): import("react").JSX.Element;
|
|
52
|
+
export declare function DonutChart(props: Omit<PieChartProps, 'donut'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { AreaChart, BarChart, DonutChart, DualAxisChart, GroupedBarChart, HorizontalBarChart, LineChart, PieChart, StackedBarChart, StackedBarLineChart, VerticalBarChart } from './Charts';
|
|
2
|
+
export type { CartesianChartProps, ChartSeries, CombinationChartProps, PieChartProps } from './Charts';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
3
|
+
label?: ReactNode;
|
|
4
|
+
indeterminate?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const Checkbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface DialogProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
title: ReactNode;
|
|
6
|
+
description?: ReactNode;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
footer?: ReactNode;
|
|
9
|
+
closeLabel?: string;
|
|
10
|
+
closeOnOverlayClick?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function Dialog({ open, onOpenChange, title, description, children, footer, closeLabel, closeOnOverlayClick }: DialogProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface DividerProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
orientation?: 'horizontal' | 'vertical';
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function Divider({ orientation, label, className, ...props }: DividerProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface DrawerProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
title: ReactNode;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
footer?: ReactNode;
|
|
8
|
+
placement?: 'left' | 'right';
|
|
9
|
+
width?: number | string;
|
|
10
|
+
closeLabel?: string;
|
|
11
|
+
closeOnOverlayClick?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function Drawer({ open, onOpenChange, title, children, footer, placement, width, closeLabel, closeOnOverlayClick }: DrawerProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { MenuItem } from '../Menu';
|
|
3
|
+
export interface DropdownProps {
|
|
4
|
+
trigger: ReactElement;
|
|
5
|
+
items: MenuItem[];
|
|
6
|
+
open?: boolean;
|
|
7
|
+
defaultOpen?: boolean;
|
|
8
|
+
onOpenChange?: (open: boolean) => void;
|
|
9
|
+
onSelect?: (key: string) => void;
|
|
10
|
+
placement?: 'bottom-start' | 'bottom-end';
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export declare function Dropdown({ trigger, items, open, defaultOpen, onOpenChange, onSelect, placement }: DropdownProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface EmptyProps {
|
|
3
|
+
description?: ReactNode;
|
|
4
|
+
image?: ReactNode;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
compact?: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function Empty({ description, image, children, compact, className }: EmptyProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type CarouselMedia = {
|
|
3
|
+
src: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
type?: 'image' | 'video';
|
|
6
|
+
};
|
|
7
|
+
export interface EventCarouselProps {
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
description?: ReactNode;
|
|
10
|
+
media: readonly CarouselMedia[];
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function EventCarousel({ title, description, media, className }: EventCarouselProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface FilterTabItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface FilterTabsProps {
|
|
8
|
+
items: readonly FilterTabItem[];
|
|
9
|
+
activeKey: string;
|
|
10
|
+
onChange?: (key: string) => void;
|
|
11
|
+
ariaLabel?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function FilterTabs({ items, activeKey, onChange, ariaLabel, className }: FilterTabsProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CSSProperties, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface FlexProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
vertical?: boolean;
|
|
5
|
+
gap?: number | string;
|
|
6
|
+
align?: CSSProperties['alignItems'];
|
|
7
|
+
justify?: CSSProperties['justifyContent'];
|
|
8
|
+
wrap?: CSSProperties['flexWrap'];
|
|
9
|
+
flex?: CSSProperties['flex'];
|
|
10
|
+
}
|
|
11
|
+
export declare function Flex({ children, vertical, gap, align, justify, wrap, flex, className, style, ...props }: FlexProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CSSProperties, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface RowProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
gutter?: number;
|
|
5
|
+
align?: CSSProperties['alignItems'];
|
|
6
|
+
justify?: CSSProperties['justifyContent'];
|
|
7
|
+
}
|
|
8
|
+
export declare function Row({ children, gutter, align, justify, className, style, ...props }: RowProps): import("react").JSX.Element;
|
|
9
|
+
export interface ColProps extends HTMLAttributes<HTMLDivElement> {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
span?: number;
|
|
12
|
+
offset?: number;
|
|
13
|
+
gutter?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function Col({ children, span, offset, gutter, className, style, ...props }: ColProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
3
|
+
label?: ReactNode;
|
|
4
|
+
helperText?: ReactNode;
|
|
5
|
+
error?: boolean;
|
|
6
|
+
errorMessage?: ReactNode;
|
|
7
|
+
fullWidth?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const Input: import('react').ForwardRefExoticComponent<InputProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
export declare function Layout({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
|
|
3
|
+
export declare const Header: ({ className, ...props }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
|
|
4
|
+
export declare const Sider: ({ className, ...props }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
|
|
5
|
+
export declare const Content: ({ className, ...props }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
|
|
6
|
+
export declare const Footer: ({ className, ...props }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Content, Footer, Header, Layout, Sider } from './Layout';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface MenuItem {
|
|
3
|
+
key: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
danger?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface MenuProps {
|
|
10
|
+
items: MenuItem[];
|
|
11
|
+
selectedKey?: string;
|
|
12
|
+
defaultSelectedKey?: string;
|
|
13
|
+
onSelect?: (key: string) => void;
|
|
14
|
+
mode?: 'vertical' | 'horizontal';
|
|
15
|
+
ariaLabel?: string;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function Menu({ items, selectedKey, defaultSelectedKey, onSelect, mode, ariaLabel, className }: MenuProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface PaginationProps {
|
|
2
|
+
current: number;
|
|
3
|
+
total: number;
|
|
4
|
+
pageSize?: number;
|
|
5
|
+
onChange: (page: number) => void;
|
|
6
|
+
siblingCount?: number;
|
|
7
|
+
ariaLabel?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function Pagination({ current, total, pageSize, onChange, siblingCount, ariaLabel, className }: PaginationProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
export interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'type'> {
|
|
3
|
+
percent: number;
|
|
4
|
+
type?: 'line' | 'circle';
|
|
5
|
+
status?: 'normal' | 'success' | 'error';
|
|
6
|
+
showInfo?: boolean;
|
|
7
|
+
label?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function Progress({ percent, type, status, showInfo, label, className, ...props }: ProgressProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface RadioOption {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
value: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface RadioGroupProps {
|
|
8
|
+
name?: string;
|
|
9
|
+
label?: ReactNode;
|
|
10
|
+
options: RadioOption[];
|
|
11
|
+
value?: string;
|
|
12
|
+
defaultValue?: string;
|
|
13
|
+
onValueChange?: (value: string) => void;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
orientation?: 'horizontal' | 'vertical';
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function RadioGroup({ name, label, options, value, defaultValue, onValueChange, disabled, orientation, className }: RadioGroupProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ResultProps {
|
|
3
|
+
status?: 'success' | 'info' | 'warning' | 'error';
|
|
4
|
+
title: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
actions?: ReactNode;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function Result({ status, title, description, icon, actions, className }: ResultProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface SectionHeadingProps {
|
|
3
|
+
eyebrow: ReactNode;
|
|
4
|
+
title: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function SectionHeading({ eyebrow, title, description, className }: SectionHeadingProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode, SelectHTMLAttributes } from 'react';
|
|
2
|
+
export interface SelectOption {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
value: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
|
|
8
|
+
label?: ReactNode;
|
|
9
|
+
helperText?: ReactNode;
|
|
10
|
+
error?: boolean;
|
|
11
|
+
errorMessage?: ReactNode;
|
|
12
|
+
options: SelectOption[];
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
fullWidth?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const Select: import('react').ForwardRefExoticComponent<SelectProps & import('react').RefAttributes<HTMLSelectElement>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
export interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
variant?: 'text' | 'circle' | 'rectangle';
|
|
4
|
+
width?: number | string;
|
|
5
|
+
height?: number | string;
|
|
6
|
+
animated?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function Skeleton({ variant, width, height, animated, className, style, ...props }: SkeletonProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CSSProperties, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface SpaceProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
direction?: 'horizontal' | 'vertical';
|
|
5
|
+
size?: 'small' | 'medium' | 'large' | number;
|
|
6
|
+
wrap?: boolean;
|
|
7
|
+
align?: CSSProperties['alignItems'];
|
|
8
|
+
}
|
|
9
|
+
export declare function Space({ children, direction, size, wrap, align, className, style, ...props }: SpaceProps): import("react").JSX.Element;
|