@c-rex/components 0.0.9 → 0.0.11

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.
Files changed (135) hide show
  1. package/package.json +29 -44
  2. package/src/autocomplete.tsx +113 -0
  3. package/src/blog-card.tsx +87 -0
  4. package/src/blur-image.tsx +23 -0
  5. package/src/breadcrumb.tsx +81 -0
  6. package/src/empty.tsx +13 -0
  7. package/src/navbar/navbar.tsx +69 -0
  8. package/src/navbar/sing-in-out-btns.tsx +29 -0
  9. package/src/providers/search-state-wrapper.tsx +21 -0
  10. package/src/result-list.tsx +16 -0
  11. package/src/result-view/blog-view.stories.tsx +58 -0
  12. package/src/result-view/blog.tsx +38 -0
  13. package/src/result-view/table-view.stories.tsx +55 -0
  14. package/src/result-view/table.tsx +65 -0
  15. package/src/sidebar.tsx +76 -0
  16. package/src/stories/blog-card.stories.tsx +46 -0
  17. package/src/stories/blur-image.stories.tsx +51 -0
  18. package/src/stories/breadcrumb.stories.tsx +52 -0
  19. package/src/stories/empty.stories.tsx +14 -0
  20. package/src/stories/navbar.stories.tsx +16 -0
  21. package/src/stories/sidebar.stories.tsx +94 -0
  22. package/dist/autocomplete.cjs.js +0 -215
  23. package/dist/autocomplete.cjs.js.map +0 -1
  24. package/dist/autocomplete.d.cts +0 -10
  25. package/dist/autocomplete.d.ts +0 -10
  26. package/dist/autocomplete.esm.js +0 -154
  27. package/dist/autocomplete.esm.js.map +0 -1
  28. package/dist/blog-card.cjs.js +0 -265
  29. package/dist/blog-card.cjs.js.map +0 -1
  30. package/dist/blog-card.d.cts +0 -19
  31. package/dist/blog-card.d.ts +0 -19
  32. package/dist/blog-card.esm.js +0 -192
  33. package/dist/blog-card.esm.js.map +0 -1
  34. package/dist/blur-image.cjs.js +0 -198
  35. package/dist/blur-image.cjs.js.map +0 -1
  36. package/dist/blur-image.d.cts +0 -7
  37. package/dist/blur-image.d.ts +0 -7
  38. package/dist/blur-image.esm.js +0 -125
  39. package/dist/blur-image.esm.js.map +0 -1
  40. package/dist/breadcrumb.cjs.js +0 -159
  41. package/dist/breadcrumb.cjs.js.map +0 -1
  42. package/dist/breadcrumb.d.cts +0 -10
  43. package/dist/breadcrumb.d.ts +0 -10
  44. package/dist/breadcrumb.esm.js +0 -98
  45. package/dist/breadcrumb.esm.js.map +0 -1
  46. package/dist/empty.cjs.js +0 -79
  47. package/dist/empty.cjs.js.map +0 -1
  48. package/dist/empty.d.cts +0 -5
  49. package/dist/empty.d.ts +0 -5
  50. package/dist/empty.esm.js +0 -18
  51. package/dist/empty.esm.js.map +0 -1
  52. package/dist/navbar.cjs.js +0 -134
  53. package/dist/navbar.cjs.js.map +0 -1
  54. package/dist/navbar.d.cts +0 -9
  55. package/dist/navbar.d.ts +0 -9
  56. package/dist/navbar.esm.js +0 -61
  57. package/dist/navbar.esm.js.map +0 -1
  58. package/dist/providers/search-state-wrapper.cjs.js +0 -113
  59. package/dist/providers/search-state-wrapper.cjs.js.map +0 -1
  60. package/dist/providers/search-state-wrapper.d.cts +0 -14
  61. package/dist/providers/search-state-wrapper.d.ts +0 -14
  62. package/dist/providers/search-state-wrapper.esm.js +0 -51
  63. package/dist/providers/search-state-wrapper.esm.js.map +0 -1
  64. package/dist/result-list.cjs.js +0 -321
  65. package/dist/result-list.cjs.js.map +0 -1
  66. package/dist/result-list.d.cts +0 -9
  67. package/dist/result-list.d.ts +0 -9
  68. package/dist/result-list.esm.js +0 -247
  69. package/dist/result-list.esm.js.map +0 -1
  70. package/dist/result-view/blog-view.stories.cjs.js +0 -372
  71. package/dist/result-view/blog-view.stories.cjs.js.map +0 -1
  72. package/dist/result-view/blog-view.stories.d.cts +0 -11
  73. package/dist/result-view/blog-view.stories.d.ts +0 -11
  74. package/dist/result-view/blog-view.stories.esm.js +0 -295
  75. package/dist/result-view/blog-view.stories.esm.js.map +0 -1
  76. package/dist/result-view/blog.cjs.js +0 -290
  77. package/dist/result-view/blog.cjs.js.map +0 -1
  78. package/dist/result-view/blog.d.cts +0 -9
  79. package/dist/result-view/blog.d.ts +0 -9
  80. package/dist/result-view/blog.esm.js +0 -220
  81. package/dist/result-view/blog.esm.js.map +0 -1
  82. package/dist/result-view/table-view.stories.cjs.js +0 -196
  83. package/dist/result-view/table-view.stories.cjs.js.map +0 -1
  84. package/dist/result-view/table-view.stories.d.cts +0 -11
  85. package/dist/result-view/table-view.stories.d.ts +0 -11
  86. package/dist/result-view/table-view.stories.esm.js +0 -131
  87. package/dist/result-view/table-view.stories.esm.js.map +0 -1
  88. package/dist/result-view/table.cjs.js +0 -116
  89. package/dist/result-view/table.cjs.js.map +0 -1
  90. package/dist/result-view/table.d.cts +0 -9
  91. package/dist/result-view/table.d.ts +0 -9
  92. package/dist/result-view/table.esm.js +0 -59
  93. package/dist/result-view/table.esm.js.map +0 -1
  94. package/dist/sidebar.cjs.js +0 -225
  95. package/dist/sidebar.cjs.js.map +0 -1
  96. package/dist/sidebar.d.cts +0 -12
  97. package/dist/sidebar.d.ts +0 -12
  98. package/dist/sidebar.esm.js +0 -164
  99. package/dist/sidebar.esm.js.map +0 -1
  100. package/dist/stories/blog-card.stories.cjs.js +0 -323
  101. package/dist/stories/blog-card.stories.cjs.js.map +0 -1
  102. package/dist/stories/blog-card.stories.d.cts +0 -9
  103. package/dist/stories/blog-card.stories.d.ts +0 -9
  104. package/dist/stories/blog-card.stories.esm.js +0 -242
  105. package/dist/stories/blog-card.stories.esm.js.map +0 -1
  106. package/dist/stories/blur-image.stories.cjs.js +0 -265
  107. package/dist/stories/blur-image.stories.cjs.js.map +0 -1
  108. package/dist/stories/blur-image.stories.d.cts +0 -37
  109. package/dist/stories/blur-image.stories.d.ts +0 -37
  110. package/dist/stories/blur-image.stories.esm.js +0 -180
  111. package/dist/stories/blur-image.stories.esm.js.map +0 -1
  112. package/dist/stories/breadcrumb.stories.cjs.js +0 -214
  113. package/dist/stories/breadcrumb.stories.cjs.js.map +0 -1
  114. package/dist/stories/breadcrumb.stories.d.cts +0 -9
  115. package/dist/stories/breadcrumb.stories.d.ts +0 -9
  116. package/dist/stories/breadcrumb.stories.esm.js +0 -145
  117. package/dist/stories/breadcrumb.stories.esm.js.map +0 -1
  118. package/dist/stories/empty.stories.cjs.js +0 -93
  119. package/dist/stories/empty.stories.cjs.js.map +0 -1
  120. package/dist/stories/empty.stories.d.cts +0 -13
  121. package/dist/stories/empty.stories.d.ts +0 -13
  122. package/dist/stories/empty.stories.esm.js +0 -28
  123. package/dist/stories/empty.stories.esm.js.map +0 -1
  124. package/dist/stories/navbar.stories.cjs.js +0 -151
  125. package/dist/stories/navbar.stories.cjs.js.map +0 -1
  126. package/dist/stories/navbar.stories.d.cts +0 -8
  127. package/dist/stories/navbar.stories.d.ts +0 -8
  128. package/dist/stories/navbar.stories.esm.js +0 -74
  129. package/dist/stories/navbar.stories.esm.js.map +0 -1
  130. package/dist/stories/sidebar.stories.cjs.js +0 -327
  131. package/dist/stories/sidebar.stories.cjs.js.map +0 -1
  132. package/dist/stories/sidebar.stories.d.cts +0 -30
  133. package/dist/stories/sidebar.stories.d.ts +0 -30
  134. package/dist/stories/sidebar.stories.esm.js +0 -258
  135. package/dist/stories/sidebar.stories.esm.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ import { FC } from "react";
2
+
3
+ import { BlogCard } from "../blog-card";
4
+ import { informationUnitsItems, Labels } from "@c-rex/interfaces";
5
+
6
+ interface BlogViewProps {
7
+ items: informationUnitsItems[];
8
+ }
9
+
10
+ const BlogView: FC<BlogViewProps> = ({ items }) => {
11
+ const getTitle = (labels: Labels[]): string => {
12
+ return labels.map((item) => item.value).join();
13
+ };
14
+
15
+ return (
16
+ <div className="grid gap-8 md:grid-cols-2 md:gap-x-6 md:gap-y-10 xl:grid-cols-3">
17
+ {items.map((item, index) => {
18
+ return (
19
+ <BlogCard
20
+ key={index}
21
+ data={{
22
+ title: getTitle(item.labels),
23
+ blurDataURL: "/img/blog-post-1.webp",
24
+ image: "/img/blog-post-1.webp",
25
+ description: "item.shortDescription",
26
+ authors: "item.authors",
27
+ _id: "item._id",
28
+ date: "item.date",
29
+ slug: `info/${item.shortId}`,
30
+ }}
31
+ />
32
+ );
33
+ })}
34
+ </div>
35
+ );
36
+ };
37
+
38
+ export default BlogView;
@@ -0,0 +1,55 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import TableView from '../result-view/table';
3
+
4
+ const meta: Meta<typeof TableView> = {
5
+ title: 'Components/ResultView/Table',
6
+ component: TableView,
7
+ parameters: {
8
+ layout: 'centered',
9
+ },
10
+ tags: ['autodocs'],
11
+ };
12
+
13
+ export default meta;
14
+ type Story = StoryObj<typeof TableView>;
15
+
16
+ const mockItems = [
17
+ {
18
+ id: '1',
19
+ labels: [
20
+ { value: 'Installation Guide', language: 'en-US' },
21
+ { value: 'Guide d\'installation', language: 'fr-FR' }
22
+ ],
23
+ languages: ['fr-FR'],
24
+ type: 'document',
25
+ renditions: [],
26
+ directoryNodes: []
27
+ },
28
+ {
29
+ id: '2',
30
+ labels: [
31
+ { value: 'User Manual', language: 'en-US' },
32
+ { value: 'Manual del Usuario', language: 'es-ES' }
33
+ ],
34
+ languages: ['es-ES'],
35
+ type: 'document',
36
+ renditions: [],
37
+ directoryNodes: []
38
+ },
39
+ {
40
+ id: '3',
41
+ labels: [
42
+ { value: 'Technical Specifications', language: 'en-US' }
43
+ ],
44
+ languages: ['en-US'],
45
+ type: 'document',
46
+ renditions: [],
47
+ directoryNodes: []
48
+ }
49
+ ];
50
+
51
+ export const Default: Story = {
52
+ args: {
53
+ items: mockItems as any
54
+ }
55
+ };
@@ -0,0 +1,65 @@
1
+ import { FC, ReactNode } from "react";
2
+
3
+ import {
4
+ Table,
5
+ TableBody,
6
+ TableCell,
7
+ TableHeader,
8
+ TableRow,
9
+ } from "@c-rex/ui/table";
10
+ import { informationUnitsItems, Labels } from "@c-rex/interfaces";
11
+ //import { getFlagIcon } from '@c-rex/utils/index';
12
+
13
+ interface TableViewProps {
14
+ items: informationUnitsItems[];
15
+ }
16
+
17
+ const TableView: FC<TableViewProps> = ({ items }) => {
18
+ const getTitle = (labels: Labels[]): string => {
19
+ return labels.map((item) => item.value).join();
20
+ };
21
+ const getIcons = (languages: string[]): ReactNode[] => {
22
+ return languages.map((lang, index) => {
23
+ const aux = lang.split("-")[1];
24
+
25
+ /*
26
+ const FlagIcon = getFlagIcon(aux);
27
+
28
+ return FlagIcon && (
29
+ <div key={index} style={{ width: 36 }} className="border me-3">
30
+ <FlagIcon />
31
+ </div>
32
+ )
33
+ */
34
+
35
+ return (
36
+ <div key={index} style={{ width: 36 }} className="border me-3">
37
+ {aux}
38
+ </div>
39
+ );
40
+ });
41
+ };
42
+
43
+ return (
44
+ <div className="rounded-md border">
45
+ <Table>
46
+ <TableHeader>
47
+ <TableRow>
48
+ <TableCell>Title</TableCell>
49
+ <TableCell>Country</TableCell>
50
+ </TableRow>
51
+ </TableHeader>
52
+ <TableBody>
53
+ {items.map((item: informationUnitsItems, index: number) => (
54
+ <TableRow key={index}>
55
+ <TableCell>{getTitle(item.labels)}</TableCell>
56
+ <TableCell>{getIcons(item.languages)}</TableCell>
57
+ </TableRow>
58
+ ))}
59
+ </TableBody>
60
+ </Table>
61
+ </div>
62
+ );
63
+ };
64
+
65
+ export default TableView;
@@ -0,0 +1,76 @@
1
+ "use client";
2
+
3
+ import { ComponentProps } from "react";
4
+ import {
5
+ Sidebar,
6
+ SidebarContent,
7
+ SidebarGroup,
8
+ SidebarMenu,
9
+ SidebarMenuButton,
10
+ SidebarMenuItem,
11
+ SidebarMenuSub,
12
+ SidebarMenuSubButton,
13
+ SidebarMenuSubItem,
14
+ SidebarRail
15
+ } from "@c-rex/ui/sidebar";
16
+ import { Skeleton } from "@c-rex/ui/skeleton";
17
+ import { TreeOfContent } from "@c-rex/interfaces";
18
+
19
+ interface SidebarProps extends ComponentProps<typeof Sidebar> {
20
+ data: TreeOfContent[];
21
+ loading?: boolean;
22
+ }
23
+
24
+ export function AppSidebar({ data, loading, ...props }: SidebarProps) {
25
+ return (
26
+ <Sidebar collapsible="icon" {...props} className="top-20">
27
+ <SidebarContent>
28
+ <SidebarGroup>
29
+ <SidebarMenu className="pt-4">
30
+ {loading ? (
31
+ <>
32
+ <Skeleton className="w-auto h-10 mb-2" />
33
+ <Skeleton className="w-auto h-10 mb-2" />
34
+ <Skeleton className="w-auto h-10 mb-2 ml-8" />
35
+ <Skeleton className="w-auto h-10 mb-2 ml-8" />
36
+ <Skeleton className="w-auto h-10 mb-2 ml-8" />
37
+ <Skeleton className="w-auto h-10 mb-2 ml-8" />
38
+ <Skeleton className="w-auto h-10 mb-2" />
39
+ </>
40
+ ) : (
41
+ <>
42
+ {data.map((item) => (
43
+ <SidebarMenuItem key={item.id}>
44
+ <SidebarMenuButton asChild isActive={item.active}>
45
+ <a href={item.link} title={item.label}>
46
+ {item.label}
47
+ </a>
48
+ </SidebarMenuButton>
49
+
50
+ {item.children?.length ? (
51
+ <SidebarMenuSub>
52
+ {item.children.map((item) => (
53
+ <SidebarMenuSubItem key={item.label}>
54
+ <SidebarMenuSubButton
55
+ asChild
56
+ isActive={item.active}
57
+ >
58
+ <a href={item.link} title={item.label}>
59
+ {item.label}
60
+ </a>
61
+ </SidebarMenuSubButton>
62
+ </SidebarMenuSubItem>
63
+ ))}
64
+ </SidebarMenuSub>
65
+ ) : null}
66
+ </SidebarMenuItem>
67
+ ))}
68
+ </>
69
+ )}
70
+ </SidebarMenu>
71
+ </SidebarGroup>
72
+ </SidebarContent>
73
+ <SidebarRail />
74
+ </Sidebar>
75
+ );
76
+ }
@@ -0,0 +1,46 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { BlogCard } from '../blog-card';
3
+
4
+ const meta: Meta = {
5
+ title: 'Components/BlogCard',
6
+ component: BlogCard,
7
+ tags: ['autodocs',],
8
+ parameters: {
9
+ layout: 'centered',
10
+ },
11
+ argTypes: {
12
+ data: { control: 'object', description: 'The data to be displayed in the card' },
13
+ priority: { control: 'boolean', description: 'Whether the image should be prioritized', type: 'boolean' },
14
+ horizontal: { control: 'boolean' },
15
+ },
16
+ } satisfies Meta<typeof BlogCard>;
17
+
18
+ export default meta;
19
+ type Story = StoryObj<typeof meta>;
20
+
21
+ const mockBlogData = {
22
+ title: 'Getting Started with C-Rex Components',
23
+ blurDataURL: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==',
24
+ image: 'https://images.pexels.com/photos/31712301/pexels-photo-31712301/free-photo-of-scenic-cycling-tour-in-andernach-fields.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1',
25
+ description: 'Learn how to use C-Rex components to build modern web applications with React and Next.js.',
26
+ authors: 'John Doe',
27
+ _id: '1',
28
+ date: '2023-05-15',
29
+ slug: 'getting-started-with-c-rex-components',
30
+ };
31
+
32
+ export const Horizontal: Story = {
33
+ args: {
34
+ data: mockBlogData,
35
+ priority: false,
36
+ horizontal: true,
37
+ },
38
+ };
39
+
40
+ export const WithPriority: Story = {
41
+ args: {
42
+ data: mockBlogData,
43
+ priority: true,
44
+ horizontal: false,
45
+ },
46
+ };
@@ -0,0 +1,51 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { BlurImage } from '../blur-image';
3
+
4
+ const meta = {
5
+ title: 'Components/BlurImage',
6
+ component: BlurImage,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'centered',
10
+ },
11
+ argTypes: {
12
+ src: { control: 'text' },
13
+ alt: { control: 'text' },
14
+ width: { control: 'number' },
15
+ height: { control: 'number' },
16
+ className: { control: 'text' },
17
+ },
18
+ } satisfies Meta<typeof BlurImage>;
19
+
20
+ export default meta;
21
+ type Story = StoryObj<typeof meta>;
22
+
23
+ export const Default: Story = {
24
+ args: {
25
+ src: 'https://images.pexels.com/photos/31712301/pexels-photo-31712301/free-photo-of-scenic-cycling-tour-in-andernach-fields.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1',
26
+ alt: 'Sample image with blur effect',
27
+ width: 400,
28
+ height: 300,
29
+ className: 'rounded-lg',
30
+ },
31
+ };
32
+
33
+ export const SmallImage: Story = {
34
+ args: {
35
+ src: 'https://images.pexels.com/photos/31712301/pexels-photo-31712301/free-photo-of-scenic-cycling-tour-in-andernach-fields.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1',
36
+ alt: 'Small sample image with blur effect',
37
+ width: 200,
38
+ height: 150,
39
+ className: 'rounded-lg',
40
+ },
41
+ };
42
+
43
+ export const RoundedImage: Story = {
44
+ args: {
45
+ src: 'https://images.pexels.com/photos/31712301/pexels-photo-31712301/free-photo-of-scenic-cycling-tour-in-andernach-fields.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1',
46
+ alt: 'Rounded sample image with blur effect',
47
+ width: 300,
48
+ height: 300,
49
+ className: 'rounded-full',
50
+ },
51
+ };
@@ -0,0 +1,52 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Breadcrumb } from '../breadcrumb';
3
+
4
+ const meta: Meta = {
5
+ title: 'Components/Breadcrumb',
6
+ component: Breadcrumb,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'centered',
10
+ }
11
+ } satisfies Meta;
12
+
13
+ export default meta;
14
+ type Story = StoryObj<typeof meta>;
15
+
16
+ const mockItems = [
17
+ {
18
+ id: 'docs',
19
+ label: 'Documentation',
20
+ link: '/docs',
21
+ active: false,
22
+ children: [],
23
+ },
24
+ {
25
+ id: 'components',
26
+ label: 'Components',
27
+ link: '/docs/components',
28
+ active: false,
29
+ children: [],
30
+ },
31
+ {
32
+ id: 'breadcrumb',
33
+ label: 'Breadcrumb',
34
+ link: '/docs/components/breadcrumb',
35
+ active: true,
36
+ children: [],
37
+ },
38
+ ];
39
+
40
+ export const Default: Story = {
41
+ args: {
42
+ items: mockItems,
43
+ loading: false,
44
+ },
45
+ };
46
+
47
+ export const Loading: Story = {
48
+ args: {
49
+ items: [],
50
+ loading: true,
51
+ },
52
+ };
@@ -0,0 +1,14 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Empty } from '../empty';
3
+
4
+ const meta = {
5
+ title: 'Components/Empty',
6
+ component: Empty,
7
+ tags: ['autodocs'],
8
+ } satisfies Meta<typeof Empty>;
9
+
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+
13
+ export const Default: Story = {
14
+ };
@@ -0,0 +1,16 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { NavBar } from '../navbar/navbar';
3
+
4
+ const meta: Meta = {
5
+ title: 'Components/NavBar',
6
+ component: NavBar,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'padded',
10
+ },
11
+ } satisfies Meta<typeof NavBar>;
12
+
13
+ export default meta;
14
+ type Story = StoryObj<typeof meta>;
15
+
16
+ export const Default: Story = {}
@@ -0,0 +1,94 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AppSidebar } from '../sidebar';
3
+ import { SidebarInset, SidebarProvider, SidebarTrigger } from "@c-rex/ui/sidebar";
4
+
5
+ const meta = {
6
+ title: 'Components/Sidebar',
7
+ component: AppSidebar,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ layout: 'centered',
11
+ },
12
+ argTypes: {
13
+ data: { control: 'object' },
14
+ loading: { control: 'boolean' },
15
+ },
16
+ decorators: [
17
+ (Story: any) => (
18
+ <SidebarProvider>
19
+ <SidebarTrigger />
20
+
21
+ <div className="flex">
22
+ <SidebarInset>
23
+ <Story />
24
+ </SidebarInset>
25
+ </div>
26
+ </SidebarProvider>
27
+
28
+ ),
29
+ ]
30
+ } satisfies Meta<typeof AppSidebar>;
31
+
32
+ export default meta;
33
+ type Story = StoryObj<typeof meta>;
34
+
35
+ const mockData = [
36
+ {
37
+ id: '1',
38
+ label: 'Getting Started',
39
+ link: '/docs/getting-started',
40
+ active: true,
41
+ children: [
42
+ {
43
+ id: '1-1',
44
+ label: 'Installation',
45
+ link: '/docs/getting-started/installation',
46
+ active: false,
47
+ children: [],
48
+ },
49
+ {
50
+ id: '1-2',
51
+ label: 'Configuration',
52
+ link: '/docs/getting-started/configuration',
53
+ active: false,
54
+ children: [],
55
+ },
56
+ ],
57
+ },
58
+ {
59
+ id: '2',
60
+ label: 'Components',
61
+ link: '/docs/components',
62
+ active: false,
63
+ children: [
64
+ {
65
+ id: '2-1',
66
+ label: 'Sidebar',
67
+ link: '/docs/components/sidebar',
68
+ active: false,
69
+ children: [],
70
+ },
71
+ {
72
+ id: '2-2',
73
+ label: 'Navbar',
74
+ link: '/docs/components/navbar',
75
+ active: false,
76
+ children: [],
77
+ },
78
+ ],
79
+ },
80
+ ];
81
+
82
+ export const Default: Story = {
83
+ args: {
84
+ data: mockData,
85
+ loading: false,
86
+ },
87
+ };
88
+
89
+ export const Loading: Story = {
90
+ args: {
91
+ data: [],
92
+ loading: true,
93
+ },
94
+ };