gwan-design-system 0.1.2 → 0.1.3
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/package.json +26 -2
- package/.github/workflows/bump-version.yml +0 -50
- package/.github/workflows/publish.yml +0 -43
- package/CODEOWNERS +0 -1
- package/eslint.config.mjs +0 -16
- package/next.config.ts +0 -7
- package/postcss.config.mjs +0 -7
- package/public/file.svg +0 -1
- package/public/globe.svg +0 -1
- package/public/images/empty.png +0 -0
- package/public/images/empty_state.png +0 -0
- package/public/images/hero.png +0 -0
- package/public/images/hero2.png +0 -0
- package/public/images/logo.png +0 -0
- package/public/images/logo_short.png +0 -0
- package/public/images/profile_picture.png +0 -0
- package/public/images/success.png +0 -0
- package/public/next.svg +0 -1
- package/public/vercel.svg +0 -1
- package/public/window.svg +0 -1
- package/src/app/components-library/page.tsx +0 -8
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +0 -108
- package/src/app/layout.tsx +0 -34
- package/src/app/page.tsx +0 -5
- package/src/components/avatar/index.tsx +0 -109
- package/src/components/banner/index.tsx +0 -58
- package/src/components/button/index.tsx +0 -61
- package/src/components/carousel/index.tsx +0 -58
- package/src/components/checkbox/index.tsx +0 -48
- package/src/components/chip/index.tsx +0 -22
- package/src/components/ellipsis/index.tsx +0 -36
- package/src/components/fileUploader/index.tsx +0 -54
- package/src/components/filterDropdown/index.tsx +0 -49
- package/src/components/icons/arrowLeftSVG/index.tsx +0 -14
- package/src/components/icons/checkSVG/index.tsx +0 -14
- package/src/components/icons/chevDownSVG/index.tsx +0 -14
- package/src/components/icons/chevLeftSVG/index.tsx +0 -14
- package/src/components/icons/chevRightSVG/index.tsx +0 -14
- package/src/components/icons/circleSVG/index.tsx +0 -14
- package/src/components/icons/colorsSVG/index.tsx +0 -21
- package/src/components/icons/coversSVG/index.tsx +0 -21
- package/src/components/icons/crossSVG/index.tsx +0 -16
- package/src/components/icons/dashboardSVG/index.tsx +0 -14
- package/src/components/icons/filterSVG/index.tsx +0 -21
- package/src/components/icons/index.tsx +0 -17
- package/src/components/icons/orderInfoSVG/index.tsx +0 -21
- package/src/components/icons/ordersSVG/index.tsx +0 -21
- package/src/components/icons/productsSVG/index.tsx +0 -21
- package/src/components/icons/signOutSVG/index.tsx +0 -21
- package/src/components/icons/templatesSVG/index.tsx +0 -24
- package/src/components/icons/uploadSVG/index.tsx +0 -21
- package/src/components/input/index.tsx +0 -40
- package/src/components/modal/index.tsx +0 -54
- package/src/components/navBar/index.tsx +0 -161
- package/src/components/pagination/index.tsx +0 -69
- package/src/components/radioButton/index.tsx +0 -44
- package/src/components/selectDropdown/index.tsx +0 -90
- package/src/components/snackBar/index.tsx +0 -46
- package/src/components/state/index.tsx +0 -69
- package/src/components/table/index.tsx +0 -51
- package/src/components/tag/index.tsx +0 -33
- package/src/components/timeLine/index.tsx +0 -99
- package/src/components/tooltip/index.tsx +0 -70
- package/src/index.ts +0 -22
- package/src/templates/component-library/avatars/index.tsx +0 -45
- package/src/templates/component-library/banners/index.tsx +0 -35
- package/src/templates/component-library/buttons/index.tsx +0 -122
- package/src/templates/component-library/carousels/index.tsx +0 -38
- package/src/templates/component-library/checkboxes/index.tsx +0 -19
- package/src/templates/component-library/chips/index.tsx +0 -49
- package/src/templates/component-library/ellipsis/index.tsx +0 -20
- package/src/templates/component-library/fileUploaders/index.tsx +0 -21
- package/src/templates/component-library/filterDropdown/index.tsx +0 -48
- package/src/templates/component-library/icons/index.tsx +0 -23
- package/src/templates/component-library/index.tsx +0 -179
- package/src/templates/component-library/input/index.tsx +0 -35
- package/src/templates/component-library/modals/index.tsx +0 -113
- package/src/templates/component-library/navBars/index.tsx +0 -91
- package/src/templates/component-library/pagination/index.tsx +0 -28
- package/src/templates/component-library/radioButtons/index.tsx +0 -33
- package/src/templates/component-library/selectDropdown/index.tsx +0 -90
- package/src/templates/component-library/snackBars/index.tsx +0 -34
- package/src/templates/component-library/states/index.tsx +0 -24
- package/src/templates/component-library/tables/index.tsx +0 -143
- package/src/templates/component-library/tags/index.tsx +0 -15
- package/src/templates/component-library/timeLines/index.tsx +0 -96
- package/src/templates/component-library/tooltips/index.tsx +0 -61
- package/tsconfig.build.json +0 -16
- package/tsconfig.json +0 -27
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { useSearchParams, usePathname, useRouter } from "next/navigation";
|
|
4
|
-
import Icons from "./icons";
|
|
5
|
-
import Tags from "./tags";
|
|
6
|
-
import Buttons from "./buttons";
|
|
7
|
-
import Chips from "./chips";
|
|
8
|
-
import TimeLines from "./timeLines";
|
|
9
|
-
import Tables from "./tables";
|
|
10
|
-
import Paginations from "./pagination";
|
|
11
|
-
import FilterDropdowns from "./filterDropdown";
|
|
12
|
-
import SelectDropdowns from "./selectDropdown";
|
|
13
|
-
import Inputs from "./input";
|
|
14
|
-
import Modals from "./modals";
|
|
15
|
-
import Avatars from "./avatars";
|
|
16
|
-
import Tooltips from "./tooltips";
|
|
17
|
-
import EllipsisTemplate from "./ellipsis";
|
|
18
|
-
import NavBars from "./navBars";
|
|
19
|
-
import FileUploaders from "./fileUploaders";
|
|
20
|
-
import Checkboxes from "./checkboxes";
|
|
21
|
-
import RadioButtons from "./radioButtons";
|
|
22
|
-
import Banners from "./banners";
|
|
23
|
-
import Carousels from "./carousels";
|
|
24
|
-
import SnackBars from "./snackBars";
|
|
25
|
-
import States from "./states";
|
|
26
|
-
|
|
27
|
-
const menuItems = [
|
|
28
|
-
{
|
|
29
|
-
name: "Icons",
|
|
30
|
-
template: <Icons />,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "Tags",
|
|
34
|
-
template: <Tags />,
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "Buttons",
|
|
38
|
-
template: <Buttons />,
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "Chips",
|
|
42
|
-
template: <Chips />,
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "Timeline",
|
|
46
|
-
template: <TimeLines />,
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "Table",
|
|
50
|
-
template: <Tables />,
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "Pagination",
|
|
54
|
-
template: <Paginations />,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: "Filter Dropdown",
|
|
58
|
-
template: <FilterDropdowns />,
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: "Select Dropdown",
|
|
62
|
-
template: <SelectDropdowns />,
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: "Input",
|
|
66
|
-
template: <Inputs />,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: "Modal",
|
|
70
|
-
template: <Modals />,
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: "Avatar",
|
|
74
|
-
template: <Avatars />,
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: "Tooltip",
|
|
78
|
-
template: <Tooltips />,
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: "Ellipsis",
|
|
82
|
-
template: <EllipsisTemplate />,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: "Navigation",
|
|
86
|
-
template: <NavBars />,
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: "File Uploader",
|
|
90
|
-
template: <FileUploaders />,
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
name: "Checkbox",
|
|
94
|
-
template: <Checkboxes />,
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: "Radio Button",
|
|
98
|
-
template: <RadioButtons />,
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
name: "Banner",
|
|
102
|
-
template: <Banners />,
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
name: "Carousel",
|
|
106
|
-
template: <Carousels />,
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: "Snackbar",
|
|
110
|
-
template: <SnackBars />,
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
name: "State",
|
|
114
|
-
template: <States />,
|
|
115
|
-
},
|
|
116
|
-
];
|
|
117
|
-
|
|
118
|
-
const LibraryTemplate = () => {
|
|
119
|
-
const router = useRouter();
|
|
120
|
-
const pathname = usePathname();
|
|
121
|
-
const searchParams = useSearchParams();
|
|
122
|
-
|
|
123
|
-
const activeMenuItem = searchParams.get("tab") || menuItems[0].name;
|
|
124
|
-
|
|
125
|
-
const handleTabChange = (tab: string) => {
|
|
126
|
-
const newParams = new URLSearchParams(searchParams);
|
|
127
|
-
newParams.set("tab", tab);
|
|
128
|
-
router.push(`${pathname}?${newParams.toString()}`, { scroll: false });
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
return (
|
|
132
|
-
<div className="custom-bg h-[100vh] overflow-hidden">
|
|
133
|
-
<div className="bg-[#FFFFFF4D] h-[100vh]">
|
|
134
|
-
<div className="flex flex-row gap-8 justify-start items-start">
|
|
135
|
-
<div className="flex flex-col gap-4 bg-[#0000004D] h-[100vh] py-4 px-8 overflow-y-auto w-[350px]">
|
|
136
|
-
<p className="text-white text-2xl font-medium">
|
|
137
|
-
Components Library{" "}
|
|
138
|
-
<span className="text-sm text-neutrola-500">
|
|
139
|
-
v{process.env.NEXT_PUBLIC_APP_VERSION}
|
|
140
|
-
</span>
|
|
141
|
-
</p>
|
|
142
|
-
<hr className="opacity-50 border-2" />
|
|
143
|
-
{menuItems.map((menuItem, index) => {
|
|
144
|
-
const menuItemClass =
|
|
145
|
-
activeMenuItem === menuItem.name
|
|
146
|
-
? "bg-[rgba(0,0,0,0.2)]"
|
|
147
|
-
: "bg-transparent border-2 border-[rgba(255,255,255,0.2)]";
|
|
148
|
-
|
|
149
|
-
return (
|
|
150
|
-
<div
|
|
151
|
-
key={`menu_${menuItem.name}_${index}`}
|
|
152
|
-
className={`p-4 rounded-lg w-full cursor-pointer hover:bg-[rgba(0,0,0,0.3)] ${menuItemClass}`}
|
|
153
|
-
onClick={() => handleTabChange(menuItem.name)}
|
|
154
|
-
>
|
|
155
|
-
<p className="text-white text-lg font-semibold">
|
|
156
|
-
{menuItem.name}
|
|
157
|
-
</p>
|
|
158
|
-
</div>
|
|
159
|
-
);
|
|
160
|
-
})}
|
|
161
|
-
</div>
|
|
162
|
-
<div className="py-4 pr-8 flex flex-1 overflow-y-auto">
|
|
163
|
-
<div className="bg-white rounded-lg p-6 w-full h-[95vh] overflow-y-auto flex flex-col gap-12">
|
|
164
|
-
<p className="text-black text-xl font-medium">{activeMenuItem}</p>
|
|
165
|
-
<div>
|
|
166
|
-
{
|
|
167
|
-
menuItems.find(({ name }) => name === activeMenuItem)
|
|
168
|
-
?.template
|
|
169
|
-
}
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
</div>
|
|
173
|
-
</div>
|
|
174
|
-
</div>
|
|
175
|
-
</div>
|
|
176
|
-
);
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
export default LibraryTemplate;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import Input from "@/components/input";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
|
|
4
|
-
const Inputs = () => {
|
|
5
|
-
const [inputValue, setInputValue] = useState<string>("");
|
|
6
|
-
const [inputValueRequired, setInputValueRequired] = useState<string>("");
|
|
7
|
-
const [inputValueDisabled, setInputValueDisabled] = useState<string>("");
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<div className="flex flex-col gap-4">
|
|
11
|
-
<Input
|
|
12
|
-
label="Input"
|
|
13
|
-
placeholder="This is an input"
|
|
14
|
-
value={inputValue}
|
|
15
|
-
onChange={(val) => setInputValue(val)}
|
|
16
|
-
/>
|
|
17
|
-
<Input
|
|
18
|
-
label="Required Input"
|
|
19
|
-
placeholder="This is a required input"
|
|
20
|
-
value={inputValueRequired}
|
|
21
|
-
onChange={(val) => setInputValueRequired(val)}
|
|
22
|
-
required
|
|
23
|
-
/>
|
|
24
|
-
<Input
|
|
25
|
-
label="Disabled Input"
|
|
26
|
-
placeholder="This is a disabled input"
|
|
27
|
-
value={inputValueDisabled}
|
|
28
|
-
onChange={(val) => setInputValueDisabled(val)}
|
|
29
|
-
disabled
|
|
30
|
-
/>
|
|
31
|
-
</div>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export default Inputs;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import Button, { BUTTON_VARIANTS } from "@/components/button";
|
|
2
|
-
import Modal, { MODAL_SIZE } from "@/components/modal";
|
|
3
|
-
import Image from "next/image";
|
|
4
|
-
import { useState } from "react";
|
|
5
|
-
|
|
6
|
-
const Modals = () => {
|
|
7
|
-
const [isSmallModalOpen, setIsSmallModalOpen] = useState<boolean>(false);
|
|
8
|
-
const [isMediumModalOpen, setIsMediumModalOpen] = useState<boolean>(false);
|
|
9
|
-
const [isLargeModalOpen, setIsLargeModalOpen] = useState<boolean>(false);
|
|
10
|
-
const [isFullModalOpen, setIsFullModalOpen] = useState<boolean>(false);
|
|
11
|
-
const modalImage = "/images/empty_state.png";
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<div className="flex flex-row gap-4 items-center justify-center">
|
|
15
|
-
<Button
|
|
16
|
-
label="Small modal"
|
|
17
|
-
onClick={() => setIsSmallModalOpen(true)}
|
|
18
|
-
variant={BUTTON_VARIANTS.PRIMARY}
|
|
19
|
-
/>
|
|
20
|
-
<Button
|
|
21
|
-
label="Medium modal"
|
|
22
|
-
onClick={() => setIsMediumModalOpen(true)}
|
|
23
|
-
variant={BUTTON_VARIANTS.PRIMARY}
|
|
24
|
-
/>
|
|
25
|
-
<Button
|
|
26
|
-
label="Large modal"
|
|
27
|
-
onClick={() => setIsLargeModalOpen(true)}
|
|
28
|
-
variant={BUTTON_VARIANTS.PRIMARY}
|
|
29
|
-
/>
|
|
30
|
-
<Button
|
|
31
|
-
label="Full screen modal"
|
|
32
|
-
onClick={() => setIsFullModalOpen(true)}
|
|
33
|
-
variant={BUTTON_VARIANTS.PRIMARY}
|
|
34
|
-
/>
|
|
35
|
-
|
|
36
|
-
{isSmallModalOpen && (
|
|
37
|
-
<Modal
|
|
38
|
-
title="Small Modal"
|
|
39
|
-
onClear={() => setIsSmallModalOpen(false)}
|
|
40
|
-
size={MODAL_SIZE.SMALL}
|
|
41
|
-
>
|
|
42
|
-
<div className="flex flex-col gap-4 items-center justify-center">
|
|
43
|
-
<Image
|
|
44
|
-
src={modalImage}
|
|
45
|
-
alt="modal_image"
|
|
46
|
-
width={150}
|
|
47
|
-
height={100}
|
|
48
|
-
/>
|
|
49
|
-
<p className="text-base font-semibold">This is a small modal</p>
|
|
50
|
-
</div>
|
|
51
|
-
</Modal>
|
|
52
|
-
)}
|
|
53
|
-
|
|
54
|
-
{isMediumModalOpen && (
|
|
55
|
-
<Modal
|
|
56
|
-
title="Medium Modal"
|
|
57
|
-
onClear={() => setIsMediumModalOpen(false)}
|
|
58
|
-
size={MODAL_SIZE.MEDIUM}
|
|
59
|
-
>
|
|
60
|
-
<div className="flex flex-col gap-4 items-center justify-center">
|
|
61
|
-
<Image
|
|
62
|
-
src={modalImage}
|
|
63
|
-
alt="modal_image"
|
|
64
|
-
width={300}
|
|
65
|
-
height={200}
|
|
66
|
-
/>
|
|
67
|
-
<p className="text-base font-semibold">This is a medium modal</p>
|
|
68
|
-
</div>
|
|
69
|
-
</Modal>
|
|
70
|
-
)}
|
|
71
|
-
|
|
72
|
-
{isLargeModalOpen && (
|
|
73
|
-
<Modal
|
|
74
|
-
title="Large Modal"
|
|
75
|
-
onClear={() => setIsLargeModalOpen(false)}
|
|
76
|
-
size={MODAL_SIZE.LARGE}
|
|
77
|
-
>
|
|
78
|
-
<div className="flex flex-col gap-4 items-center">
|
|
79
|
-
<Image
|
|
80
|
-
src={modalImage}
|
|
81
|
-
alt="modal_image"
|
|
82
|
-
width={450}
|
|
83
|
-
height={300}
|
|
84
|
-
/>
|
|
85
|
-
<p className="text-base font-semibold">This is a large modal</p>
|
|
86
|
-
</div>
|
|
87
|
-
</Modal>
|
|
88
|
-
)}
|
|
89
|
-
|
|
90
|
-
{isFullModalOpen && (
|
|
91
|
-
<Modal
|
|
92
|
-
title="Full Screen Modal"
|
|
93
|
-
onClear={() => setIsFullModalOpen(false)}
|
|
94
|
-
size={MODAL_SIZE.FULL}
|
|
95
|
-
>
|
|
96
|
-
<div className="flex flex-col gap-4 items-center">
|
|
97
|
-
<Image
|
|
98
|
-
src={modalImage}
|
|
99
|
-
alt="modal_image"
|
|
100
|
-
width={600}
|
|
101
|
-
height={400}
|
|
102
|
-
/>
|
|
103
|
-
<p className="text-base font-semibold">
|
|
104
|
-
This is a full screen modal
|
|
105
|
-
</p>
|
|
106
|
-
</div>
|
|
107
|
-
</Modal>
|
|
108
|
-
)}
|
|
109
|
-
</div>
|
|
110
|
-
);
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export default Modals;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { AVATAR_VARIANT } from "@/components/avatar";
|
|
2
|
-
import {
|
|
3
|
-
ColorsSVG,
|
|
4
|
-
CoversSVG,
|
|
5
|
-
DashboardSVG,
|
|
6
|
-
OrdersSVG,
|
|
7
|
-
ProductsSVG,
|
|
8
|
-
SignOutSVG,
|
|
9
|
-
TemplatesSVG,
|
|
10
|
-
} from "@/components/icons";
|
|
11
|
-
import NavBar from "@/components/navBar";
|
|
12
|
-
|
|
13
|
-
const menuItems = [
|
|
14
|
-
{
|
|
15
|
-
title: "Dashboard",
|
|
16
|
-
icon: <DashboardSVG />,
|
|
17
|
-
route: "",
|
|
18
|
-
isActive: true,
|
|
19
|
-
isDivider: false,
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
title: "Manage orders",
|
|
23
|
-
icon: <OrdersSVG />,
|
|
24
|
-
route: "",
|
|
25
|
-
isActive: false,
|
|
26
|
-
isDivider: false,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
title: "Manage products",
|
|
30
|
-
icon: <ProductsSVG />,
|
|
31
|
-
route: "",
|
|
32
|
-
isActive: false,
|
|
33
|
-
isDivider: false,
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
title: "Manage templates",
|
|
37
|
-
icon: <TemplatesSVG />,
|
|
38
|
-
route: "",
|
|
39
|
-
isActive: false,
|
|
40
|
-
isDivider: false,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
title: "Manage covers",
|
|
44
|
-
icon: <CoversSVG />,
|
|
45
|
-
route: "",
|
|
46
|
-
isActive: false,
|
|
47
|
-
isDivider: false,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
title: "Manage colors",
|
|
51
|
-
icon: <ColorsSVG />,
|
|
52
|
-
route: "",
|
|
53
|
-
isActive: false,
|
|
54
|
-
isDivider: false,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
title: "",
|
|
58
|
-
route: "",
|
|
59
|
-
isActive: false,
|
|
60
|
-
isDivider: true,
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
title: "Sign out",
|
|
64
|
-
icon: <SignOutSVG />,
|
|
65
|
-
route: "",
|
|
66
|
-
isActive: false,
|
|
67
|
-
isDivider: false,
|
|
68
|
-
},
|
|
69
|
-
];
|
|
70
|
-
|
|
71
|
-
const NavBars = () => {
|
|
72
|
-
return (
|
|
73
|
-
<div className="flex flex-row items-start border border-neutral-200">
|
|
74
|
-
<NavBar
|
|
75
|
-
menuItems={menuItems}
|
|
76
|
-
logoShort="/images/logo_short.png"
|
|
77
|
-
logoLong="/images/logo.png"
|
|
78
|
-
avatarName="John Doe"
|
|
79
|
-
avatarEmail="john.doe@email.com"
|
|
80
|
-
avatarImage="/images/profile_picture.png"
|
|
81
|
-
avatarType={AVATAR_VARIANT.IMAGE_WITH_FULL}
|
|
82
|
-
menuWidthClass="w-[20rem]"
|
|
83
|
-
menuHeightClass="h-[80vh]"
|
|
84
|
-
menuBackgroundColor="bg-primary-100"
|
|
85
|
-
/>
|
|
86
|
-
<div className="flex-1 p-4">Rest of the content</div>
|
|
87
|
-
</div>
|
|
88
|
-
);
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
export default NavBars;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import Pagination, { IPaging } from "@/components/pagination";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
|
|
4
|
-
const numbers = [
|
|
5
|
-
{ label: "10" },
|
|
6
|
-
{ label: "25" },
|
|
7
|
-
{ label: "50" },
|
|
8
|
-
{ label: "100" },
|
|
9
|
-
{ label: "200" },
|
|
10
|
-
];
|
|
11
|
-
|
|
12
|
-
const Paginations = () => {
|
|
13
|
-
const [paging, setPaging] = useState<IPaging>({
|
|
14
|
-
total: 112,
|
|
15
|
-
page: 1,
|
|
16
|
-
size: 10,
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
return (
|
|
20
|
-
<Pagination
|
|
21
|
-
{...paging}
|
|
22
|
-
options={numbers}
|
|
23
|
-
onChange={(paging: IPaging) => setPaging(paging)}
|
|
24
|
-
/>
|
|
25
|
-
);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export default Paginations;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import RadioButton from "@/components/radioButton";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
|
|
4
|
-
const RadioButtons = () => {
|
|
5
|
-
const [selectedOption, setSelectedOption] = useState("option1");
|
|
6
|
-
|
|
7
|
-
return (
|
|
8
|
-
<div className="flex flex-col gap-4 items-center">
|
|
9
|
-
<RadioButton
|
|
10
|
-
label="Option 1"
|
|
11
|
-
value="option1"
|
|
12
|
-
selectedValue={selectedOption}
|
|
13
|
-
onChange={setSelectedOption}
|
|
14
|
-
/>
|
|
15
|
-
<RadioButton
|
|
16
|
-
label="Option 2"
|
|
17
|
-
value="option2"
|
|
18
|
-
selectedValue={selectedOption}
|
|
19
|
-
onChange={setSelectedOption}
|
|
20
|
-
/>
|
|
21
|
-
<RadioButton
|
|
22
|
-
label="Option 3"
|
|
23
|
-
value="option3"
|
|
24
|
-
selectedValue={selectedOption}
|
|
25
|
-
onChange={setSelectedOption}
|
|
26
|
-
/>
|
|
27
|
-
|
|
28
|
-
<p>Selected option: {selectedOption}</p>
|
|
29
|
-
</div>
|
|
30
|
-
);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export default RadioButtons;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import SelectDropdown, {
|
|
2
|
-
type ISelectDropdownOption,
|
|
3
|
-
} from "@/components/selectDropdown";
|
|
4
|
-
import { useState } from "react";
|
|
5
|
-
|
|
6
|
-
const options: ISelectDropdownOption[] = [
|
|
7
|
-
{ value: "1", label: "Option 1" },
|
|
8
|
-
{ value: "2", label: "Option 2" },
|
|
9
|
-
{ value: "3", label: "Option 3" },
|
|
10
|
-
{ value: "4", label: "Option 4" },
|
|
11
|
-
{ value: "5", label: "Option 5" },
|
|
12
|
-
{ value: "6", label: "Option 6" },
|
|
13
|
-
{ value: "7", label: "Option 7" },
|
|
14
|
-
{ value: "8", label: "Option 8" },
|
|
15
|
-
{ value: "9", label: "Option 9" },
|
|
16
|
-
{ value: "10", label: "Option 10" },
|
|
17
|
-
{ value: "11", label: "Option 11" },
|
|
18
|
-
{ value: "12", label: "Option 12" },
|
|
19
|
-
{ value: "13", label: "Option 13" },
|
|
20
|
-
{ value: "14", label: "Option 14" },
|
|
21
|
-
{ value: "15", label: "Option 15" },
|
|
22
|
-
{ value: "16", label: "Option 16" },
|
|
23
|
-
{ value: "17", label: "Option 17" },
|
|
24
|
-
{ value: "18", label: "Option 18" },
|
|
25
|
-
{ value: "19", label: "Option 19" },
|
|
26
|
-
{ value: "20", label: "Option 20" },
|
|
27
|
-
{ value: "21", label: "Option 21" },
|
|
28
|
-
{ value: "22", label: "Option 22" },
|
|
29
|
-
{ value: "23", label: "Option 23" },
|
|
30
|
-
{ value: "24", label: "Option 24" },
|
|
31
|
-
{ value: "25", label: "Option 25" },
|
|
32
|
-
{ value: "26", label: "Option 26" },
|
|
33
|
-
{ value: "27", label: "Option 27" },
|
|
34
|
-
{ value: "28", label: "Option 28" },
|
|
35
|
-
{ value: "29", label: "Option 29" },
|
|
36
|
-
{ value: "30", label: "Option 30" },
|
|
37
|
-
{ value: "31", label: "Option 31" },
|
|
38
|
-
{ value: "32", label: "Option 32" },
|
|
39
|
-
{ value: "33", label: "Option 33" },
|
|
40
|
-
{ value: "34", label: "Option 34" },
|
|
41
|
-
];
|
|
42
|
-
|
|
43
|
-
const numbers = [
|
|
44
|
-
{ label: "1" },
|
|
45
|
-
{ label: "2" },
|
|
46
|
-
{ label: "3" },
|
|
47
|
-
{ label: "4" },
|
|
48
|
-
{ label: "5" },
|
|
49
|
-
{ label: "6" },
|
|
50
|
-
];
|
|
51
|
-
|
|
52
|
-
const SelectDropdowns = () => {
|
|
53
|
-
const [selectedOption, setSelectedOption] = useState<string>("");
|
|
54
|
-
const [disabledDropdown, setDisabledDropdown] = useState<string>("");
|
|
55
|
-
const [customDropdown, setCustomDropdown] = useState<string>("1");
|
|
56
|
-
|
|
57
|
-
return (
|
|
58
|
-
<div className="flex flex-col gap-4">
|
|
59
|
-
<SelectDropdown
|
|
60
|
-
options={options}
|
|
61
|
-
label="Select dropdown"
|
|
62
|
-
placeholder="This is a placeholder"
|
|
63
|
-
value={selectedOption}
|
|
64
|
-
onChange={(option) => setSelectedOption(option)}
|
|
65
|
-
/>
|
|
66
|
-
<SelectDropdown
|
|
67
|
-
options={options}
|
|
68
|
-
label="Disabled Select dropdown"
|
|
69
|
-
placeholder="This is a placeholder"
|
|
70
|
-
value={disabledDropdown}
|
|
71
|
-
onChange={(option) => setDisabledDropdown(option)}
|
|
72
|
-
disabled
|
|
73
|
-
/>
|
|
74
|
-
<div className="flex flex-col gap-2">
|
|
75
|
-
<label className="text-sm text-neutrola-600 mb-2">
|
|
76
|
-
Pagination dropdown
|
|
77
|
-
</label>
|
|
78
|
-
<div className="w-20">
|
|
79
|
-
<SelectDropdown
|
|
80
|
-
options={numbers}
|
|
81
|
-
value={customDropdown}
|
|
82
|
-
onChange={(option) => setCustomDropdown(option)}
|
|
83
|
-
/>
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
</div>
|
|
87
|
-
);
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
export default SelectDropdowns;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { CircleSVG } from "@/components/icons";
|
|
2
|
-
import Snackbar, { SNACK_BAR_TYPE } from "@/components/snackBar";
|
|
3
|
-
|
|
4
|
-
const SnackBars = () => {
|
|
5
|
-
return (
|
|
6
|
-
<div className="flex flex-col items-center">
|
|
7
|
-
<div className="w-[50%] flex flex-col gap-4">
|
|
8
|
-
<Snackbar message="Some text here" icon={<CircleSVG />} />
|
|
9
|
-
<Snackbar
|
|
10
|
-
message="Some text here"
|
|
11
|
-
type={SNACK_BAR_TYPE.INFO}
|
|
12
|
-
icon={<CircleSVG />}
|
|
13
|
-
/>
|
|
14
|
-
<Snackbar
|
|
15
|
-
message="Some text here"
|
|
16
|
-
type={SNACK_BAR_TYPE.SUCCESS}
|
|
17
|
-
icon={<CircleSVG />}
|
|
18
|
-
/>
|
|
19
|
-
<Snackbar
|
|
20
|
-
message="Some text here"
|
|
21
|
-
type={SNACK_BAR_TYPE.WARNING}
|
|
22
|
-
icon={<CircleSVG />}
|
|
23
|
-
/>
|
|
24
|
-
<Snackbar
|
|
25
|
-
message="Some text here"
|
|
26
|
-
type={SNACK_BAR_TYPE.DANGER}
|
|
27
|
-
icon={<CircleSVG />}
|
|
28
|
-
/>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default SnackBars;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import State, { STATE_TYPE } from "@/components/state";
|
|
2
|
-
|
|
3
|
-
const States = () => {
|
|
4
|
-
return (
|
|
5
|
-
<div className="flex flex-col gap-8">
|
|
6
|
-
<div className="border border-neutrola-200 rounded-lg h-[860px]">
|
|
7
|
-
<State
|
|
8
|
-
type={STATE_TYPE.EMPTY}
|
|
9
|
-
title="Uhh.. ehh.. it's empty !!!"
|
|
10
|
-
subTitle="Looks like you haven't add any items to your shopping cart."
|
|
11
|
-
/>
|
|
12
|
-
</div>
|
|
13
|
-
<div className="border border-neutrola-200 rounded-lg h-[860px]">
|
|
14
|
-
<State
|
|
15
|
-
stateImage="/images/success.png"
|
|
16
|
-
title="Your planner is printing !!!"
|
|
17
|
-
subTitle="You have successfully placed the order and we are getting your order ready."
|
|
18
|
-
/>
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export default States;
|