dst-rg 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +43 -0
- package/.storybook/main.ts +15 -0
- package/.storybook/preview.ts +15 -0
- package/README.md +254 -0
- package/components.json +21 -0
- package/dist/Avatar.png +0 -0
- package/dist/assets/index-CCq7hmG3.js +186 -0
- package/dist/assets/index-Mg-hjQGu.css +1 -0
- package/dist/index.html +15 -0
- package/dist/test.png +0 -0
- package/dist/vite.svg +1 -0
- package/eslint.config.js +29 -0
- package/index.html +14 -0
- package/package.json +102 -0
- package/postcss.config.mjs +11 -0
- package/rollup.config.mjs +55 -0
- package/src/assets/react.svg +1 -0
- package/src/assets/style/animation.css +27 -0
- package/src/assets/style/box-shadow.css +25 -0
- package/src/assets/style/colors.css +402 -0
- package/src/assets/style/dark-theme.css +288 -0
- package/src/assets/style/font-size.css +14 -0
- package/src/assets/style/gradient.css +3 -0
- package/src/assets/style/index.css +12 -0
- package/src/assets/style/light-theme.css +148 -0
- package/src/assets/style/line-height.css +13 -0
- package/src/assets/style/max-width.css +5 -0
- package/src/assets/style/radius.css +13 -0
- package/src/assets/style/utility-colors.css +166 -0
- package/src/components/Accordion/_.stories.tsx +75 -0
- package/src/components/Accordion/_.test.tsx +77 -0
- package/src/components/Accordion/index.tsx +47 -0
- package/src/components/Accordion/type.ts +24 -0
- package/src/components/Avatar/_.stories.tsx +179 -0
- package/src/components/Avatar/_.style.ts +40 -0
- package/src/components/Avatar/_.test.tsx +150 -0
- package/src/components/Avatar/_.types.ts +66 -0
- package/src/components/Avatar/index.tsx +63 -0
- package/src/components/Badge/_.stories.tsx +75 -0
- package/src/components/Badge/_.style.ts +53 -0
- package/src/components/Badge/_.test.tsx +27 -0
- package/src/components/Badge/_.types.ts +11 -0
- package/src/components/Badge/index.tsx +42 -0
- package/src/components/Breadcrumbs/_.stories.tsx +95 -0
- package/src/components/Breadcrumbs/_.test.tsx +29 -0
- package/src/components/Breadcrumbs/_.type.ts +15 -0
- package/src/components/Breadcrumbs/index.tsx +103 -0
- package/src/components/Button/_.stories.tsx +85 -0
- package/src/components/Button/_.style.ts +56 -0
- package/src/components/Button/_.test.tsx +103 -0
- package/src/components/Button/_.types.ts +14 -0
- package/src/components/Button/index.tsx +70 -0
- package/src/components/Checkbox/_.stories.tsx +96 -0
- package/src/components/Checkbox/_.style.ts +24 -0
- package/src/components/Checkbox/_.test.tsx +85 -0
- package/src/components/Checkbox/_.types.ts +23 -0
- package/src/components/Checkbox/index.tsx +93 -0
- package/src/components/CheckboxGroup/PaymentCard/_.stories.tsx +104 -0
- package/src/components/CheckboxGroup/PaymentCard/_.style.ts +28 -0
- package/src/components/CheckboxGroup/PaymentCard/_.test.tsx +58 -0
- package/src/components/CheckboxGroup/PaymentCard/_.types.ts +28 -0
- package/src/components/CheckboxGroup/PaymentCard/index.tsx +71 -0
- package/src/components/CheckboxGroup/PlanCard/_.stories.tsx +165 -0
- package/src/components/CheckboxGroup/PlanCard/_.style.ts +32 -0
- package/src/components/CheckboxGroup/PlanCard/_.test.tsx +54 -0
- package/src/components/CheckboxGroup/PlanCard/_.types.ts +35 -0
- package/src/components/CheckboxGroup/PlanCard/index.tsx +53 -0
- package/src/components/CheckboxGroup/UserCard/_.stories.tsx +89 -0
- package/src/components/CheckboxGroup/UserCard/_.style.ts +42 -0
- package/src/components/CheckboxGroup/UserCard/_.test.tsx +66 -0
- package/src/components/CheckboxGroup/UserCard/_.types.ts +26 -0
- package/src/components/CheckboxGroup/UserCard/index.tsx +75 -0
- package/src/components/Dropdown/_.stories.tsx +180 -0
- package/src/components/Dropdown/_.style.ts +108 -0
- package/src/components/Dropdown/_.test.tsx +334 -0
- package/src/components/Dropdown/_.types.ts +12 -0
- package/src/components/Dropdown/index.tsx +130 -0
- package/src/components/FileUpload/_.stories.tsx +74 -0
- package/src/components/FileUpload/_.style.ts +0 -0
- package/src/components/FileUpload/_.test.tsx +222 -0
- package/src/components/FileUpload/_.types.ts +53 -0
- package/src/components/FileUpload/index.tsx +44 -0
- package/src/components/ImageMagnify/_.stories.tsx +226 -0
- package/src/components/ImageMagnify/_.style.ts +109 -0
- package/src/components/ImageMagnify/_.types.ts +44 -0
- package/src/components/ImageMagnify/index.tsx +204 -0
- package/src/components/Input/_.stories.tsx +177 -0
- package/src/components/Input/_.style.ts +79 -0
- package/src/components/Input/_.test.tsx +146 -0
- package/src/components/Input/_.types.ts +66 -0
- package/src/components/Input/index.tsx +231 -0
- package/src/components/InputTags/_.stories.tsx +51 -0
- package/src/components/InputTags/_.style.ts +28 -0
- package/src/components/InputTags/_.test.tsx +123 -0
- package/src/components/InputTags/_.types.ts +26 -0
- package/src/components/InputTags/index.tsx +140 -0
- package/src/components/Message/_.stories.tsx +79 -0
- package/src/components/Message/_.style.ts +87 -0
- package/src/components/Message/_.test.tsx +73 -0
- package/src/components/Message/_.types.ts +13 -0
- package/src/components/Message/index.tsx +57 -0
- package/src/components/Metric/_.stories.tsx +142 -0
- package/src/components/Metric/_.style.ts +14 -0
- package/src/components/Metric/_.test.tsx +166 -0
- package/src/components/Metric/_.types.ts +18 -0
- package/src/components/Metric/index.tsx +100 -0
- package/src/components/Modal/_.stories.tsx +93 -0
- package/src/components/Modal/_.style.ts +31 -0
- package/src/components/Modal/_.test.tsx +90 -0
- package/src/components/Modal/_.types.ts +14 -0
- package/src/components/Modal/index.tsx +82 -0
- package/src/components/Pagination/_.stories.tsx +118 -0
- package/src/components/Pagination/_.test.tsx +51 -0
- package/src/components/Pagination/index.tsx +256 -0
- package/src/components/Pagination/type.ts +48 -0
- package/src/components/PriceSlider/_.stories.tsx +107 -0
- package/src/components/PriceSlider/_.test.tsx +63 -0
- package/src/components/PriceSlider/_.type.tsx +19 -0
- package/src/components/PriceSlider/index.tsx +86 -0
- package/src/components/Progress/_.stories.tsx +93 -0
- package/src/components/Progress/_.style.ts +15 -0
- package/src/components/Progress/_.test.tsx +34 -0
- package/src/components/Progress/_.types.ts +17 -0
- package/src/components/Progress/index.tsx +173 -0
- package/src/components/Radio/_.stories.tsx +391 -0
- package/src/components/Radio/_.style.ts +33 -0
- package/src/components/Radio/_.test.tsx +77 -0
- package/src/components/Radio/_.types.ts +14 -0
- package/src/components/Radio/index.tsx +59 -0
- package/src/components/Select/_.stories.tsx +308 -0
- package/src/components/Select/_.style.ts +5 -0
- package/src/components/Select/_.types.ts +24 -0
- package/src/components/Select/index.tsx +172 -0
- package/src/components/Switch/_.stories.tsx +61 -0
- package/src/components/Switch/_.test.tsx +69 -0
- package/src/components/Switch/_.type.ts +12 -0
- package/src/components/Switch/index.tsx +70 -0
- package/src/components/Tabs/_.stories.tsx +508 -0
- package/src/components/Tabs/_.style.ts +63 -0
- package/src/components/Tabs/_.test.tsx +174 -0
- package/src/components/Tabs/_.type.ts +19 -0
- package/src/components/Tabs/index.tsx +35 -0
- package/src/components/Tag/_.stories.tsx +78 -0
- package/src/components/Tag/_.style.ts +71 -0
- package/src/components/Tag/_.test.tsx +44 -0
- package/src/components/Tag/_.types.ts +27 -0
- package/src/components/Tag/index.tsx +46 -0
- package/src/components/TextArea/_.stories.tsx +62 -0
- package/src/components/TextArea/_.style.ts +11 -0
- package/src/components/TextArea/_.test.tsx +43 -0
- package/src/components/TextArea/_.types.ts +29 -0
- package/src/components/TextArea/index.tsx +83 -0
- package/src/components/Toast/_.style.tsx +27 -0
- package/src/components/Toast/_.type.ts +30 -0
- package/src/components/Toast/_.utils.ts +23 -0
- package/src/components/Toast/container.tsx +171 -0
- package/src/components/Toast/index.tsx +29 -0
- package/src/components/Tooltip/_.stories.tsx +106 -0
- package/src/components/Tooltip/_.style.ts +27 -0
- package/src/components/Tooltip/_.test.tsx +54 -0
- package/src/components/Tooltip/_.types.ts +31 -0
- package/src/components/Tooltip/index.tsx +80 -0
- package/src/components/developers/AmirHossein.tsx +149 -0
- package/src/components/developers/Fardin.tsx +130 -0
- package/src/components/developers/Maryam.tsx +260 -0
- package/src/components/developers/Milad.tsx +431 -0
- package/src/components/developers/Rasoul.tsx +198 -0
- package/src/components/index.ts +28 -0
- package/src/components/ui/accordion.tsx +162 -0
- package/src/components/ui/avatars-component/avatar-description.tsx +30 -0
- package/src/components/ui/avatars-component/avatar-groups.tsx +68 -0
- package/src/components/ui/avatars-component/avatar-single.tsx +50 -0
- package/src/components/ui/card.tsx +92 -0
- package/src/components/ui/checkbox-group/plan-card/basic/_.test.tsx +66 -0
- package/src/components/ui/checkbox-group/plan-card/basic/index.tsx +70 -0
- package/src/components/ui/checkbox-group/plan-card/with-header/_.test.tsx +110 -0
- package/src/components/ui/checkbox-group/plan-card/with-header/header.test.tsx +96 -0
- package/src/components/ui/checkbox-group/plan-card/with-header/header.tsx +74 -0
- package/src/components/ui/checkbox-group/plan-card/with-header/index.tsx +65 -0
- package/src/components/ui/file-content/File-content.tsx +43 -0
- package/src/components/ui/file-uploader-components/file-uploader-box.tsx +76 -0
- package/src/components/ui/file-uploader-components/file-uploader-item.tsx +64 -0
- package/src/components/ui/icon-wrapper/_.test.tsx +60 -0
- package/src/components/ui/icon-wrapper/index.tsx +19 -0
- package/src/components/ui/input-component/input-label.tsx +11 -0
- package/src/components/ui/number.tsx +18 -0
- package/src/components/ui/pagination/card-minimal-center-align.tsx +96 -0
- package/src/components/ui/pagination/card-minimal-right-aligne.tsx +90 -0
- package/src/components/ui/pagination/default-pagination.tsx +128 -0
- package/src/components/ui/pagination/get-pagination-item.tsx +36 -0
- package/src/components/ui/pagination/pagination-card-button-group-aligned.tsx +94 -0
- package/src/components/ui/pagination/pagination-card-minimal-left-aligned.tsx +90 -0
- package/src/components/ui/pagination/pagination-content.tsx +15 -0
- package/src/components/ui/pagination/pagination-item.tsx +11 -0
- package/src/components/ui/pagination/pagination-link.tsx +42 -0
- package/src/components/ui/tab-components/tabs-content.tsx +15 -0
- package/src/components/ui/tab-components/tabs-list.tsx +27 -0
- package/src/components/ui/tab-components/tabs-trigger.tsx +25 -0
- package/src/components/ui/text-content-wrapper.tsx +36 -0
- package/src/hooks/useClickOutside.ts +23 -0
- package/src/icons/general/ArrowLeft.tsx +31 -0
- package/src/icons/general/ArrowRight.tsx +31 -0
- package/src/icons/general/activity-heart.tsx +31 -0
- package/src/icons/general/activity.tsx +31 -0
- package/src/icons/general/anchor.tsx +31 -0
- package/src/icons/general/archive.tsx +31 -0
- package/src/icons/general/arrow-left.tsx +25 -0
- package/src/icons/general/arrow-right.tsx +25 -0
- package/src/icons/general/asterisk-01.tsx +31 -0
- package/src/icons/general/asterisk-02.tsx +31 -0
- package/src/icons/general/at-sign.tsx +31 -0
- package/src/icons/general/attention-mark.tsx +43 -0
- package/src/icons/general/bookmark-add.tsx +31 -0
- package/src/icons/general/bookmark.tsx +31 -0
- package/src/icons/general/chevron-left.tsx +25 -0
- package/src/icons/general/chevron-right.tsx +25 -0
- package/src/icons/general/circle-minues.tsx +25 -0
- package/src/icons/general/circle-plus.tsx +25 -0
- package/src/icons/general/circle-question-mark.tsx +32 -0
- package/src/icons/general/circle.tsx +32 -0
- package/src/icons/general/copy.tsx +43 -0
- package/src/icons/general/email.tsx +32 -0
- package/src/icons/general/home.tsx +25 -0
- package/src/icons/general/layer.tsx +36 -0
- package/src/icons/general/leading.tsx +19 -0
- package/src/icons/general/master-card.tsx +37 -0
- package/src/icons/general/minus.tsx +36 -0
- package/src/icons/general/plus.tsx +19 -0
- package/src/icons/general/remove.tsx +32 -0
- package/src/icons/general/slash-divider.tsx +26 -0
- package/src/icons/general/tick-box.tsx +37 -0
- package/src/icons/general/trailing.tsx +19 -0
- package/src/icons/general/unkown-format.tsx +25 -0
- package/src/icons/general/visa-card.tsx +38 -0
- package/src/icons/general/x-close.tsx +35 -0
- package/src/icons/icons.type.ts +7 -0
- package/src/index.css +21 -0
- package/src/index.ts +3 -0
- package/src/lib/utils.ts +6 -0
- package/src/lib/zIndexUtils.ts +2 -0
- package/src/main.tsx +50 -0
- package/src/vite-env.d.ts +1 -0
- package/tests/setup.ts +8 -0
- package/tsconfig.app.json +31 -0
- package/tsconfig.json +7 -0
- package/tsconfig.node.json +24 -0
- package/tsconfig.rollup.json +12 -0
- package/vite.config.ts +20 -0
- package/vitest.config.ts +47 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { memo } from 'react';
|
|
2
|
+
|
|
3
|
+
const MemoHome = () => {
|
|
4
|
+
return (
|
|
5
|
+
<svg
|
|
6
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
+
width="20"
|
|
8
|
+
height="20"
|
|
9
|
+
viewBox="0 0 20 20"
|
|
10
|
+
fill="none"
|
|
11
|
+
>
|
|
12
|
+
<path
|
|
13
|
+
d="M6.66667 14.1667H13.3333M9.18141 2.30333L3.52949 6.69927C3.15168 6.99312 2.96278 7.14005 2.82669 7.32405C2.70614 7.48704 2.61633 7.67065 2.56169 7.86588C2.5 8.08627 2.5 8.32558 2.5 8.80421V14.8333C2.5 15.7667 2.5 16.2335 2.68166 16.59C2.84144 16.9036 3.09641 17.1585 3.41002 17.3183C3.76654 17.5 4.23325 17.5 5.16667 17.5H14.8333C15.7668 17.5 16.2335 17.5 16.59 17.3183C16.9036 17.1585 17.1586 16.9036 17.3183 16.59C17.5 16.2335 17.5 15.7667 17.5 14.8333V8.80421C17.5 8.32558 17.5 8.08627 17.4383 7.86588C17.3837 7.67065 17.2939 7.48704 17.1733 7.32405C17.0372 7.14005 16.8483 6.99312 16.4705 6.69927L10.8186 2.30333C10.5258 2.07562 10.3794 1.96177 10.2178 1.918C10.0752 1.87938 9.92484 1.87938 9.78221 1.918C9.62057 1.96177 9.47418 2.07562 9.18141 2.30333Z"
|
|
14
|
+
stroke="#667085"
|
|
15
|
+
strokeWidth="1.66667"
|
|
16
|
+
strokeLinecap="round"
|
|
17
|
+
strokeLinejoin="round"
|
|
18
|
+
/>
|
|
19
|
+
</svg>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const Home = memo(MemoHome);
|
|
24
|
+
|
|
25
|
+
export default Home;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoLayer = ({
|
|
5
|
+
stroke = "#344054",
|
|
6
|
+
fill = "none",
|
|
7
|
+
width = "16",
|
|
8
|
+
className = "",
|
|
9
|
+
height = "16",
|
|
10
|
+
}: IconPropsType) => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<svg
|
|
14
|
+
data-testid="layer-icon"
|
|
15
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
16
|
+
width={width}
|
|
17
|
+
height={height}
|
|
18
|
+
className={className}
|
|
19
|
+
viewBox="0 0 16 16"
|
|
20
|
+
fill={fill}
|
|
21
|
+
>
|
|
22
|
+
<path
|
|
23
|
+
d="M1.33325 9.66669L7.7614 12.8808C7.84886 12.9245 7.89259 12.9464 7.93845 12.955C7.97908 12.9626 8.02076 12.9626 8.06139 12.955C8.10725 12.9464 8.15098 12.9245 8.23843 12.8808L14.6666 9.66669M1.33325 6.33336L7.7614 3.11928C7.84886 3.07555 7.89259 3.05369 7.93845 3.04508C7.97908 3.03746 8.02076 3.03746 8.06139 3.04508C8.10725 3.05369 8.15098 3.07555 8.23843 3.11928L14.6666 6.33336L8.23843 9.54743C8.15098 9.59116 8.10725 9.61302 8.06139 9.62163C8.02076 9.62925 7.97908 9.62925 7.93845 9.62163C7.89259 9.61302 7.84886 9.59116 7.7614 9.54743L1.33325 6.33336Z"
|
|
24
|
+
stroke={stroke}
|
|
25
|
+
strokeWidth="1.333"
|
|
26
|
+
strokeLinecap="round"
|
|
27
|
+
strokeLinejoin="round"
|
|
28
|
+
/>
|
|
29
|
+
</svg>
|
|
30
|
+
</>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const Layer = memo(MemoLayer);
|
|
35
|
+
|
|
36
|
+
export default Layer;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoLeading = ({
|
|
5
|
+
stroke = "",
|
|
6
|
+
fill = "none",
|
|
7
|
+
width = "12",
|
|
8
|
+
height = "12",
|
|
9
|
+
}: IconPropsType) => {
|
|
10
|
+
return (
|
|
11
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 12 12" fill={fill}>
|
|
12
|
+
<path d="M6 9.5V2.5M6 2.5L2.5 6M6 2.5L9.5 6" stroke={stroke} strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const Leading = memo(MemoLeading);
|
|
18
|
+
|
|
19
|
+
export default Leading;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoMasterCard = ({ width = "32", height = "19" }: IconPropsType) => {
|
|
5
|
+
return (
|
|
6
|
+
<svg
|
|
7
|
+
width={width}
|
|
8
|
+
height={height}
|
|
9
|
+
viewBox="0 0 30 19"
|
|
10
|
+
fill="none"
|
|
11
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
+
>
|
|
13
|
+
<path
|
|
14
|
+
fillRule="evenodd"
|
|
15
|
+
clipRule="evenodd"
|
|
16
|
+
d="M14.9052 16.4393C13.3265 17.7699 11.2786 18.5732 9.04092 18.5732C4.04776 18.5732 0 14.5736 0 9.63988C0 4.70613 4.04776 0.706543 9.04092 0.706543C11.2786 0.706543 13.3265 1.50983 14.9052 2.84049C16.4839 1.50983 18.5317 0.706543 20.7694 0.706543C25.7626 0.706543 29.8104 4.70613 29.8104 9.63988C29.8104 14.5736 25.7626 18.5732 20.7694 18.5732C18.5317 18.5732 16.4839 17.7699 14.9052 16.4393Z"
|
|
17
|
+
fill="#ED0006"
|
|
18
|
+
/>
|
|
19
|
+
<path
|
|
20
|
+
fillRule="evenodd"
|
|
21
|
+
clipRule="evenodd"
|
|
22
|
+
d="M14.9053 16.4392C16.8492 14.8006 18.0818 12.3625 18.0818 9.63988C18.0818 6.91727 16.8492 4.47913 14.9053 2.8406C16.484 1.50987 18.5319 0.706543 20.7697 0.706543C25.7628 0.706543 29.8106 4.70613 29.8106 9.63988C29.8106 14.5736 25.7628 18.5732 20.7697 18.5732C18.5319 18.5732 16.484 17.7699 14.9053 16.4392Z"
|
|
23
|
+
fill="#F9A000"
|
|
24
|
+
/>
|
|
25
|
+
<path
|
|
26
|
+
fillRule="evenodd"
|
|
27
|
+
clipRule="evenodd"
|
|
28
|
+
d="M14.9052 16.4393C12.9612 14.8008 11.7285 12.3626 11.7285 9.63995C11.7285 6.91729 12.9612 4.47911 14.9052 2.84058C16.8492 4.47911 18.0818 6.9173 18.0818 9.63997C18.0818 12.3626 16.8492 14.8008 14.9052 16.4393Z"
|
|
29
|
+
fill="#FF5E00"
|
|
30
|
+
/>
|
|
31
|
+
</svg>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const MasterCard = memo(MemoMasterCard);
|
|
36
|
+
|
|
37
|
+
export default MasterCard;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoMinus = ({
|
|
5
|
+
stroke = "white",
|
|
6
|
+
fill = "none",
|
|
7
|
+
width = "10",
|
|
8
|
+
className = "",
|
|
9
|
+
height = "10",
|
|
10
|
+
}: IconPropsType) => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<svg
|
|
14
|
+
width={width}
|
|
15
|
+
data-testid="minus-icon"
|
|
16
|
+
height={height}
|
|
17
|
+
className={className}
|
|
18
|
+
fill={fill}
|
|
19
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
20
|
+
viewBox="0 0 12 12"
|
|
21
|
+
>
|
|
22
|
+
<path
|
|
23
|
+
d="M2.5 6H9.5"
|
|
24
|
+
stroke={stroke}
|
|
25
|
+
strokeWidth="1.666"
|
|
26
|
+
strokeLinecap="round"
|
|
27
|
+
strokeLinejoin="round"
|
|
28
|
+
/>
|
|
29
|
+
</svg>
|
|
30
|
+
</>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const Minus = memo(MemoMinus);
|
|
35
|
+
|
|
36
|
+
export default Minus;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoPlus = ({
|
|
5
|
+
stroke = "",
|
|
6
|
+
fill = "none",
|
|
7
|
+
width = "12",
|
|
8
|
+
height = "12",
|
|
9
|
+
}: IconPropsType) => {
|
|
10
|
+
return (
|
|
11
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 12 12" fill={fill}>
|
|
12
|
+
<path d="M6 2.5V9.5M2.5 6H9.5" stroke={stroke} strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const Plus = memo(MemoPlus);
|
|
18
|
+
|
|
19
|
+
export default Plus;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoRemove = ({
|
|
5
|
+
stroke = "#98A2B3",
|
|
6
|
+
fill = "none",
|
|
7
|
+
width = "14",
|
|
8
|
+
height = "14",
|
|
9
|
+
}: IconPropsType) => {
|
|
10
|
+
return (
|
|
11
|
+
<svg
|
|
12
|
+
width={width}
|
|
13
|
+
className="remove"
|
|
14
|
+
height={height}
|
|
15
|
+
viewBox="0 0 14 14"
|
|
16
|
+
fill={fill}
|
|
17
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
18
|
+
>
|
|
19
|
+
<path
|
|
20
|
+
d="M9.5 4.5L4.5 9.5M4.5 4.5L9.5 9.5"
|
|
21
|
+
stroke={stroke}
|
|
22
|
+
strokeWidth="1.5"
|
|
23
|
+
strokeLinecap="round"
|
|
24
|
+
strokeLinejoin="round"
|
|
25
|
+
/>
|
|
26
|
+
</svg>
|
|
27
|
+
);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const Remove = memo(MemoRemove);
|
|
31
|
+
|
|
32
|
+
export default Remove;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { memo } from 'react';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
const MemoSlashDivider = () => {
|
|
5
|
+
return (
|
|
6
|
+
<svg
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
width="20"
|
|
9
|
+
height="20"
|
|
10
|
+
viewBox="0 0 20 20"
|
|
11
|
+
fill="none"
|
|
12
|
+
>
|
|
13
|
+
<path
|
|
14
|
+
d="M6.66667 14.1667H13.3333M9.18141 2.30333L3.52949 6.69927C3.15168 6.99312 2.96278 7.14005 2.82669 7.32405C2.70614 7.48704 2.61633 7.67065 2.56169 7.86588C2.5 8.08627 2.5 8.32558 2.5 8.80421V14.8333C2.5 15.7667 2.5 16.2335 2.68166 16.59C2.84144 16.9036 3.09641 17.1585 3.41002 17.3183C3.76654 17.5 4.23325 17.5 5.16667 17.5H14.8333C15.7668 17.5 16.2335 17.5 16.59 17.3183C16.9036 17.1585 17.1586 16.9036 17.3183 16.59C17.5 16.2335 17.5 15.7667 17.5 14.8333V8.80421C17.5 8.32558 17.5 8.08627 17.4383 7.86588C17.3837 7.67065 17.2939 7.48704 17.1733 7.32405C17.0372 7.14005 16.8483 6.99312 16.4705 6.69927L10.8186 2.30333C10.5258 2.07562 10.3794 1.96177 10.2178 1.918C10.0752 1.87938 9.92484 1.87938 9.78221 1.918C9.62057 1.96177 9.47418 2.07562 9.18141 2.30333Z"
|
|
15
|
+
stroke="#0050FF"
|
|
16
|
+
strokeWidth="1.66667"
|
|
17
|
+
strokeLinecap="round"
|
|
18
|
+
strokeLinejoin="round"
|
|
19
|
+
/>
|
|
20
|
+
</svg>
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const SlashDivider = memo(MemoSlashDivider);
|
|
25
|
+
|
|
26
|
+
export default SlashDivider;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
|
|
3
|
+
const MemoTickBox = ({
|
|
4
|
+
stroke = "#fff",
|
|
5
|
+
fill = "none",
|
|
6
|
+
width = "10",
|
|
7
|
+
height = "10",
|
|
8
|
+
}: {
|
|
9
|
+
stroke?: string;
|
|
10
|
+
fill?: string;
|
|
11
|
+
width?: string;
|
|
12
|
+
height?: string;
|
|
13
|
+
}) => {
|
|
14
|
+
return (
|
|
15
|
+
<svg
|
|
16
|
+
width={width}
|
|
17
|
+
height={height}
|
|
18
|
+
data-testid="tickbox-icon"
|
|
19
|
+
viewBox="0 0 10 10"
|
|
20
|
+
className="border-white"
|
|
21
|
+
fill={fill}
|
|
22
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
23
|
+
>
|
|
24
|
+
<path
|
|
25
|
+
d="M8.33341 2.5L3.75008 7.08333L1.66675 5"
|
|
26
|
+
stroke={stroke}
|
|
27
|
+
strokeWidth="1.66667"
|
|
28
|
+
strokeLinecap="round"
|
|
29
|
+
strokeLinejoin="round"
|
|
30
|
+
/>
|
|
31
|
+
</svg>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const TickBox = memo(MemoTickBox);
|
|
36
|
+
|
|
37
|
+
export default TickBox;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoTrailing = ({
|
|
5
|
+
stroke = "",
|
|
6
|
+
fill = "none",
|
|
7
|
+
width = "12",
|
|
8
|
+
height = "12",
|
|
9
|
+
}: IconPropsType) => {
|
|
10
|
+
return (
|
|
11
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 12 12" fill={fill}>
|
|
12
|
+
<path d="M2.5 6H9.5M9.5 6L6 2.5M9.5 6L6 9.5" stroke={stroke} strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const Trailing = memo(MemoTrailing);
|
|
18
|
+
|
|
19
|
+
export default Trailing;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const UnkownFormat = ({
|
|
2
|
+
width = 40,
|
|
3
|
+
height = 40,
|
|
4
|
+
}: {
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
}) => {
|
|
8
|
+
return (
|
|
9
|
+
<svg
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width={width}
|
|
12
|
+
height={height}
|
|
13
|
+
viewBox="0 0 20 20"
|
|
14
|
+
fill="none"
|
|
15
|
+
>
|
|
16
|
+
<path
|
|
17
|
+
d="M11.6667 1.89118V5.33329C11.6667 5.8 11.6667 6.03336 11.7575 6.21162C11.8374 6.36842 11.9649 6.4959 12.1217 6.5758C12.3 6.66663 12.5333 6.66663 13 6.66663H16.4422M16.6667 8.32348V14.3333C16.6667 15.7334 16.6667 16.4335 16.3942 16.9683C16.1545 17.4387 15.7721 17.8211 15.3017 18.0608C14.7669 18.3333 14.0668 18.3333 12.6667 18.3333H7.33337C5.93324 18.3333 5.23318 18.3333 4.6984 18.0608C4.22799 17.8211 3.84554 17.4387 3.60586 16.9683C3.33337 16.4335 3.33337 15.7334 3.33337 14.3333V5.66663C3.33337 4.26649 3.33337 3.56643 3.60586 3.03165C3.84554 2.56124 4.22799 2.17879 4.6984 1.93911C5.23318 1.66663 5.93324 1.66663 7.33337 1.66663H10.0099C10.6213 1.66663 10.9271 1.66663 11.2148 1.7357C11.4699 1.79694 11.7137 1.89795 11.9374 2.03503C12.1897 2.18963 12.4059 2.40582 12.8383 2.8382L15.4951 5.49505C15.9275 5.92743 16.1437 6.14362 16.2983 6.39591C16.4354 6.61959 16.5364 6.86346 16.5976 7.11855C16.6667 7.40627 16.6667 7.712 16.6667 8.32348Z"
|
|
18
|
+
stroke="#98A2B3"
|
|
19
|
+
strokeWidth="1.66667"
|
|
20
|
+
strokeLinecap="round"
|
|
21
|
+
strokeLinejoin="round"
|
|
22
|
+
/>
|
|
23
|
+
</svg>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoVisaCard = ({
|
|
5
|
+
stroke = "#E4E7EC",
|
|
6
|
+
fill = "#172B85",
|
|
7
|
+
width = "46",
|
|
8
|
+
height = "32",
|
|
9
|
+
}: IconPropsType) => {
|
|
10
|
+
return (
|
|
11
|
+
<svg
|
|
12
|
+
width={width}
|
|
13
|
+
height={height}
|
|
14
|
+
viewBox="0 0 46 32"
|
|
15
|
+
fill="none"
|
|
16
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
17
|
+
>
|
|
18
|
+
<path
|
|
19
|
+
d="M0.5 4C0.5 2.067 2.067 0.5 4 0.5H42C43.933 0.5 45.5 2.067 45.5 4V28C45.5 29.933 43.933 31.5 42 31.5H4C2.067 31.5 0.5 29.933 0.5 28V4Z"
|
|
20
|
+
fill="white"
|
|
21
|
+
/>
|
|
22
|
+
<path
|
|
23
|
+
d="M0.5 4C0.5 2.067 2.067 0.5 4 0.5H42C43.933 0.5 45.5 2.067 45.5 4V28C45.5 29.933 43.933 31.5 42 31.5H4C2.067 31.5 0.5 29.933 0.5 28V4Z"
|
|
24
|
+
stroke={stroke}
|
|
25
|
+
/>
|
|
26
|
+
<path
|
|
27
|
+
fillRule="evenodd"
|
|
28
|
+
clipRule="evenodd"
|
|
29
|
+
d="M14.3341 21.1441H11.5877L9.52833 13.0563C9.43058 12.6843 9.22304 12.3554 8.91774 12.2003C8.15584 11.8108 7.31628 11.5007 6.40039 11.3444V11.033H10.8245C11.4351 11.033 11.893 11.5007 11.9694 12.044L13.0379 17.878L15.7829 11.033H18.4529L14.3341 21.1441ZM19.9794 21.1441H17.3857L19.5214 11.033H22.1151L19.9794 21.1441ZM25.4707 13.8341C25.547 13.2895 26.0049 12.9781 26.5392 12.9781C27.3788 12.8999 28.2933 13.0563 29.0565 13.4445L29.5145 11.2676C28.7512 10.9562 27.9117 10.7998 27.1498 10.7998C24.6324 10.7998 22.8007 12.2003 22.8007 14.1441C22.8007 15.6228 24.0982 16.3993 25.0141 16.867C26.0049 17.3334 26.3865 17.6448 26.3102 18.1112C26.3102 18.8108 25.547 19.1222 24.7851 19.1222C23.8692 19.1222 22.9533 18.889 22.1151 18.4994L21.6571 20.6777C22.573 21.066 23.5639 21.2223 24.4798 21.2223C27.3024 21.2992 29.0565 19.9 29.0565 17.7998C29.0565 15.1551 25.4707 15.0001 25.4707 13.8341ZM38.134 21.1442L36.0746 11.033H33.8625C33.4046 11.033 32.9466 11.3444 32.794 11.8108L28.9805 21.1442H31.6505L32.1834 19.6668H35.464L35.7693 21.1442H38.134ZM34.2439 13.7559L35.0058 17.5666H32.8701L34.2439 13.7559Z"
|
|
30
|
+
fill={fill}
|
|
31
|
+
/>
|
|
32
|
+
</svg>
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const VisaCard = memo(MemoVisaCard);
|
|
37
|
+
|
|
38
|
+
export default VisaCard;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { memo } from "react";
|
|
2
|
+
import { IconPropsType } from "../icons.type";
|
|
3
|
+
|
|
4
|
+
const MemoXClose = ({
|
|
5
|
+
stroke = "",
|
|
6
|
+
fill = "none",
|
|
7
|
+
width = "12",
|
|
8
|
+
className = "",
|
|
9
|
+
height = "12",
|
|
10
|
+
}: IconPropsType) => {
|
|
11
|
+
return (
|
|
12
|
+
<svg
|
|
13
|
+
data-testid="icon-x-close"
|
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
+
width={width}
|
|
16
|
+
role={"x-icon"}
|
|
17
|
+
height={height}
|
|
18
|
+
className={className}
|
|
19
|
+
viewBox="0 0 12 12"
|
|
20
|
+
fill={fill}
|
|
21
|
+
>
|
|
22
|
+
<path
|
|
23
|
+
d="M9 3L3 9M3 3L9 9"
|
|
24
|
+
stroke={stroke}
|
|
25
|
+
strokeWidth="1.5"
|
|
26
|
+
strokeLinecap="round"
|
|
27
|
+
strokeLinejoin="round"
|
|
28
|
+
/>
|
|
29
|
+
</svg>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const XClose = memo(MemoXClose);
|
|
34
|
+
|
|
35
|
+
export default XClose;
|
package/src/index.css
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
@import "tw-animate-css";
|
|
3
|
+
@import "./assets/style/index.css";
|
|
4
|
+
|
|
5
|
+
@custom-variant dark (&:is(.dark *));
|
|
6
|
+
|
|
7
|
+
@layer base {
|
|
8
|
+
:root {
|
|
9
|
+
--spacing: 4px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
input[type="number"]::-webkit-inner-spin-button,
|
|
13
|
+
input[type="number"]::-webkit-outer-spin-button {
|
|
14
|
+
-webkit-appearance: none;
|
|
15
|
+
margin: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
button {
|
|
19
|
+
@apply cursor-pointer;
|
|
20
|
+
}
|
|
21
|
+
}
|
package/src/index.ts
ADDED
package/src/lib/utils.ts
ADDED
package/src/main.tsx
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { StrictMode } from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import { ToastContainer } from "./components";
|
|
4
|
+
import AmirHossein from "./components/developers/AmirHossein";
|
|
5
|
+
import Fardin from "./components/developers/Fardin";
|
|
6
|
+
import Maryam from "./components/developers/Maryam";
|
|
7
|
+
import Milad from "./components/developers/Milad";
|
|
8
|
+
import Rasoul from "./components/developers/Rasoul";
|
|
9
|
+
import { Switch } from "./components/Switch";
|
|
10
|
+
import "./index.css";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
const App = () => {
|
|
14
|
+
const darkModeToggler = () => {
|
|
15
|
+
document.documentElement.classList.toggle("dark");
|
|
16
|
+
};
|
|
17
|
+
return (
|
|
18
|
+
<StrictMode>
|
|
19
|
+
<div className="container mx-auto p-8 min-h-screen flex flex-col gap-6 font-yekan">
|
|
20
|
+
<div className="flex items-center justify-between rounded-xl bg-gray-200 dark:bg-gray-800 font-bold p-4 leading-[var(--line-height-display-sm)] shadow-xs-skeuomorphic">
|
|
21
|
+
<h1 className="text-rfg-primary-900">دیزاین سیستم راهکارگستران</h1>
|
|
22
|
+
<Switch
|
|
23
|
+
id="switch"
|
|
24
|
+
label="تغییر تم"
|
|
25
|
+
onToggle={darkModeToggler}
|
|
26
|
+
/>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<AmirHossein />
|
|
30
|
+
<Rasoul />
|
|
31
|
+
<Maryam />
|
|
32
|
+
<Fardin />
|
|
33
|
+
<Milad />
|
|
34
|
+
</div>
|
|
35
|
+
</StrictMode>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
createRoot(document.getElementById("root")!).render(
|
|
40
|
+
<StrictMode>
|
|
41
|
+
<ToastContainer
|
|
42
|
+
type="info"
|
|
43
|
+
position="bottom-center"
|
|
44
|
+
duration={40000}
|
|
45
|
+
animation="slide"
|
|
46
|
+
showProgress={true}
|
|
47
|
+
/>
|
|
48
|
+
<App />
|
|
49
|
+
</StrictMode>
|
|
50
|
+
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
package/tests/setup.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
4
|
+
"target": "ES2020",
|
|
5
|
+
"useDefineForClassFields": true,
|
|
6
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
7
|
+
"types": ["vitest/globals", "react", "react-dom"],
|
|
8
|
+
"module": "ESNext",
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"baseUrl": ".",
|
|
11
|
+
"paths": {
|
|
12
|
+
"@/*": ["src/*"]
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
/* Bundler mode */
|
|
16
|
+
"moduleResolution": "bundler",
|
|
17
|
+
"allowImportingTsExtensions": true,
|
|
18
|
+
"isolatedModules": true,
|
|
19
|
+
"moduleDetection": "force",
|
|
20
|
+
"noEmit": true,
|
|
21
|
+
"jsx": "react-jsx",
|
|
22
|
+
|
|
23
|
+
/* Linting */
|
|
24
|
+
"strict": true,
|
|
25
|
+
"noUnusedLocals": true,
|
|
26
|
+
"noUnusedParameters": true,
|
|
27
|
+
"noFallthroughCasesInSwitch": true,
|
|
28
|
+
"noUncheckedSideEffectImports": true
|
|
29
|
+
},
|
|
30
|
+
"include": ["src", "src/test/vitest-globals.d.ts"]
|
|
31
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
+
"target": "ES2022",
|
|
5
|
+
"lib": ["ES2023"],
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
|
|
9
|
+
/* Bundler mode */
|
|
10
|
+
"moduleResolution": "bundler",
|
|
11
|
+
"allowImportingTsExtensions": true,
|
|
12
|
+
"isolatedModules": true,
|
|
13
|
+
"moduleDetection": "force",
|
|
14
|
+
"noEmit": true,
|
|
15
|
+
|
|
16
|
+
/* Linting */
|
|
17
|
+
"strict": true,
|
|
18
|
+
"noUnusedLocals": true,
|
|
19
|
+
"noUnusedParameters": true,
|
|
20
|
+
"noFallthroughCasesInSwitch": true,
|
|
21
|
+
"noUncheckedSideEffectImports": true
|
|
22
|
+
},
|
|
23
|
+
"include": ["vite.config.ts"]
|
|
24
|
+
}
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import path from "path"
|
|
2
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
3
|
+
import react from "@vitejs/plugin-react";
|
|
4
|
+
import { defineConfig } from "vitest/config";
|
|
5
|
+
|
|
6
|
+
// https://vite.dev/config/
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
plugins: [react(), tailwindcss()],
|
|
9
|
+
test: {
|
|
10
|
+
// 👋 add the line below to add jsdom to vite
|
|
11
|
+
environment: "jsdom",
|
|
12
|
+
globals: true,
|
|
13
|
+
setupFiles: "./tests/setup.ts",
|
|
14
|
+
},
|
|
15
|
+
resolve: {
|
|
16
|
+
alias: {
|
|
17
|
+
"@": path.resolve(__dirname, "./src"),
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
});
|
package/vitest.config.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
2
|
+
import react from "@vitejs/plugin-react";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { defineConfig } from "vitest/config";
|
|
5
|
+
|
|
6
|
+
// https://vite.dev/config/
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
plugins: [react(), tailwindcss()],
|
|
9
|
+
test: {
|
|
10
|
+
// 👋 add the line below to add jsdom to vite
|
|
11
|
+
environment: "jsdom",
|
|
12
|
+
globals: true,
|
|
13
|
+
setupFiles: "tests/setup.ts",
|
|
14
|
+
include: ["src/**/*.test.{ts,tsx}", "src/**/*.spec.{ts,tsx}"],
|
|
15
|
+
exclude: [
|
|
16
|
+
"node_modules",
|
|
17
|
+
"dist",
|
|
18
|
+
"**/*.stories.tsx",
|
|
19
|
+
"**/*.style.ts",
|
|
20
|
+
"**/*.types.ts",
|
|
21
|
+
"src/icons/**/*.{ts,tsx}",
|
|
22
|
+
],
|
|
23
|
+
coverage: {
|
|
24
|
+
reporter: ["text", "json", "html"],
|
|
25
|
+
include: ["src/**/*.{ts,tsx}"],
|
|
26
|
+
exclude: [
|
|
27
|
+
// "**/*.test.{ts,tsx}", // ❌ خود تستها بررسی نشن
|
|
28
|
+
"**/*.spec.{ts,tsx}", // ❌ تستها
|
|
29
|
+
"**/*.stories.tsx", // ❌ Storybook
|
|
30
|
+
"**/*.style.ts", // ❌ Style ها
|
|
31
|
+
"**/*.types.ts", // ❌ Type ها
|
|
32
|
+
"src/icons/**/*.{ts,tsx}", // ❌ آیکونها
|
|
33
|
+
"src/components/developers//**/*.{ts,tsx}", // ❌ توسعهدهندگان
|
|
34
|
+
"tests/**", // ❌ فایلهای setup
|
|
35
|
+
"node_modules/**", // ❌ پکیجها
|
|
36
|
+
"dist/**", // ❌ خروجی build
|
|
37
|
+
"src/main.tsx", // ❌ فایل اصلی
|
|
38
|
+
"src/vite-env.d.ts", // ❌ TypeScript
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
resolve: {
|
|
43
|
+
alias: {
|
|
44
|
+
"@": path.resolve(__dirname, "./src"),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
});
|