elij-ui-library 0.1.0 → 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/README.md +53 -0
- package/dist/index.d.ts +2 -81
- package/dist/src/index.d.ts +81 -0
- package/dist/src/registry.test.d.ts +1 -0
- package/package.json +6 -4
- package/registry/components.json +63 -0
- package/registry/schema.json +32 -0
- /package/dist/{components → src/components}/ActionLinkButton/ActionLinkButton.d.ts +0 -0
- /package/dist/{components → src/components}/ActionLinkButton/index.d.ts +0 -0
- /package/dist/{components → src/components}/Alert/Alert.d.ts +0 -0
- /package/dist/{components → src/components}/Alert/index.d.ts +0 -0
- /package/dist/{components → src/components}/Avatar/Avatar.d.ts +0 -0
- /package/dist/{components → src/components}/Avatar/index.d.ts +0 -0
- /package/dist/{components → src/components}/Badge/Badge.d.ts +0 -0
- /package/dist/{components → src/components}/Badge/index.d.ts +0 -0
- /package/dist/{components → src/components}/Breadcrumb/Breadcrumb.d.ts +0 -0
- /package/dist/{components → src/components}/Breadcrumb/index.d.ts +0 -0
- /package/dist/{components → src/components}/Button/Button.d.ts +0 -0
- /package/dist/{components → src/components}/Button/index.d.ts +0 -0
- /package/dist/{components → src/components}/Card/Card.d.ts +0 -0
- /package/dist/{components → src/components}/Card/index.d.ts +0 -0
- /package/dist/{components → src/components}/Charts/Charts.d.ts +0 -0
- /package/dist/{components → src/components}/Charts/index.d.ts +0 -0
- /package/dist/{components → src/components}/Checkbox/Checkbox.d.ts +0 -0
- /package/dist/{components → src/components}/Checkbox/index.d.ts +0 -0
- /package/dist/{components → src/components}/Dialog/Dialog.d.ts +0 -0
- /package/dist/{components → src/components}/Dialog/index.d.ts +0 -0
- /package/dist/{components → src/components}/Divider/Divider.d.ts +0 -0
- /package/dist/{components → src/components}/Divider/index.d.ts +0 -0
- /package/dist/{components → src/components}/Drawer/Drawer.d.ts +0 -0
- /package/dist/{components → src/components}/Drawer/index.d.ts +0 -0
- /package/dist/{components → src/components}/Dropdown/Dropdown.d.ts +0 -0
- /package/dist/{components → src/components}/Dropdown/index.d.ts +0 -0
- /package/dist/{components → src/components}/Empty/Empty.d.ts +0 -0
- /package/dist/{components → src/components}/Empty/index.d.ts +0 -0
- /package/dist/{components → src/components}/EventCarousel/EventCarousel.d.ts +0 -0
- /package/dist/{components → src/components}/EventCarousel/index.d.ts +0 -0
- /package/dist/{components → src/components}/FilterTabs/FilterTabs.d.ts +0 -0
- /package/dist/{components → src/components}/FilterTabs/index.d.ts +0 -0
- /package/dist/{components → src/components}/Flex/Flex.d.ts +0 -0
- /package/dist/{components → src/components}/Flex/index.d.ts +0 -0
- /package/dist/{components → src/components}/Grid/Grid.d.ts +0 -0
- /package/dist/{components → src/components}/Grid/index.d.ts +0 -0
- /package/dist/{components → src/components}/Input/Input.d.ts +0 -0
- /package/dist/{components → src/components}/Input/index.d.ts +0 -0
- /package/dist/{components → src/components}/Layout/Layout.d.ts +0 -0
- /package/dist/{components → src/components}/Layout/index.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/Menu.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/index.d.ts +0 -0
- /package/dist/{components → src/components}/Pagination/Pagination.d.ts +0 -0
- /package/dist/{components → src/components}/Pagination/index.d.ts +0 -0
- /package/dist/{components → src/components}/Progress/Progress.d.ts +0 -0
- /package/dist/{components → src/components}/Progress/index.d.ts +0 -0
- /package/dist/{components → src/components}/RadioGroup/RadioGroup.d.ts +0 -0
- /package/dist/{components → src/components}/RadioGroup/index.d.ts +0 -0
- /package/dist/{components → src/components}/Result/Result.d.ts +0 -0
- /package/dist/{components → src/components}/Result/index.d.ts +0 -0
- /package/dist/{components → src/components}/SectionHeading/SectionHeading.d.ts +0 -0
- /package/dist/{components → src/components}/SectionHeading/index.d.ts +0 -0
- /package/dist/{components → src/components}/Select/Select.d.ts +0 -0
- /package/dist/{components → src/components}/Select/index.d.ts +0 -0
- /package/dist/{components → src/components}/Skeleton/Skeleton.d.ts +0 -0
- /package/dist/{components → src/components}/Skeleton/index.d.ts +0 -0
- /package/dist/{components → src/components}/Space/Space.d.ts +0 -0
- /package/dist/{components → src/components}/Space/index.d.ts +0 -0
- /package/dist/{components → src/components}/Spinner/Spinner.d.ts +0 -0
- /package/dist/{components → src/components}/Spinner/index.d.ts +0 -0
- /package/dist/{components → src/components}/Steps/Steps.d.ts +0 -0
- /package/dist/{components → src/components}/Steps/index.d.ts +0 -0
- /package/dist/{components → src/components}/Switch/Switch.d.ts +0 -0
- /package/dist/{components → src/components}/Switch/index.d.ts +0 -0
- /package/dist/{components → src/components}/Table/Table.d.ts +0 -0
- /package/dist/{components → src/components}/Table/index.d.ts +0 -0
- /package/dist/{components → src/components}/Tabs/Tabs.d.ts +0 -0
- /package/dist/{components → src/components}/Tabs/index.d.ts +0 -0
- /package/dist/{components → src/components}/Tag/Tag.d.ts +0 -0
- /package/dist/{components → src/components}/Tag/index.d.ts +0 -0
- /package/dist/{components → src/components}/Textarea/Textarea.d.ts +0 -0
- /package/dist/{components → src/components}/Textarea/index.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/Tooltip.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/index.d.ts +0 -0
- /package/dist/{components → src/components}/Typography/Typography.d.ts +0 -0
- /package/dist/{components → src/components}/Typography/index.d.ts +0 -0
- /package/dist/{components → src/components}/WhatsAppButton/WhatsAppButton.d.ts +0 -0
- /package/dist/{components → src/components}/WhatsAppButton/index.d.ts +0 -0
- /package/dist/{i18n → src/i18n}/messages.d.ts +0 -0
- /package/dist/{icons → src/icons}/WhatsAppIcon.d.ts +0 -0
- /package/dist/{icons → src/icons}/index.d.ts +0 -0
- /package/dist/{provider → src/provider}/UIContext.d.ts +0 -0
- /package/dist/{provider → src/provider}/UIProvider.d.ts +0 -0
- /package/dist/{provider → src/provider}/index.d.ts +0 -0
package/README.md
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
A reusable React + TypeScript component library with Storybook documentation.
|
|
4
4
|
|
|
5
|
+
The package is the runtime layer of Elij UI. Component metadata is also published
|
|
6
|
+
in registry/components.json for future CLI and MCP tooling.
|
|
7
|
+
|
|
5
8
|
## Development
|
|
6
9
|
|
|
7
10
|
```bash
|
|
@@ -32,6 +35,24 @@ npm run build-storybook
|
|
|
32
35
|
|
|
33
36
|
Every component includes TypeScript types and Storybook examples. Form controls expose native HTML attributes, and interactive components include keyboard and accessibility semantics.
|
|
34
37
|
|
|
38
|
+
The Storybook Registry/Catalog story provides a searchable starting point for
|
|
39
|
+
the public component inventory. Every public component has a dedicated Storybook
|
|
40
|
+
story with controls or an interaction example where appropriate.
|
|
41
|
+
|
|
42
|
+
## Versioning and future tooling
|
|
43
|
+
|
|
44
|
+
Use the changelog for each published version and keep the registry version in
|
|
45
|
+
sync with the package version. The next packages can be added separately:
|
|
46
|
+
|
|
47
|
+
~~~text
|
|
48
|
+
elij-ui-library React runtime, styles, and registry
|
|
49
|
+
elij-ui-cli init, list, add, and doctor commands
|
|
50
|
+
elij-ui-mcp-server read-only component discovery for AI hosts
|
|
51
|
+
~~~
|
|
52
|
+
|
|
53
|
+
The CLI and MCP server should consume the registry rather than parsing source
|
|
54
|
+
files or Storybook internals.
|
|
55
|
+
|
|
35
56
|
## Test
|
|
36
57
|
|
|
37
58
|
```bash
|
|
@@ -59,6 +80,38 @@ export function Example() {
|
|
|
59
80
|
}
|
|
60
81
|
```
|
|
61
82
|
|
|
83
|
+
## Install from npm
|
|
84
|
+
|
|
85
|
+
~~~bash
|
|
86
|
+
npm install elij-ui-library
|
|
87
|
+
~~~
|
|
88
|
+
|
|
89
|
+
Import the stylesheet once, then use the typed component exports:
|
|
90
|
+
|
|
91
|
+
~~~tsx
|
|
92
|
+
import 'elij-ui-library/styles.css';
|
|
93
|
+
import { Button, SectionHeading } from 'elij-ui-library';
|
|
94
|
+
|
|
95
|
+
export function Example() {
|
|
96
|
+
return (
|
|
97
|
+
<>
|
|
98
|
+
<SectionHeading eyebrow="Example" title="A typed component" />
|
|
99
|
+
<Button>Continue</Button>
|
|
100
|
+
</>
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
~~~
|
|
104
|
+
|
|
105
|
+
The published registry can be consumed by tooling:
|
|
106
|
+
|
|
107
|
+
~~~ts
|
|
108
|
+
import registry from 'elij-ui-library/registry';
|
|
109
|
+
~~~
|
|
110
|
+
|
|
111
|
+
registry/components.json is intended for component search, documentation,
|
|
112
|
+
CLI scaffolding, and MCP resources. It is not required at runtime by the
|
|
113
|
+
React components.
|
|
114
|
+
|
|
62
115
|
## Locale and color themes
|
|
63
116
|
|
|
64
117
|
Wrap your application, or one section of it, with `UIProvider`. English and light theme are used by default.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,81 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export { UIProvider, useUI } from './provider';
|
|
4
|
-
export type { BuiltInLocale, MessageKey, Messages, ThemeName, UIContextValue, UIProviderProps, } from './provider';
|
|
5
|
-
export { Alert } from './components/Alert';
|
|
6
|
-
export type { AlertProps, AlertVariant } from './components/Alert';
|
|
7
|
-
export { Badge } from './components/Badge';
|
|
8
|
-
export type { BadgeProps, BadgeVariant } from './components/Badge';
|
|
9
|
-
export { Card, CardBody, CardFooter, CardHeader } from './components/Card';
|
|
10
|
-
export type { CardProps } from './components/Card';
|
|
11
|
-
export { Checkbox } from './components/Checkbox';
|
|
12
|
-
export type { CheckboxProps } from './components/Checkbox';
|
|
13
|
-
export { Dialog } from './components/Dialog';
|
|
14
|
-
export type { DialogProps } from './components/Dialog';
|
|
15
|
-
export { Divider } from './components/Divider';
|
|
16
|
-
export type { DividerProps } from './components/Divider';
|
|
17
|
-
export { Input } from './components/Input';
|
|
18
|
-
export type { InputProps } from './components/Input';
|
|
19
|
-
export { RadioGroup } from './components/RadioGroup';
|
|
20
|
-
export type { RadioGroupProps, RadioOption } from './components/RadioGroup';
|
|
21
|
-
export { Select } from './components/Select';
|
|
22
|
-
export type { SelectOption, SelectProps } from './components/Select';
|
|
23
|
-
export { Spinner } from './components/Spinner';
|
|
24
|
-
export type { SpinnerProps } from './components/Spinner';
|
|
25
|
-
export { Switch } from './components/Switch';
|
|
26
|
-
export type { SwitchProps } from './components/Switch';
|
|
27
|
-
export { Textarea } from './components/Textarea';
|
|
28
|
-
export type { TextareaProps } from './components/Textarea';
|
|
29
|
-
export { Avatar } from './components/Avatar';
|
|
30
|
-
export type { AvatarProps } from './components/Avatar';
|
|
31
|
-
export { Breadcrumb } from './components/Breadcrumb';
|
|
32
|
-
export type { BreadcrumbItem, BreadcrumbProps } from './components/Breadcrumb';
|
|
33
|
-
export { Drawer } from './components/Drawer';
|
|
34
|
-
export type { DrawerProps } from './components/Drawer';
|
|
35
|
-
export { Dropdown } from './components/Dropdown';
|
|
36
|
-
export type { DropdownProps } from './components/Dropdown';
|
|
37
|
-
export { Empty } from './components/Empty';
|
|
38
|
-
export type { EmptyProps } from './components/Empty';
|
|
39
|
-
export { Flex } from './components/Flex';
|
|
40
|
-
export type { FlexProps } from './components/Flex';
|
|
41
|
-
export { Col, Row } from './components/Grid';
|
|
42
|
-
export type { ColProps, RowProps } from './components/Grid';
|
|
43
|
-
export { Content, Footer, Header, Layout, Sider } from './components/Layout';
|
|
44
|
-
export { Menu } from './components/Menu';
|
|
45
|
-
export type { MenuItem, MenuProps } from './components/Menu';
|
|
46
|
-
export { Pagination } from './components/Pagination';
|
|
47
|
-
export type { PaginationProps } from './components/Pagination';
|
|
48
|
-
export { Progress } from './components/Progress';
|
|
49
|
-
export type { ProgressProps } from './components/Progress';
|
|
50
|
-
export { Result } from './components/Result';
|
|
51
|
-
export type { ResultProps } from './components/Result';
|
|
52
|
-
export { Skeleton } from './components/Skeleton';
|
|
53
|
-
export type { SkeletonProps } from './components/Skeleton';
|
|
54
|
-
export { Space } from './components/Space';
|
|
55
|
-
export type { SpaceProps } from './components/Space';
|
|
56
|
-
export { Steps } from './components/Steps';
|
|
57
|
-
export type { StepItem, StepsProps } from './components/Steps';
|
|
58
|
-
export { Table } from './components/Table';
|
|
59
|
-
export type { TableColumn, TableProps } from './components/Table';
|
|
60
|
-
export { Tabs } from './components/Tabs';
|
|
61
|
-
export type { TabItem, TabsProps } from './components/Tabs';
|
|
62
|
-
export { FilterTabs } from './components/FilterTabs';
|
|
63
|
-
export type { FilterTabItem, FilterTabsProps } from './components/FilterTabs';
|
|
64
|
-
export { SectionHeading } from './components/SectionHeading';
|
|
65
|
-
export type { SectionHeadingProps } from './components/SectionHeading';
|
|
66
|
-
export { ActionLinkButton } from './components/ActionLinkButton';
|
|
67
|
-
export type { ActionLinkButtonProps } from './components/ActionLinkButton';
|
|
68
|
-
export { WhatsAppButton } from './components/WhatsAppButton';
|
|
69
|
-
export type { WhatsAppButtonProps } from './components/WhatsAppButton';
|
|
70
|
-
export { EventCarousel } from './components/EventCarousel';
|
|
71
|
-
export type { CarouselMedia, EventCarouselProps } from './components/EventCarousel';
|
|
72
|
-
export { WhatsAppIcon } from './icons';
|
|
73
|
-
export type { WhatsAppIconProps } from './icons';
|
|
74
|
-
export { Tag } from './components/Tag';
|
|
75
|
-
export type { TagProps } from './components/Tag';
|
|
76
|
-
export { Tooltip } from './components/Tooltip';
|
|
77
|
-
export type { TooltipProps } from './components/Tooltip';
|
|
78
|
-
export { Link, Paragraph, Text, Title } from './components/Typography';
|
|
79
|
-
export type { TextProps, TitleProps } from './components/Typography';
|
|
80
|
-
export { AreaChart, BarChart, DonutChart, DualAxisChart, GroupedBarChart, HorizontalBarChart, LineChart, PieChart, StackedBarChart, StackedBarLineChart, VerticalBarChart } from './components/Charts';
|
|
81
|
-
export type { CartesianChartProps, ChartSeries, CombinationChartProps, PieChartProps } from './components/Charts';
|
|
1
|
+
export * from './src/index'
|
|
2
|
+
export {}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export { Button } from './components/Button';
|
|
2
|
+
export type { ButtonProps, ButtonSize, ButtonVariant } from './components/Button';
|
|
3
|
+
export { UIProvider, useUI } from './provider';
|
|
4
|
+
export type { BuiltInLocale, MessageKey, Messages, ThemeName, UIContextValue, UIProviderProps, } from './provider';
|
|
5
|
+
export { Alert } from './components/Alert';
|
|
6
|
+
export type { AlertProps, AlertVariant } from './components/Alert';
|
|
7
|
+
export { Badge } from './components/Badge';
|
|
8
|
+
export type { BadgeProps, BadgeVariant } from './components/Badge';
|
|
9
|
+
export { Card, CardBody, CardFooter, CardHeader } from './components/Card';
|
|
10
|
+
export type { CardProps } from './components/Card';
|
|
11
|
+
export { Checkbox } from './components/Checkbox';
|
|
12
|
+
export type { CheckboxProps } from './components/Checkbox';
|
|
13
|
+
export { Dialog } from './components/Dialog';
|
|
14
|
+
export type { DialogProps } from './components/Dialog';
|
|
15
|
+
export { Divider } from './components/Divider';
|
|
16
|
+
export type { DividerProps } from './components/Divider';
|
|
17
|
+
export { Input } from './components/Input';
|
|
18
|
+
export type { InputProps } from './components/Input';
|
|
19
|
+
export { RadioGroup } from './components/RadioGroup';
|
|
20
|
+
export type { RadioGroupProps, RadioOption } from './components/RadioGroup';
|
|
21
|
+
export { Select } from './components/Select';
|
|
22
|
+
export type { SelectOption, SelectProps } from './components/Select';
|
|
23
|
+
export { Spinner } from './components/Spinner';
|
|
24
|
+
export type { SpinnerProps } from './components/Spinner';
|
|
25
|
+
export { Switch } from './components/Switch';
|
|
26
|
+
export type { SwitchProps } from './components/Switch';
|
|
27
|
+
export { Textarea } from './components/Textarea';
|
|
28
|
+
export type { TextareaProps } from './components/Textarea';
|
|
29
|
+
export { Avatar } from './components/Avatar';
|
|
30
|
+
export type { AvatarProps } from './components/Avatar';
|
|
31
|
+
export { Breadcrumb } from './components/Breadcrumb';
|
|
32
|
+
export type { BreadcrumbItem, BreadcrumbProps } from './components/Breadcrumb';
|
|
33
|
+
export { Drawer } from './components/Drawer';
|
|
34
|
+
export type { DrawerProps } from './components/Drawer';
|
|
35
|
+
export { Dropdown } from './components/Dropdown';
|
|
36
|
+
export type { DropdownProps } from './components/Dropdown';
|
|
37
|
+
export { Empty } from './components/Empty';
|
|
38
|
+
export type { EmptyProps } from './components/Empty';
|
|
39
|
+
export { Flex } from './components/Flex';
|
|
40
|
+
export type { FlexProps } from './components/Flex';
|
|
41
|
+
export { Col, Row } from './components/Grid';
|
|
42
|
+
export type { ColProps, RowProps } from './components/Grid';
|
|
43
|
+
export { Content, Footer, Header, Layout, Sider } from './components/Layout';
|
|
44
|
+
export { Menu } from './components/Menu';
|
|
45
|
+
export type { MenuItem, MenuProps } from './components/Menu';
|
|
46
|
+
export { Pagination } from './components/Pagination';
|
|
47
|
+
export type { PaginationProps } from './components/Pagination';
|
|
48
|
+
export { Progress } from './components/Progress';
|
|
49
|
+
export type { ProgressProps } from './components/Progress';
|
|
50
|
+
export { Result } from './components/Result';
|
|
51
|
+
export type { ResultProps } from './components/Result';
|
|
52
|
+
export { Skeleton } from './components/Skeleton';
|
|
53
|
+
export type { SkeletonProps } from './components/Skeleton';
|
|
54
|
+
export { Space } from './components/Space';
|
|
55
|
+
export type { SpaceProps } from './components/Space';
|
|
56
|
+
export { Steps } from './components/Steps';
|
|
57
|
+
export type { StepItem, StepsProps } from './components/Steps';
|
|
58
|
+
export { Table } from './components/Table';
|
|
59
|
+
export type { TableColumn, TableProps } from './components/Table';
|
|
60
|
+
export { Tabs } from './components/Tabs';
|
|
61
|
+
export type { TabItem, TabsProps } from './components/Tabs';
|
|
62
|
+
export { FilterTabs } from './components/FilterTabs';
|
|
63
|
+
export type { FilterTabItem, FilterTabsProps } from './components/FilterTabs';
|
|
64
|
+
export { SectionHeading } from './components/SectionHeading';
|
|
65
|
+
export type { SectionHeadingProps } from './components/SectionHeading';
|
|
66
|
+
export { ActionLinkButton } from './components/ActionLinkButton';
|
|
67
|
+
export type { ActionLinkButtonProps } from './components/ActionLinkButton';
|
|
68
|
+
export { WhatsAppButton } from './components/WhatsAppButton';
|
|
69
|
+
export type { WhatsAppButtonProps } from './components/WhatsAppButton';
|
|
70
|
+
export { EventCarousel } from './components/EventCarousel';
|
|
71
|
+
export type { CarouselMedia, EventCarouselProps } from './components/EventCarousel';
|
|
72
|
+
export { WhatsAppIcon } from './icons';
|
|
73
|
+
export type { WhatsAppIconProps } from './icons';
|
|
74
|
+
export { Tag } from './components/Tag';
|
|
75
|
+
export type { TagProps } from './components/Tag';
|
|
76
|
+
export { Tooltip } from './components/Tooltip';
|
|
77
|
+
export type { TooltipProps } from './components/Tooltip';
|
|
78
|
+
export { Link, Paragraph, Text, Title } from './components/Typography';
|
|
79
|
+
export type { TextProps, TitleProps } from './components/Typography';
|
|
80
|
+
export { AreaChart, BarChart, DonutChart, DualAxisChart, GroupedBarChart, HorizontalBarChart, LineChart, PieChart, StackedBarChart, StackedBarLineChart, VerticalBarChart } from './components/Charts';
|
|
81
|
+
export type { CartesianChartProps, ChartSeries, CombinationChartProps, PieChartProps } from './components/Charts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "elij-ui-library",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"private": false,
|
|
3
|
+
"version": "0.2.0",
|
|
5
4
|
"type": "module",
|
|
6
5
|
"description": "Reusable React UI Components Storybook",
|
|
7
6
|
"license": "MIT",
|
|
@@ -14,7 +13,8 @@
|
|
|
14
13
|
"access": "public"
|
|
15
14
|
},
|
|
16
15
|
"files": [
|
|
17
|
-
"dist"
|
|
16
|
+
"dist",
|
|
17
|
+
"registry"
|
|
18
18
|
],
|
|
19
19
|
"main": "./dist/index.cjs",
|
|
20
20
|
"module": "./dist/index.js",
|
|
@@ -25,7 +25,9 @@
|
|
|
25
25
|
"import": "./dist/index.js",
|
|
26
26
|
"require": "./dist/index.cjs"
|
|
27
27
|
},
|
|
28
|
-
"./styles.css": "./dist/ui-library.css"
|
|
28
|
+
"./styles.css": "./dist/ui-library.css",
|
|
29
|
+
"./registry": "./registry/components.json",
|
|
30
|
+
"./registry/schema": "./registry/schema.json"
|
|
29
31
|
},
|
|
30
32
|
"scripts": {
|
|
31
33
|
"dev": "storybook dev -p 6006",
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"package": "elij-ui-library",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Public component metadata for Elij UI tooling, Storybook, CLI, and MCP.",
|
|
6
|
+
"components": [
|
|
7
|
+
{ "name": "ActionLinkButton", "kind": "component", "category": "actions", "description": "A styled action link that combines navigation with button treatments.", "import": "ActionLinkButton", "story": "ActionLinkButton/Default", "props": ["href", "children", "icon", "size", "variant"] },
|
|
8
|
+
{ "name": "Alert", "kind": "component", "category": "feedback", "description": "Dismissible status message with semantic alert or status roles.", "import": "Alert", "story": "Alert/Info", "props": ["children", "title", "variant", "onDismiss"] },
|
|
9
|
+
{ "name": "AreaChart", "kind": "component", "category": "charts", "description": "Responsive area chart with shared chart controls.", "import": "AreaChart", "story": "Charts/Area", "props": ["data", "series", "xKey", "height", "loading"] },
|
|
10
|
+
{ "name": "Avatar", "kind": "component", "category": "data-display", "description": "Image or fallback avatar with configurable size and shape.", "import": "Avatar", "story": "Avatar/Default", "props": ["src", "alt", "children", "size", "shape"] },
|
|
11
|
+
{ "name": "Badge", "kind": "component", "category": "data-display", "description": "Compact status or label badge.", "import": "Badge", "story": "Badge/Default", "props": ["children", "variant"] },
|
|
12
|
+
{ "name": "BarChart", "kind": "component", "category": "charts", "description": "Responsive vertical bar chart.", "import": "BarChart", "story": "Charts/Bar", "props": ["data", "series", "xKey", "height", "loading"] },
|
|
13
|
+
{ "name": "Breadcrumb", "kind": "component", "category": "navigation", "description": "Accessible breadcrumb navigation.", "import": "Breadcrumb", "story": "Breadcrumb/Default", "props": ["items", "separator", "ariaLabel"] },
|
|
14
|
+
{ "name": "Button", "kind": "component", "category": "actions", "description": "Accessible button with primary, secondary, and ghost variants.", "import": "Button", "story": "Button/Default", "props": ["children", "variant", "size", "fullWidth", "disabled"] },
|
|
15
|
+
{ "name": "Card", "kind": "component", "category": "data-display", "description": "Surface container for grouped content.", "import": "Card", "story": "Card/Default", "props": ["children", "interactive", "className"] },
|
|
16
|
+
{ "name": "CardHeader", "kind": "component", "category": "data-display", "description": "Header region for a Card.", "import": "CardHeader", "story": "Card/Composition", "props": ["children"] },
|
|
17
|
+
{ "name": "CardBody", "kind": "component", "category": "data-display", "description": "Body region for a Card.", "import": "CardBody", "story": "Card/Composition", "props": ["children"] },
|
|
18
|
+
{ "name": "CardFooter", "kind": "component", "category": "data-display", "description": "Footer region for a Card.", "import": "CardFooter", "story": "Card/Composition", "props": ["children"] },
|
|
19
|
+
{ "name": "Checkbox", "kind": "component", "category": "forms", "description": "Native checkbox with an optional visible label.", "import": "Checkbox", "story": "Checkbox/Default", "props": ["label", "indeterminate", "disabled"] },
|
|
20
|
+
{ "name": "Dialog", "kind": "component", "category": "overlay", "description": "Modal dialog with focus management and escape handling.", "import": "Dialog", "story": "Dialog/Default", "props": ["open", "onOpenChange", "title", "description", "children"] },
|
|
21
|
+
{ "name": "Divider", "kind": "component", "category": "layout", "description": "Horizontal or vertical content divider.", "import": "Divider", "story": "Divider/Default", "props": ["orientation", "label"] },
|
|
22
|
+
{ "name": "DonutChart", "kind": "component", "category": "charts", "description": "Responsive donut chart.", "import": "DonutChart", "story": "Charts/Donut", "props": ["data", "nameKey", "valueKey", "height"] },
|
|
23
|
+
{ "name": "Drawer", "kind": "component", "category": "overlay", "description": "Focus-managed sliding panel.", "import": "Drawer", "story": "Drawer/Default", "props": ["open", "onOpenChange", "title", "placement", "width"] },
|
|
24
|
+
{ "name": "Dropdown", "kind": "component", "category": "navigation", "description": "Dismissible menu anchored to a trigger.", "import": "Dropdown", "story": "Dropdown/Default", "props": ["trigger", "items", "open", "onOpenChange", "onSelect"] },
|
|
25
|
+
{ "name": "DualAxisChart", "kind": "component", "category": "charts", "description": "Combination chart with optional second value axis.", "import": "DualAxisChart", "story": "Charts/Dual Axis", "props": ["data", "barSeries", "lineSeries", "xKey", "dualAxis"] },
|
|
26
|
+
{ "name": "Empty", "kind": "component", "category": "feedback", "description": "Empty state with optional image and action content.", "import": "Empty", "story": "Empty/Default", "props": ["description", "image", "children", "compact"] },
|
|
27
|
+
{ "name": "EventCarousel", "kind": "component", "category": "content", "description": "Responsive image and video carousel for event media.", "import": "EventCarousel", "story": "EventCarousel/Default", "props": ["title", "description", "media", "className"] },
|
|
28
|
+
{ "name": "FilterTabs", "kind": "component", "category": "navigation", "description": "Compact filter controls for switching a visible dataset.", "import": "FilterTabs", "story": "FilterTabs/Default", "props": ["items", "activeKey", "onChange", "ariaLabel"] },
|
|
29
|
+
{ "name": "Flex", "kind": "component", "category": "layout", "description": "Token-friendly flex layout primitive.", "import": "Flex", "story": "Flex/Default", "props": ["children", "vertical", "gap", "align", "justify", "wrap"] },
|
|
30
|
+
{ "name": "GroupedBarChart", "kind": "component", "category": "charts", "description": "Grouped responsive bar chart.", "import": "GroupedBarChart", "story": "Charts/Grouped Bar", "props": ["data", "series", "xKey", "height"] },
|
|
31
|
+
{ "name": "HorizontalBarChart", "kind": "component", "category": "charts", "description": "Responsive horizontal bar chart.", "import": "HorizontalBarChart", "story": "Charts/Horizontal Bar", "props": ["data", "series", "xKey", "height"] },
|
|
32
|
+
{ "name": "Input", "kind": "component", "category": "forms", "description": "Labeled text input with helper and error semantics.", "import": "Input", "story": "Input/Default", "props": ["label", "helperText", "error", "errorMessage", "fullWidth"] },
|
|
33
|
+
{ "name": "LineChart", "kind": "component", "category": "charts", "description": "Responsive line chart.", "import": "LineChart", "story": "Charts/Line", "props": ["data", "series", "xKey", "height", "loading"] },
|
|
34
|
+
{ "name": "Link", "kind": "component", "category": "typography", "description": "Styled inline or standalone link.", "import": "Link", "story": "Typography/Link", "props": ["children", "href"] },
|
|
35
|
+
{ "name": "Menu", "kind": "component", "category": "navigation", "description": "Keyboard-navigable menu items.", "import": "Menu", "story": "Menu/Default", "props": ["items", "orientation", "onSelect"] },
|
|
36
|
+
{ "name": "Pagination", "kind": "component", "category": "navigation", "description": "Accessible page navigation control.", "import": "Pagination", "story": "Pagination/Default", "props": ["current", "total", "pageSize", "onChange"] },
|
|
37
|
+
{ "name": "Paragraph", "kind": "component", "category": "typography", "description": "Styled paragraph text primitive.", "import": "Paragraph", "story": "Typography/Paragraph", "props": ["children"] },
|
|
38
|
+
{ "name": "PieChart", "kind": "component", "category": "charts", "description": "Responsive pie chart.", "import": "PieChart", "story": "Charts/Pie", "props": ["data", "nameKey", "valueKey", "height"] },
|
|
39
|
+
{ "name": "Progress", "kind": "component", "category": "feedback", "description": "Line or circular progress indicator.", "import": "Progress", "story": "Progress/Default", "props": ["percent", "type", "status", "showInfo", "label"] },
|
|
40
|
+
{ "name": "RadioGroup", "kind": "component", "category": "forms", "description": "Accessible radio option group.", "import": "RadioGroup", "story": "RadioGroup/Default", "props": ["name", "label", "options", "value", "onValueChange"] },
|
|
41
|
+
{ "name": "Result", "kind": "component", "category": "feedback", "description": "Outcome or status panel with optional actions.", "import": "Result", "story": "Result/Success", "props": ["status", "title", "description", "actions"] },
|
|
42
|
+
{ "name": "SectionHeading", "kind": "component", "category": "content", "description": "Consistent eyebrow, heading, and description block.", "import": "SectionHeading", "story": "SectionHeading/Default", "props": ["eyebrow", "title", "description"] },
|
|
43
|
+
{ "name": "Select", "kind": "component", "category": "forms", "description": "Labeled native select with helper and error semantics.", "import": "Select", "story": "Select/Default", "props": ["label", "options", "placeholder", "error", "fullWidth"] },
|
|
44
|
+
{ "name": "Skeleton", "kind": "component", "category": "feedback", "description": "Loading placeholder for content surfaces.", "import": "Skeleton", "story": "Skeleton/Default", "props": ["variant", "width", "height", "animated"] },
|
|
45
|
+
{ "name": "Space", "kind": "component", "category": "layout", "description": "Consistent spacing primitive for inline or stacked content.", "import": "Space", "story": "Space/Default", "props": ["children", "direction", "size", "wrap", "align"] },
|
|
46
|
+
{ "name": "Spinner", "kind": "component", "category": "feedback", "description": "Loading status indicator.", "import": "Spinner", "story": "Spinner/Default", "props": ["size", "label"] },
|
|
47
|
+
{ "name": "StackedBarChart", "kind": "component", "category": "charts", "description": "Stacked responsive bar chart.", "import": "StackedBarChart", "story": "Charts/Stacked Bar", "props": ["data", "series", "xKey", "height"] },
|
|
48
|
+
{ "name": "StackedBarLineChart", "kind": "component", "category": "charts", "description": "Combined stacked bar and line chart.", "import": "StackedBarLineChart", "story": "Charts/Stacked Bar Line", "props": ["data", "barSeries", "lineSeries", "xKey"] },
|
|
49
|
+
{ "name": "Steps", "kind": "component", "category": "navigation", "description": "Progressive step navigation with statuses.", "import": "Steps", "story": "Steps/Default", "props": ["items", "current", "onChange", "direction"] },
|
|
50
|
+
{ "name": "Switch", "kind": "component", "category": "forms", "description": "Accessible on/off switch control.", "import": "Switch", "story": "Switch/Default", "props": ["checked", "defaultChecked", "onCheckedChange", "label"] },
|
|
51
|
+
{ "name": "Table", "kind": "component", "category": "data-display", "description": "Typed data table with empty state support.", "import": "Table", "story": "Table/Default", "props": ["columns", "data", "rowKey", "caption"] },
|
|
52
|
+
{ "name": "Tabs", "kind": "component", "category": "navigation", "description": "Keyboard-navigable content tabs.", "import": "Tabs", "story": "Tabs/Default", "props": ["items", "activeKey", "onChange", "orientation"] },
|
|
53
|
+
{ "name": "Tag", "kind": "component", "category": "data-display", "description": "Compact label that can optionally be dismissed.", "import": "Tag", "story": "Tag/Default", "props": ["children", "color", "closable", "onClose"] },
|
|
54
|
+
{ "name": "Text", "kind": "component", "category": "typography", "description": "Styled inline text primitive.", "import": "Text", "story": "Typography/Text", "props": ["children", "tone", "strong", "code"] },
|
|
55
|
+
{ "name": "Textarea", "kind": "component", "category": "forms", "description": "Labeled multiline input with helper and error semantics.", "import": "Textarea", "story": "Textarea/Default", "props": ["label", "helperText", "error", "errorMessage", "fullWidth"] },
|
|
56
|
+
{ "name": "Title", "kind": "component", "category": "typography", "description": "Semantic heading primitive.", "import": "Title", "story": "Typography/Title", "props": ["level", "children"] },
|
|
57
|
+
{ "name": "Tooltip", "kind": "component", "category": "feedback", "description": "Accessible hover and focus tooltip.", "import": "Tooltip", "story": "Tooltip/Default", "props": ["title", "children", "placement", "delay"] },
|
|
58
|
+
{ "name": "UIProvider", "kind": "provider", "category": "foundation", "description": "Locale, message, theme, and color-scheme provider.", "import": "UIProvider", "story": "UIProvider/Themes", "props": ["children", "locale", "messages", "theme"] },
|
|
59
|
+
{ "name": "WhatsAppButton", "kind": "component", "category": "actions", "description": "Link-styled CTA with WhatsApp-friendly defaults.", "import": "WhatsAppButton", "story": "WhatsAppButton/Default", "props": ["href", "children", "icon", "size", "variant"] },
|
|
60
|
+
{ "name": "WhatsAppIcon", "kind": "icon", "category": "icons", "description": "Brand-safe inline WhatsApp SVG icon.", "import": "WhatsAppIcon", "story": "WhatsAppIcon/Default", "props": ["size", "title"] }
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://elij-ui-library.dev/registry/components.schema.json",
|
|
4
|
+
"title": "Elij UI component registry",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["schemaVersion", "package", "version", "components"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": { "type": "integer", "const": 1 },
|
|
9
|
+
"package": { "type": "string" },
|
|
10
|
+
"version": { "type": "string" },
|
|
11
|
+
"description": { "type": "string" },
|
|
12
|
+
"components": {
|
|
13
|
+
"type": "array",
|
|
14
|
+
"items": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"required": ["name", "kind", "category", "description", "import", "story", "props"],
|
|
17
|
+
"properties": {
|
|
18
|
+
"name": { "type": "string" },
|
|
19
|
+
"kind": { "enum": ["component", "icon", "provider"] },
|
|
20
|
+
"category": { "type": "string" },
|
|
21
|
+
"description": { "type": "string" },
|
|
22
|
+
"import": { "type": "string" },
|
|
23
|
+
"story": { "type": "string" },
|
|
24
|
+
"props": { "type": "array", "items": { "type": "string" } }
|
|
25
|
+
},
|
|
26
|
+
"additionalProperties": false
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
}
|
|
32
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|