ar-design 0.3.23 → 0.3.25
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/assets/css/components/feedback/modal/header.css +8 -8
- package/dist/components/feedback/modal/IProps.d.ts +2 -0
- package/dist/components/feedback/modal/index.js +4 -2
- package/dist/components/form/button-action/IProps.d.ts +3 -2
- package/dist/components/form/button-action/index.js +9 -9
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
overflow: hidden;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
17
|
+
.ar-modal-wrapper > .ar-modal > .header .close {
|
|
18
18
|
display: flex;
|
|
19
19
|
justify-content: center;
|
|
20
20
|
align-items: center;
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
user-select: none;
|
|
28
28
|
transition: background 250ms, border 250ms ease-in-out;
|
|
29
29
|
}
|
|
30
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
31
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
30
|
+
.ar-modal-wrapper > .ar-modal > .header .close::before,
|
|
31
|
+
.ar-modal-wrapper > .ar-modal > .header .close::after {
|
|
32
32
|
position: absolute;
|
|
33
33
|
content: "";
|
|
34
34
|
width: 2px;
|
|
@@ -38,19 +38,19 @@
|
|
|
38
38
|
transform: rotate(-45deg);
|
|
39
39
|
transition: transform 250ms ease-in-out;
|
|
40
40
|
}
|
|
41
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
41
|
+
.ar-modal-wrapper > .ar-modal > .header .close::after {
|
|
42
42
|
transform: rotate(45deg);
|
|
43
43
|
}
|
|
44
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
44
|
+
.ar-modal-wrapper > .ar-modal > .header .close:hover {
|
|
45
45
|
background-color: rgba(var(--danger-rgb), 0.1);
|
|
46
46
|
border: solid 1px var(--danger);
|
|
47
47
|
color: rgba(var(--danger-rgb), 0.75);
|
|
48
48
|
}
|
|
49
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
50
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
49
|
+
.ar-modal-wrapper > .ar-modal > .header .close:hover::before,
|
|
50
|
+
.ar-modal-wrapper > .ar-modal > .header .close:hover::after {
|
|
51
51
|
background-color: var(--danger);
|
|
52
52
|
transform: rotate(45deg);
|
|
53
53
|
}
|
|
54
|
-
.ar-modal-wrapper > .ar-modal > .header
|
|
54
|
+
.ar-modal-wrapper > .ar-modal > .header .close:hover::after {
|
|
55
55
|
transform: rotate(-45deg);
|
|
56
56
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IChildren, ISize } from "../../../libs/types/IGlobalProps";
|
|
2
|
+
import IPopoverProps from "../../feedback/popover/IProps";
|
|
2
3
|
interface IProps extends IChildren, ISize, React.HTMLAttributes<HTMLDivElement> {
|
|
3
4
|
/**
|
|
4
5
|
* Modal'ın açık olup olmadığını kontrol eden ve değiştiren değerler.
|
|
@@ -18,6 +19,7 @@ interface IProps extends IChildren, ISize, React.HTMLAttributes<HTMLDivElement>
|
|
|
18
19
|
get: boolean;
|
|
19
20
|
set: React.Dispatch<React.SetStateAction<boolean>>;
|
|
20
21
|
};
|
|
22
|
+
closePopover?: IPopoverProps;
|
|
21
23
|
/**
|
|
22
24
|
* Modal başlığı.
|
|
23
25
|
*
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
import React, { useEffect, useRef } from "react";
|
|
3
3
|
import "../../../assets/css/components/feedback/modal/styles.css";
|
|
4
4
|
import Typography from "../../data-display/typography";
|
|
5
|
+
import Popover from "../popover";
|
|
5
6
|
const { Title } = Typography;
|
|
6
|
-
const Modal = ({ children, open, title, size = "normal", footer, ...attributes }) => {
|
|
7
|
+
const Modal = ({ children, open, closePopover, title, size = "normal", footer, ...attributes }) => {
|
|
7
8
|
// refs
|
|
8
9
|
const _arModal = useRef(null);
|
|
9
10
|
const _modalWrapperClassName = ["ar-modal-wrapper"];
|
|
@@ -78,7 +79,8 @@ const Modal = ({ children, open, title, size = "normal", footer, ...attributes }
|
|
|
78
79
|
React.createElement("div", { ref: _arModal, ...attributes, className: _modalClassName.map((c) => c).join(" "), role: "dialog" },
|
|
79
80
|
title && (React.createElement("div", { className: "header" },
|
|
80
81
|
React.createElement(Title, { Level: "h3" }, title),
|
|
81
|
-
React.createElement(
|
|
82
|
+
closePopover ? (React.createElement(Popover, { ...closePopover },
|
|
83
|
+
React.createElement("div", { className: "close" }))) : (React.createElement("div", { className: "close", onClick: () => open.set((prev) => !prev) })))),
|
|
82
84
|
React.createElement("div", { className: "content" }, children),
|
|
83
85
|
footer && React.createElement("div", { className: "footer" }, footer))));
|
|
84
86
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Color } from "../../../libs/types";
|
|
2
|
+
import { IIcon } from "../../../libs/types/IGlobalProps";
|
|
2
3
|
interface IProps {
|
|
3
|
-
buttons: {
|
|
4
|
+
buttons: ({
|
|
4
5
|
text: string;
|
|
5
6
|
onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
6
7
|
color?: Color;
|
|
7
|
-
}[];
|
|
8
|
+
} & IIcon)[];
|
|
8
9
|
}
|
|
9
10
|
export default IProps;
|
|
@@ -44,13 +44,13 @@ const ButtonAction = ({ buttons }) => {
|
|
|
44
44
|
const handleResizeEvent = () => setOpen(false);
|
|
45
45
|
// useEffects
|
|
46
46
|
useEffect(() => {
|
|
47
|
-
if (open)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
if (!open)
|
|
48
|
+
return;
|
|
49
|
+
setTimeout(() => handlePosition(), 0);
|
|
50
|
+
window.addEventListener("blur", () => setOpen(false));
|
|
51
|
+
window.addEventListener("resize", handleResizeEvent);
|
|
52
|
+
document.addEventListener("click", handleClickOutSide);
|
|
53
|
+
document.addEventListener("keydown", handleKeys);
|
|
54
54
|
return () => {
|
|
55
55
|
window.removeEventListener("blur", () => setOpen(false));
|
|
56
56
|
window.removeEventListener("resize", handleResizeEvent);
|
|
@@ -60,9 +60,9 @@ const ButtonAction = ({ buttons }) => {
|
|
|
60
60
|
}, [open]);
|
|
61
61
|
return (React.createElement("div", { ref: _wrapper, className: "ar-button-action" },
|
|
62
62
|
React.createElement("span", { ref: _button },
|
|
63
|
-
React.createElement(Button, { variant: "
|
|
63
|
+
React.createElement(Button, { variant: "borderless", color: "light", icon: { element: React.createElement("span", { className: "dotted" }) }, onClick: () => setOpen((prev) => !prev) })),
|
|
64
64
|
open &&
|
|
65
|
-
ReactDOM.createPortal(React.createElement("span", { ref: _list, className: "ar-action-buttons" }, buttons.map((button) => (React.createElement(Button, { variant: "borderless", color: button.color ?? "blue", onClick: button.onClick }, button.text)))), document.body)));
|
|
65
|
+
ReactDOM.createPortal(React.createElement("span", { ref: _list, className: "ar-action-buttons" }, buttons.map((button) => (React.createElement(Button, { style: { display: "flex", justifyContent: "flex-start" }, variant: "borderless", color: button.color ?? "blue", size: "small", icon: button.icon, onClick: button.onClick }, button.text)))), document.body)));
|
|
66
66
|
};
|
|
67
67
|
ButtonAction.displayName = "ButtonAction";
|
|
68
68
|
export default ButtonAction;
|