@dgshahr/ui-kit 0.0.1
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/dist/Accordion/AccordionGroup.d.ts +8 -0
- package/dist/Accordion/AccordionGroup.d.ts.map +1 -0
- package/dist/Accordion/AccordionItem.d.ts +10 -0
- package/dist/Accordion/AccordionItem.d.ts.map +1 -0
- package/dist/Accordion/context.d.ts +8 -0
- package/dist/Accordion/context.d.ts.map +1 -0
- package/dist/Accordion/index.cjs +11 -0
- package/dist/Accordion/index.d.ts +3 -0
- package/dist/Accordion/index.d.ts.map +1 -0
- package/dist/Accordion/index.js +2 -0
- package/dist/AccordionItem-BBbE__nk.js +103 -0
- package/dist/AccordionItem-BOXOB5GK.cjs +106 -0
- package/dist/Alert/index.cjs +242 -0
- package/dist/Alert/index.d.ts +17 -0
- package/dist/Alert/index.d.ts.map +1 -0
- package/dist/Alert/index.js +240 -0
- package/dist/Alert/variants.d.ts +14 -0
- package/dist/Alert/variants.d.ts.map +1 -0
- package/dist/ArrowLeft2-BURhvXT2.js +22 -0
- package/dist/ArrowLeft2-iZ0Au6Fn.cjs +24 -0
- package/dist/ArrowRight2-DCxJPvNC.js +25 -0
- package/dist/ArrowRight2-DTuru_sP.cjs +27 -0
- package/dist/Badge/index.cjs +72 -0
- package/dist/Badge/index.d.ts +21 -0
- package/dist/Badge/index.d.ts.map +1 -0
- package/dist/Badge/index.js +70 -0
- package/dist/Breadcrumb/index.cjs +34 -0
- package/dist/Breadcrumb/index.d.ts +13 -0
- package/dist/Breadcrumb/index.d.ts.map +1 -0
- package/dist/Breadcrumb/index.js +32 -0
- package/dist/Button/index.cjs +119 -0
- package/dist/Button/index.d.ts +13 -0
- package/dist/Button/index.d.ts.map +1 -0
- package/dist/Button/index.js +117 -0
- package/dist/Button/variants.d.ts +5 -0
- package/dist/Button/variants.d.ts.map +1 -0
- package/dist/Divider/index.cjs +25 -0
- package/dist/Divider/index.d.ts +9 -0
- package/dist/Divider/index.d.ts.map +1 -0
- package/dist/Divider/index.js +23 -0
- package/dist/Form/Checkbox/index.cjs +72 -0
- package/dist/Form/Checkbox/index.d.ts +8 -0
- package/dist/Form/Checkbox/index.d.ts.map +1 -0
- package/dist/Form/Checkbox/index.js +70 -0
- package/dist/Form/Input/index.cjs +182 -0
- package/dist/Form/Input/index.d.ts +12 -0
- package/dist/Form/Input/index.d.ts.map +1 -0
- package/dist/Form/Input/index.js +180 -0
- package/dist/Form/RadioButton/index.cjs +22 -0
- package/dist/Form/RadioButton/index.d.ts +6 -0
- package/dist/Form/RadioButton/index.d.ts.map +1 -0
- package/dist/Form/RadioButton/index.js +20 -0
- package/dist/Form/Textarea/index.cjs +27 -0
- package/dist/Form/Textarea/index.d.ts +7 -0
- package/dist/Form/Textarea/index.d.ts.map +1 -0
- package/dist/Form/Textarea/index.js +25 -0
- package/dist/Pagination/index.cjs +119 -0
- package/dist/Pagination/index.d.ts +13 -0
- package/dist/Pagination/index.d.ts.map +1 -0
- package/dist/Pagination/index.js +117 -0
- package/dist/Pagination/utils.d.ts +8 -0
- package/dist/Pagination/utils.d.ts.map +1 -0
- package/dist/SelectableInputWrapper-D2aYQb9J.cjs +71 -0
- package/dist/SelectableInputWrapper-DAj8v1nv.js +69 -0
- package/dist/Slide-6SD8mElS.js +198 -0
- package/dist/Slide-BiCQh7AV.cjs +201 -0
- package/dist/Slider/NavigationDot.d.ts +11 -0
- package/dist/Slider/NavigationDot.d.ts.map +1 -0
- package/dist/Slider/Slide.d.ts +7 -0
- package/dist/Slider/Slide.d.ts.map +1 -0
- package/dist/Slider/Slider.d.ts +25 -0
- package/dist/Slider/Slider.d.ts.map +1 -0
- package/dist/Slider/context.d.ts +8 -0
- package/dist/Slider/context.d.ts.map +1 -0
- package/dist/Slider/index.cjs +11 -0
- package/dist/Slider/index.d.ts +3 -0
- package/dist/Slider/index.d.ts.map +1 -0
- package/dist/Slider/index.js +2 -0
- package/dist/TextFieldWrapper-C80myx6j.cjs +169 -0
- package/dist/TextFieldWrapper-D3oaEPmc.js +167 -0
- package/dist/assets/Button.css +1675 -0
- package/dist/assets/styles.css +1611 -0
- package/dist/clsx-BtxeOLZW.cjs +5 -0
- package/dist/clsx-ChV9xqsO.js +3 -0
- package/dist/index.cjs +34 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/package.json +83 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FC, PropsWithChildren } from 'react';
|
|
2
|
+
interface AccordionGroupProps {
|
|
3
|
+
defaultActiveKey?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const AccordionGroup: FC<PropsWithChildren<AccordionGroupProps>>;
|
|
7
|
+
export default AccordionGroup;
|
|
8
|
+
//# sourceMappingURL=AccordionGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionGroup.d.ts","sourceRoot":"","sources":["../../src/components/Accordion/AccordionGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAInD,UAAU,mBAAmB;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAgB9D,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FC, PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
interface AccordionItemProps {
|
|
3
|
+
title: string | ReactNode;
|
|
4
|
+
accordionKey?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
contentClassName?: string;
|
|
7
|
+
}
|
|
8
|
+
declare const AccordionItem: FC<PropsWithChildren<AccordionItemProps>>;
|
|
9
|
+
export default AccordionItem;
|
|
10
|
+
//# sourceMappingURL=AccordionItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../src/components/Accordion/AccordionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9D,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CA6C5D,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface IAccordionContext {
|
|
2
|
+
activeKey: string | null;
|
|
3
|
+
setActiveKey: (key: IAccordionContext['activeKey']) => void;
|
|
4
|
+
}
|
|
5
|
+
export declare const accordionContext: import('react').Context<IAccordionContext>;
|
|
6
|
+
export declare const useAccordionData: () => IAccordionContext;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/components/Accordion/context.ts"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC7D;AAED,eAAO,MAAM,gBAAgB,4CAG3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,yBAAqC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
require('../assets/styles.css');;/* empty css */
|
|
6
|
+
const AccordionItem = require('../AccordionItem-BOXOB5GK.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.AccordionGroup = AccordionItem.AccordionGroup;
|
|
11
|
+
exports.AccordionItem = AccordionItem.AccordionItem;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/Accordion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useContext, useState, useId } from 'react';
|
|
3
|
+
import { c as clsx } from './clsx-ChV9xqsO.js';
|
|
4
|
+
import Divider from './Divider/index.js';
|
|
5
|
+
|
|
6
|
+
const accordionContext = createContext({
|
|
7
|
+
activeKey: null,
|
|
8
|
+
setActiveKey: () => {
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const useAccordionData = () => useContext(accordionContext);
|
|
12
|
+
|
|
13
|
+
const AccordionGroup = (props) => {
|
|
14
|
+
const { defaultActiveKey = null, className, children } = props;
|
|
15
|
+
const [activeKey, setActiveKey] = useState(defaultActiveKey);
|
|
16
|
+
return /* @__PURE__ */ jsx("div", { className: clsx("flex flex-col", className), children: /* @__PURE__ */ jsx(
|
|
17
|
+
accordionContext.Provider,
|
|
18
|
+
{
|
|
19
|
+
value: {
|
|
20
|
+
activeKey,
|
|
21
|
+
setActiveKey
|
|
22
|
+
},
|
|
23
|
+
children
|
|
24
|
+
}
|
|
25
|
+
) });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const ArrowDown2Icon = (props) => /* @__PURE__ */ jsx(
|
|
29
|
+
"svg",
|
|
30
|
+
{
|
|
31
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
32
|
+
width: "1em",
|
|
33
|
+
height: "1em",
|
|
34
|
+
fill: "none",
|
|
35
|
+
viewBox: "0 0 24 24",
|
|
36
|
+
...props,
|
|
37
|
+
children: /* @__PURE__ */ jsx(
|
|
38
|
+
"path",
|
|
39
|
+
{
|
|
40
|
+
fill: "currentColor",
|
|
41
|
+
d: "M4.47 7.97a.75.75 0 0 1 .976-.073l.084.073L12 14.439l6.47-6.47a.75.75 0 0 1 .976-.072l.084.073a.75.75 0 0 1 .073.976l-.073.084-7 7a.75.75 0 0 1-.976.073l-.084-.073-7-7a.75.75 0 0 1 0-1.06"
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const AccordionItem = (props) => {
|
|
48
|
+
const { children, title, accordionKey, className, contentClassName } = props;
|
|
49
|
+
const { activeKey, setActiveKey } = useAccordionData();
|
|
50
|
+
const reactUseId = useId();
|
|
51
|
+
const accordionItemKey = accordionKey ?? reactUseId;
|
|
52
|
+
const isItemActive = accordionItemKey === activeKey;
|
|
53
|
+
return /* @__PURE__ */ jsxs("div", { className: clsx("bg-white px-4 pt-4", className), children: [
|
|
54
|
+
/* @__PURE__ */ jsxs(
|
|
55
|
+
"button",
|
|
56
|
+
{
|
|
57
|
+
className: clsx(
|
|
58
|
+
"flex justify-between items-center w-full",
|
|
59
|
+
isItemActive ? "text-primary-500" : "text-gray-600"
|
|
60
|
+
),
|
|
61
|
+
onClick: () => {
|
|
62
|
+
if (isItemActive) setActiveKey(null);
|
|
63
|
+
else setActiveKey(accordionItemKey);
|
|
64
|
+
},
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ jsx("div", { className: isItemActive ? "font-h5-bold" : "font-p1-medium", children: title }),
|
|
67
|
+
/* @__PURE__ */ jsx(
|
|
68
|
+
ArrowDown2Icon,
|
|
69
|
+
{
|
|
70
|
+
className: clsx(
|
|
71
|
+
"transition duration-300 ease-in-out shrink-0 w-auto h-auto",
|
|
72
|
+
isItemActive && "rotate-180"
|
|
73
|
+
),
|
|
74
|
+
width: 20,
|
|
75
|
+
height: 20
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
),
|
|
81
|
+
/* @__PURE__ */ jsx(
|
|
82
|
+
"div",
|
|
83
|
+
{
|
|
84
|
+
className: clsx(
|
|
85
|
+
"grid font-p1-regular text-gray-600 overflow-hidden transition-all duration-300 ease-in-out",
|
|
86
|
+
isItemActive ? "grid-rows-[1fr] opacity-100 mt-3" : "grid-rows-[0fr] opacity-0",
|
|
87
|
+
contentClassName
|
|
88
|
+
),
|
|
89
|
+
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children })
|
|
90
|
+
}
|
|
91
|
+
),
|
|
92
|
+
/* @__PURE__ */ jsx(
|
|
93
|
+
Divider,
|
|
94
|
+
{
|
|
95
|
+
type: "horizontal",
|
|
96
|
+
color: "white",
|
|
97
|
+
className: "mt-4"
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
] });
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export { AccordionGroup as A, AccordionItem as a };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const react = require('react');
|
|
5
|
+
const clsx = require('./clsx-BtxeOLZW.cjs');
|
|
6
|
+
const Divider = require('./Divider/index.cjs');
|
|
7
|
+
|
|
8
|
+
const accordionContext = react.createContext({
|
|
9
|
+
activeKey: null,
|
|
10
|
+
setActiveKey: () => {
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
const useAccordionData = () => react.useContext(accordionContext);
|
|
14
|
+
|
|
15
|
+
const AccordionGroup = (props) => {
|
|
16
|
+
const { defaultActiveKey = null, className, children } = props;
|
|
17
|
+
const [activeKey, setActiveKey] = react.useState(defaultActiveKey);
|
|
18
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx.clsx("flex flex-col", className), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
19
|
+
accordionContext.Provider,
|
|
20
|
+
{
|
|
21
|
+
value: {
|
|
22
|
+
activeKey,
|
|
23
|
+
setActiveKey
|
|
24
|
+
},
|
|
25
|
+
children
|
|
26
|
+
}
|
|
27
|
+
) });
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const ArrowDown2Icon = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
31
|
+
"svg",
|
|
32
|
+
{
|
|
33
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
34
|
+
width: "1em",
|
|
35
|
+
height: "1em",
|
|
36
|
+
fill: "none",
|
|
37
|
+
viewBox: "0 0 24 24",
|
|
38
|
+
...props,
|
|
39
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
40
|
+
"path",
|
|
41
|
+
{
|
|
42
|
+
fill: "currentColor",
|
|
43
|
+
d: "M4.47 7.97a.75.75 0 0 1 .976-.073l.084.073L12 14.439l6.47-6.47a.75.75 0 0 1 .976-.072l.084.073a.75.75 0 0 1 .073.976l-.073.084-7 7a.75.75 0 0 1-.976.073l-.084-.073-7-7a.75.75 0 0 1 0-1.06"
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const AccordionItem = (props) => {
|
|
50
|
+
const { children, title, accordionKey, className, contentClassName } = props;
|
|
51
|
+
const { activeKey, setActiveKey } = useAccordionData();
|
|
52
|
+
const reactUseId = react.useId();
|
|
53
|
+
const accordionItemKey = accordionKey ?? reactUseId;
|
|
54
|
+
const isItemActive = accordionItemKey === activeKey;
|
|
55
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx.clsx("bg-white px-4 pt-4", className), children: [
|
|
56
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
57
|
+
"button",
|
|
58
|
+
{
|
|
59
|
+
className: clsx.clsx(
|
|
60
|
+
"flex justify-between items-center w-full",
|
|
61
|
+
isItemActive ? "text-primary-500" : "text-gray-600"
|
|
62
|
+
),
|
|
63
|
+
onClick: () => {
|
|
64
|
+
if (isItemActive) setActiveKey(null);
|
|
65
|
+
else setActiveKey(accordionItemKey);
|
|
66
|
+
},
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: isItemActive ? "font-h5-bold" : "font-p1-medium", children: title }),
|
|
69
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
70
|
+
ArrowDown2Icon,
|
|
71
|
+
{
|
|
72
|
+
className: clsx.clsx(
|
|
73
|
+
"transition duration-300 ease-in-out shrink-0 w-auto h-auto",
|
|
74
|
+
isItemActive && "rotate-180"
|
|
75
|
+
),
|
|
76
|
+
width: 20,
|
|
77
|
+
height: 20
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
84
|
+
"div",
|
|
85
|
+
{
|
|
86
|
+
className: clsx.clsx(
|
|
87
|
+
"grid font-p1-regular text-gray-600 overflow-hidden transition-all duration-300 ease-in-out",
|
|
88
|
+
isItemActive ? "grid-rows-[1fr] opacity-100 mt-3" : "grid-rows-[0fr] opacity-0",
|
|
89
|
+
contentClassName
|
|
90
|
+
),
|
|
91
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden", children })
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
95
|
+
Divider,
|
|
96
|
+
{
|
|
97
|
+
type: "horizontal",
|
|
98
|
+
color: "white",
|
|
99
|
+
className: "mt-4"
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
] });
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
exports.AccordionGroup = AccordionGroup;
|
|
106
|
+
exports.AccordionItem = AccordionItem;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('../assets/styles.css');const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const clsx = require('../clsx-BtxeOLZW.cjs');
|
|
5
|
+
const Button = require('../Button/index.cjs');
|
|
6
|
+
const react = require('react');
|
|
7
|
+
;/* empty css */
|
|
8
|
+
|
|
9
|
+
const alertVariantClassNames = {
|
|
10
|
+
container: {
|
|
11
|
+
warning: "bg-warning-50 border-warning-200",
|
|
12
|
+
primary: "bg-primary-50 border-primary-100",
|
|
13
|
+
error: "bg-error-50 border-error-200",
|
|
14
|
+
success: "bg-success-50 border-success-200",
|
|
15
|
+
gray: "bg-gray-50 border-gray-200"
|
|
16
|
+
},
|
|
17
|
+
icon: {
|
|
18
|
+
warning: "text-warning-700",
|
|
19
|
+
primary: "text-primary-400",
|
|
20
|
+
error: "text-error-600",
|
|
21
|
+
success: "text-success-600",
|
|
22
|
+
gray: "text-gray-600"
|
|
23
|
+
},
|
|
24
|
+
title: {
|
|
25
|
+
warning: "text-warning-800",
|
|
26
|
+
primary: "text-primary-700",
|
|
27
|
+
error: "text-error-700",
|
|
28
|
+
success: "text-success-800",
|
|
29
|
+
gray: "text-gray-800"
|
|
30
|
+
},
|
|
31
|
+
close: {
|
|
32
|
+
warning: "text-warning-800",
|
|
33
|
+
primary: "text-primary-600",
|
|
34
|
+
error: "text-error-600",
|
|
35
|
+
success: "text-success-800",
|
|
36
|
+
gray: "text-gray-800"
|
|
37
|
+
},
|
|
38
|
+
text: {
|
|
39
|
+
warning: "text-warning-800",
|
|
40
|
+
primary: "text-primary-600",
|
|
41
|
+
error: "text-error-600",
|
|
42
|
+
success: "text-success-800",
|
|
43
|
+
gray: "text-gray-700"
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const alertSizeClassNames = {
|
|
47
|
+
container: {
|
|
48
|
+
large: "p-4",
|
|
49
|
+
small: "p-3"
|
|
50
|
+
},
|
|
51
|
+
icon: {
|
|
52
|
+
large: 24,
|
|
53
|
+
small: 20
|
|
54
|
+
},
|
|
55
|
+
title: {
|
|
56
|
+
large: "font-h5-bold mb-2",
|
|
57
|
+
small: "font-h6-bold mb-1"
|
|
58
|
+
},
|
|
59
|
+
close: {
|
|
60
|
+
large: 20,
|
|
61
|
+
small: 20
|
|
62
|
+
},
|
|
63
|
+
text: {
|
|
64
|
+
large: "font-p2-regular",
|
|
65
|
+
small: "font-p3-regular"
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const DangerBoldIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
70
|
+
"svg",
|
|
71
|
+
{
|
|
72
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
73
|
+
width: "1em",
|
|
74
|
+
height: "1em",
|
|
75
|
+
fill: "none",
|
|
76
|
+
viewBox: "0 0 24 24",
|
|
77
|
+
...props,
|
|
78
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
79
|
+
"path",
|
|
80
|
+
{
|
|
81
|
+
fill: "currentColor",
|
|
82
|
+
d: "M10.628 3.353a2.85 2.85 0 0 1 3.85 1.09l7.268 12.614c.16.377.23.683.25 1.001a2.76 2.76 0 0 1-.73 2.021c-.51.554-1.2.881-1.95.921H4.68c-.31-.019-.62-.09-.91-.198-1.45-.585-2.15-2.23-1.56-3.656L9.53 4.433a2.73 2.73 0 0 1 1.099-1.08m1.37 11.92c-.48 0-.88.396-.88.873 0 .474.4.872.88.872s.87-.398.87-.883a.867.867 0 0 0-.87-.862m0-6.183c-.48 0-.88.386-.88.862v2.804c0 .475.4.873.88.873s.87-.398.87-.873V9.952a.866.866 0 0 0-.87-.862"
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
const InfoCircleBoldIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
89
|
+
"svg",
|
|
90
|
+
{
|
|
91
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
92
|
+
width: "1em",
|
|
93
|
+
height: "1em",
|
|
94
|
+
fill: "none",
|
|
95
|
+
viewBox: "0 0 24 24",
|
|
96
|
+
...props,
|
|
97
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
98
|
+
"path",
|
|
99
|
+
{
|
|
100
|
+
fill: "currentColor",
|
|
101
|
+
fillRule: "evenodd",
|
|
102
|
+
d: "M12.756 15.693a.75.75 0 0 1-1.5 0v-4.299a.75.75 0 0 1 1.5 0zM11.25 8.291a.75.75 0 0 1 1.5 0c0 .414-.336.782-.75.782s-.75-.305-.75-.719zM12 2.5c-5.238 0-9.5 4.261-9.5 9.5s4.262 9.5 9.5 9.5 9.5-4.262 9.5-9.5-4.262-9.5-9.5-9.5",
|
|
103
|
+
clipRule: "evenodd"
|
|
104
|
+
}
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const CheckCircleBoldIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
110
|
+
"svg",
|
|
111
|
+
{
|
|
112
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
113
|
+
width: "1em",
|
|
114
|
+
height: "1em",
|
|
115
|
+
fill: "none",
|
|
116
|
+
viewBox: "0 0 24 24",
|
|
117
|
+
...props,
|
|
118
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
119
|
+
"path",
|
|
120
|
+
{
|
|
121
|
+
fill: "currentColor",
|
|
122
|
+
fillRule: "evenodd",
|
|
123
|
+
d: "m15.993 10.222-4.618 4.618a.746.746 0 0 1-1.061 0l-2.309-2.309a.75.75 0 0 1 1.06-1.061l1.78 1.779 4.087-4.088a.75.75 0 1 1 1.061 1.061M12 2.5c-5.238 0-9.5 4.262-9.5 9.5s4.262 9.5 9.5 9.5 9.5-4.261 9.5-9.5-4.262-9.5-9.5-9.5",
|
|
124
|
+
clipRule: "evenodd"
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
const CloseRemoveIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
131
|
+
"svg",
|
|
132
|
+
{
|
|
133
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
134
|
+
width: "1em",
|
|
135
|
+
height: "1em",
|
|
136
|
+
fill: "none",
|
|
137
|
+
viewBox: "0 0 24 24",
|
|
138
|
+
...props,
|
|
139
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
140
|
+
"path",
|
|
141
|
+
{
|
|
142
|
+
fill: "currentColor",
|
|
143
|
+
d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06l5.47 5.47-5.47 5.47a.75.75 0 1 0 1.06 1.06l5.47-5.47 5.47 5.47a.75.75 0 1 0 1.06-1.06l-5.47-5.47 5.47-5.47a.75.75 0 0 0-1.06-1.06l-5.47 5.47z"
|
|
144
|
+
}
|
|
145
|
+
)
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
function getAlertIcon(variant, size) {
|
|
150
|
+
let IconComponent = InfoCircleBoldIcon;
|
|
151
|
+
if (variant === "error") IconComponent = DangerBoldIcon;
|
|
152
|
+
else if (variant === "success") IconComponent = CheckCircleBoldIcon;
|
|
153
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
154
|
+
IconComponent,
|
|
155
|
+
{
|
|
156
|
+
className: clsx.clsx("shrink-0 my-[2px]", alertVariantClassNames.icon[variant]),
|
|
157
|
+
width: alertSizeClassNames.icon[size],
|
|
158
|
+
height: alertSizeClassNames.icon[size]
|
|
159
|
+
}
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
const Alert = (props) => {
|
|
163
|
+
const {
|
|
164
|
+
variant = "primary",
|
|
165
|
+
size = "small",
|
|
166
|
+
title,
|
|
167
|
+
text,
|
|
168
|
+
primaryButton,
|
|
169
|
+
outlineButton,
|
|
170
|
+
closable,
|
|
171
|
+
className
|
|
172
|
+
} = props;
|
|
173
|
+
const [show, setShow] = react.useState(true);
|
|
174
|
+
if (show)
|
|
175
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
176
|
+
"div",
|
|
177
|
+
{
|
|
178
|
+
className: clsx.clsx(
|
|
179
|
+
"w-full flex gap-x-3 rounded-xl border border-solid",
|
|
180
|
+
alertVariantClassNames.container[variant],
|
|
181
|
+
alertSizeClassNames.container[size],
|
|
182
|
+
className
|
|
183
|
+
),
|
|
184
|
+
children: [
|
|
185
|
+
getAlertIcon(variant, size),
|
|
186
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col flex-1", children: [
|
|
187
|
+
Boolean(title) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
188
|
+
"div",
|
|
189
|
+
{
|
|
190
|
+
className: clsx.clsx(
|
|
191
|
+
alertVariantClassNames.title[variant],
|
|
192
|
+
alertSizeClassNames.title[size]
|
|
193
|
+
),
|
|
194
|
+
children: title
|
|
195
|
+
}
|
|
196
|
+
),
|
|
197
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: clsx.clsx(alertVariantClassNames.text[variant], alertSizeClassNames.text[size]), children: text }),
|
|
198
|
+
(Boolean(primaryButton?.text) || Boolean(outlineButton?.text)) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx.clsx("flex gap-x-2 items-center", size === "large" ? "mt-4" : "mt-3"), children: [
|
|
199
|
+
Boolean(primaryButton?.text) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
200
|
+
Button,
|
|
201
|
+
{
|
|
202
|
+
variant: "primary",
|
|
203
|
+
color: variant,
|
|
204
|
+
size: "small",
|
|
205
|
+
...primaryButton,
|
|
206
|
+
children: primaryButton?.text
|
|
207
|
+
}
|
|
208
|
+
),
|
|
209
|
+
Boolean(outlineButton?.text) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
210
|
+
Button,
|
|
211
|
+
{
|
|
212
|
+
variant: "outline",
|
|
213
|
+
color: variant,
|
|
214
|
+
size: "small",
|
|
215
|
+
...outlineButton,
|
|
216
|
+
children: outlineButton?.text
|
|
217
|
+
}
|
|
218
|
+
)
|
|
219
|
+
] })
|
|
220
|
+
] }),
|
|
221
|
+
closable && /* @__PURE__ */ jsxRuntime.jsx(
|
|
222
|
+
"button",
|
|
223
|
+
{
|
|
224
|
+
className: "shrink-0 my-[2px] h-fit",
|
|
225
|
+
onClick: () => setShow(false),
|
|
226
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
227
|
+
CloseRemoveIcon,
|
|
228
|
+
{
|
|
229
|
+
className: clsx.clsx(alertVariantClassNames.close[variant]),
|
|
230
|
+
width: alertSizeClassNames.close[size],
|
|
231
|
+
height: alertSizeClassNames.close[size]
|
|
232
|
+
}
|
|
233
|
+
)
|
|
234
|
+
}
|
|
235
|
+
)
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
);
|
|
239
|
+
return null;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
module.exports = Alert;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ButtonProps } from '../Button';
|
|
2
|
+
interface AlertButtonProps extends Omit<ButtonProps, 'variant' | 'color' | 'size' | 'children'> {
|
|
3
|
+
text: string;
|
|
4
|
+
}
|
|
5
|
+
export interface AlertProps {
|
|
6
|
+
variant?: 'warning' | 'primary' | 'error' | 'success' | 'gray';
|
|
7
|
+
size?: 'large' | 'small';
|
|
8
|
+
title?: string;
|
|
9
|
+
text: string;
|
|
10
|
+
primaryButton?: AlertButtonProps;
|
|
11
|
+
outlineButton?: AlertButtonProps;
|
|
12
|
+
closable?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
declare const Alert: (props: AlertProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
16
|
+
export default Alert;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/Alert/index.tsx"],"names":[],"mappings":"AACA,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAQrD,OAAO,kBAAkB,CAAC;AAE1B,UAAU,gBAAiB,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7F,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/D,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD,QAAA,MAAM,KAAK,UAAW,UAAU,mDA+E/B,CAAC;AAEF,eAAe,KAAK,CAAC"}
|