ar-design 0.1.71 → 0.1.73
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/content.css +3 -3
- package/dist/assets/css/components/feedback/modal/header.css +1 -1
- package/dist/assets/css/components/feedback/modal/modal.css +3 -13
- package/dist/assets/css/components/feedback/{confirm/confirm.css → popover/styles.css} +5 -5
- package/dist/assets/css/components/form/switch/{switch.css → styles.css} +4 -4
- package/dist/components/data-display/table/index.d.ts +1 -1
- package/dist/components/data-display/table/index.js +1 -1
- package/dist/components/feedback/modal/IProps.d.ts +1 -1
- package/dist/components/feedback/modal/index.js +29 -8
- package/dist/components/feedback/{confirm → popover}/IProps.d.ts +1 -0
- package/dist/components/feedback/popover/index.d.ts +5 -0
- package/dist/components/feedback/{confirm → popover}/index.js +18 -18
- package/dist/components/form/input/IProps.d.ts +1 -0
- package/dist/components/form/input/index.js +22 -2
- package/dist/components/form/switch/index.d.ts +1 -1
- package/dist/components/form/switch/index.js +2 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/dist/components/feedback/confirm/index.d.ts +0 -5
- /package/dist/assets/css/components/data-display/table/{table.css → styles.css} +0 -0
- /package/dist/components/feedback/{confirm → popover}/IProps.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ar-modal-wrapper > .ar-modal > .content {
|
|
2
|
-
max-height: calc(100vh -
|
|
2
|
+
max-height: calc(100vh - 180px - 3.5rem - 4rem - 2rem);
|
|
3
3
|
padding: 2rem;
|
|
4
|
-
|
|
5
|
-
overflow-y: auto;
|
|
4
|
+
overflow-x: hidden;
|
|
5
|
+
overflow-y: auto;
|
|
6
6
|
}
|
|
@@ -9,33 +9,23 @@
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
/* #region Open or Close */
|
|
12
|
-
.ar-modal-wrapper
|
|
12
|
+
.ar-modal-wrapper.opened {
|
|
13
13
|
visibility: visible;
|
|
14
14
|
opacity: 1;
|
|
15
15
|
transition: visibility 250ms, opacity 250ms ease-in-out;
|
|
16
16
|
z-index: 100;
|
|
17
17
|
}
|
|
18
|
-
.ar-modal-wrapper
|
|
19
|
-
top: 1.75rem;
|
|
20
|
-
transition: top 250ms ease-in-out;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.ar-modal-wrapper:is(.closed) {
|
|
18
|
+
.ar-modal-wrapper.closed {
|
|
24
19
|
visibility: hidden;
|
|
25
20
|
opacity: 0;
|
|
26
21
|
transition: visibility 250ms, opacity 250ms ease-in-out;
|
|
27
22
|
z-index: 99;
|
|
28
23
|
}
|
|
29
|
-
.ar-modal-wrapper:is(.closed) > .ar-modal {
|
|
30
|
-
top: -100%;
|
|
31
|
-
transition: top 250ms ease-in-out;
|
|
32
|
-
}
|
|
33
24
|
/* #endregion */
|
|
34
25
|
/* Open or Close */
|
|
35
26
|
|
|
36
27
|
.ar-modal-wrapper > .ar-modal {
|
|
37
|
-
position:
|
|
38
|
-
margin: 0 auto;
|
|
28
|
+
position: absolute;
|
|
39
29
|
background-color: var(--white);
|
|
40
30
|
border-radius: var(--border-radius-sm);
|
|
41
31
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
.ar-
|
|
1
|
+
.ar-popover-wrapper {
|
|
2
2
|
position: relative;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
.ar-
|
|
5
|
+
.ar-popover {
|
|
6
6
|
position: absolute;
|
|
7
7
|
display: flex;
|
|
8
8
|
flex-direction: column;
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
z-index: 1051;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.ar-
|
|
18
|
+
.ar-popover > .content {
|
|
19
19
|
max-height: 200px;
|
|
20
20
|
overflow-y: auto;
|
|
21
21
|
overflow-x: hidden;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
.ar-
|
|
24
|
+
.ar-popover > .message {
|
|
25
25
|
font-size: 0.85rem;
|
|
26
26
|
text-wrap: wrap;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
.ar-
|
|
29
|
+
.ar-popover > .footer {
|
|
30
30
|
display: flex;
|
|
31
31
|
flex-direction: row;
|
|
32
32
|
justify-content: flex-end;
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
}
|
|
8
8
|
.ar-switch-wrapper > label {
|
|
9
9
|
display: flex;
|
|
10
|
-
flex-direction: row
|
|
11
|
-
justify-content: space-between;
|
|
10
|
+
flex-direction: row;
|
|
11
|
+
/* justify-content: space-between; */
|
|
12
12
|
align-items: center;
|
|
13
13
|
gap: 0 0.5rem;
|
|
14
|
-
width: 100%;
|
|
14
|
+
/* width: 100%; */
|
|
15
15
|
user-select: none;
|
|
16
16
|
}
|
|
17
17
|
.ar-switch-wrapper > label > :is(input[type="checkbox"]) {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
background-color: var(--white);
|
|
37
37
|
width: 0.75rem;
|
|
38
38
|
height: 0.75rem;
|
|
39
|
-
transition: left 150ms, width 150ms
|
|
39
|
+
transition: left 150ms, width 150ms 150ms, height 150ms 150ms, box-shadow 150ms 150ms ease-in-out;
|
|
40
40
|
}
|
|
41
41
|
.ar-switch-wrapper > label > :is(input[type="checkbox"]):checked + .ar-switch > .handle {
|
|
42
42
|
left: calc(2.25rem - 0.9rem);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import IProps from "./IProps";
|
|
3
|
-
import "../../../assets/css/components/data-display/table/
|
|
3
|
+
import "../../../assets/css/components/data-display/table/styles.css";
|
|
4
4
|
declare const Table: {
|
|
5
5
|
<T extends object>({ children, data, columns, selections, pagination, config }: IProps<T>): React.JSX.Element;
|
|
6
6
|
Action: React.FC<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
3
|
-
import "../../../assets/css/components/data-display/table/
|
|
3
|
+
import "../../../assets/css/components/data-display/table/styles.css";
|
|
4
4
|
import Checkbox from "../../form/checkbox";
|
|
5
5
|
import Actions from "./Actions";
|
|
6
6
|
import Input from "../../form/input";
|
|
@@ -13,26 +13,47 @@ const Modal = ({ children, open, title, size = "normal", footer }) => {
|
|
|
13
13
|
else
|
|
14
14
|
_modalWrapperClassName.push("closed");
|
|
15
15
|
// methods
|
|
16
|
-
// const handleClickOutSide = (event: MouseEvent) => {
|
|
17
|
-
// const target = event.target as HTMLElement;
|
|
18
|
-
// if (_arModal.current && !_arModal.current.contains(target)) open.set(false);
|
|
19
|
-
// };
|
|
20
16
|
const handleKeys = (event) => {
|
|
21
17
|
const key = event.key;
|
|
22
18
|
if (key === "Escape")
|
|
23
19
|
open.set(false);
|
|
24
20
|
};
|
|
21
|
+
const handlePosition = () => {
|
|
22
|
+
if (_arModal.current) {
|
|
23
|
+
const arModal = _arModal.current;
|
|
24
|
+
const content = arModal.querySelector("div.content");
|
|
25
|
+
const rect = arModal.getBoundingClientRect();
|
|
26
|
+
const screenCenterX = window.innerWidth / 2;
|
|
27
|
+
const screenCenterY = window.innerHeight / 2;
|
|
28
|
+
const sx = window.scrollX || document.documentElement.scrollLeft;
|
|
29
|
+
const sy = window.scrollY || document.documentElement.scrollTop;
|
|
30
|
+
if (window.innerHeight > 1024) {
|
|
31
|
+
arModal.style.top = "100px";
|
|
32
|
+
content.removeAttribute("style");
|
|
33
|
+
}
|
|
34
|
+
else if (window.innerHeight > 575 && window.innerHeight < 1024) {
|
|
35
|
+
arModal.style.top = `${screenCenterY - rect.height / 2 + sy}px`;
|
|
36
|
+
content.removeAttribute("style");
|
|
37
|
+
}
|
|
38
|
+
else if (window.innerHeight < 575) {
|
|
39
|
+
arModal.style.top = "15px";
|
|
40
|
+
content.style.maxHeight = `calc(100vh - ${footer ? "2.5px" : "-30.5px"} - 3.5rem - 4rem - ${footer ? "2rem" : "0rem"})`;
|
|
41
|
+
}
|
|
42
|
+
arModal.style.left = `${screenCenterX - rect.width / 2 + sx}px`;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
25
45
|
// useEffects
|
|
26
46
|
useEffect(() => {
|
|
47
|
+
handlePosition();
|
|
27
48
|
if (open.get) {
|
|
28
49
|
document.body.style.overflow = "hidden";
|
|
29
|
-
// document.addEventListener("click", handleClickOutSide);
|
|
30
50
|
document.addEventListener("keydown", handleKeys);
|
|
51
|
+
window.addEventListener("resize", handlePosition);
|
|
31
52
|
}
|
|
32
53
|
return () => {
|
|
33
54
|
document.body.style.removeProperty("overflow");
|
|
34
|
-
// document.removeEventListener("click", handleClickOutSide);
|
|
35
55
|
document.removeEventListener("keydown", handleKeys);
|
|
56
|
+
window.removeEventListener("resize", handlePosition);
|
|
36
57
|
};
|
|
37
58
|
}, [open.get]);
|
|
38
59
|
return (React.createElement("div", { className: _modalWrapperClassName.map((c) => c).join(" ") },
|
|
@@ -43,9 +64,9 @@ const Modal = ({ children, open, title, size = "normal", footer }) => {
|
|
|
43
64
|
open.set(false);
|
|
44
65
|
} }),
|
|
45
66
|
React.createElement("div", { ref: _arModal, className: _modalClassName.map((c) => c).join(" "), role: "dialog" },
|
|
46
|
-
React.createElement("div", { className: "header" },
|
|
67
|
+
title && (React.createElement("div", { className: "header" },
|
|
47
68
|
React.createElement(Title, { Level: "h3" }, title),
|
|
48
|
-
React.createElement("div", { className: "close", onClick: () => open.set((prev) => !prev) })),
|
|
69
|
+
React.createElement("div", { className: "close", onClick: () => open.set((prev) => !prev) }))),
|
|
49
70
|
React.createElement("div", { className: "content" }, children),
|
|
50
71
|
footer && React.createElement("div", { className: "footer" }, footer))));
|
|
51
72
|
};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import React, { useEffect, useRef, useState } from "react";
|
|
3
|
-
import "../../../assets/css/components/feedback/
|
|
3
|
+
import "../../../assets/css/components/feedback/popover/styles.css";
|
|
4
4
|
import Button from "../../form/button";
|
|
5
5
|
import Typography from "../../data-display/typography";
|
|
6
6
|
import ReactDOM from "react-dom";
|
|
7
7
|
const { Title } = Typography;
|
|
8
|
-
const
|
|
8
|
+
const Popover = ({ children, title, message, content, onConfirm, windowBlur }) => {
|
|
9
9
|
// refs
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
10
|
+
const _arPopoverWrapper = useRef(null);
|
|
11
|
+
const _arPopover = useRef(null);
|
|
12
|
+
const _arPopoverElement = useRef(null);
|
|
13
13
|
// states
|
|
14
14
|
const [open, setOpen] = useState(false);
|
|
15
15
|
// methods
|
|
16
16
|
const handleClickOutSide = (event) => {
|
|
17
17
|
const target = event.target;
|
|
18
|
-
if (
|
|
18
|
+
if (_arPopover.current && !_arPopover.current.contains(target))
|
|
19
19
|
setOpen(false);
|
|
20
20
|
};
|
|
21
21
|
const handleKeys = (event) => {
|
|
@@ -24,17 +24,17 @@ const Confirm = ({ children, title, message, content, onConfirm }) => {
|
|
|
24
24
|
setOpen(false);
|
|
25
25
|
};
|
|
26
26
|
const handlePosition = () => {
|
|
27
|
-
if (
|
|
28
|
-
const
|
|
29
|
-
const elementRect =
|
|
27
|
+
if (_arPopoverWrapper.current && _arPopover.current && _arPopoverElement.current) {
|
|
28
|
+
const popoverRect = _arPopover.current.getBoundingClientRect();
|
|
29
|
+
const elementRect = _arPopoverElement.current.getBoundingClientRect();
|
|
30
30
|
if (elementRect) {
|
|
31
31
|
const screenCenter = window.innerHeight / 2;
|
|
32
32
|
const sx = window.scrollX || document.documentElement.scrollLeft;
|
|
33
33
|
const sy = window.scrollY || document.documentElement.scrollTop;
|
|
34
|
-
|
|
35
|
-
? elementRect.top -
|
|
34
|
+
_arPopover.current.style.top = `${(elementRect.top > screenCenter
|
|
35
|
+
? elementRect.top - popoverRect.height + elementRect.height
|
|
36
36
|
: elementRect.top) + sy}px`;
|
|
37
|
-
|
|
37
|
+
_arPopover.current.style.left = `${elementRect.left - popoverRect.width + sx - 10}px`;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
};
|
|
@@ -42,19 +42,19 @@ const Confirm = ({ children, title, message, content, onConfirm }) => {
|
|
|
42
42
|
useEffect(() => {
|
|
43
43
|
if (open) {
|
|
44
44
|
setTimeout(() => handlePosition(), 0);
|
|
45
|
-
window.addEventListener("blur", () => setOpen(false));
|
|
45
|
+
windowBlur && window.addEventListener("blur", () => setOpen(false));
|
|
46
46
|
document.addEventListener("click", handleClickOutSide);
|
|
47
47
|
document.addEventListener("keydown", handleKeys);
|
|
48
48
|
}
|
|
49
49
|
return () => {
|
|
50
|
-
window.removeEventListener("blur", () => setOpen(false));
|
|
50
|
+
windowBlur && window.removeEventListener("blur", () => setOpen(false));
|
|
51
51
|
document.removeEventListener("click", handleClickOutSide);
|
|
52
52
|
document.removeEventListener("keydown", handleKeys);
|
|
53
53
|
};
|
|
54
54
|
}, [open]);
|
|
55
|
-
return (React.createElement("div", { ref:
|
|
55
|
+
return (React.createElement("div", { ref: _arPopoverWrapper, className: "ar-popover-wrapper", role: "dialog" },
|
|
56
56
|
open &&
|
|
57
|
-
ReactDOM.createPortal(React.createElement("div", { ref:
|
|
57
|
+
ReactDOM.createPortal(React.createElement("div", { ref: _arPopover, className: "ar-popover" },
|
|
58
58
|
title && React.createElement(Title, { Level: "h4" }, title),
|
|
59
59
|
message && React.createElement("p", { className: "message" }, message),
|
|
60
60
|
content && React.createElement("div", { className: "content" }, content),
|
|
@@ -67,6 +67,6 @@ const Confirm = ({ children, title, message, content, onConfirm }) => {
|
|
|
67
67
|
onConfirm(false);
|
|
68
68
|
setOpen(false);
|
|
69
69
|
} }, "Hay\u0131r")))), document.body),
|
|
70
|
-
React.createElement("div", { ref:
|
|
70
|
+
React.createElement("div", { ref: _arPopoverElement, onClick: () => setOpen((prev) => !prev) }, children)));
|
|
71
71
|
};
|
|
72
|
-
export default
|
|
72
|
+
export default Popover;
|
|
@@ -3,7 +3,7 @@ import React, { forwardRef, useEffect, useState } from "react";
|
|
|
3
3
|
import "../../../assets/css/components/form/input/input.css";
|
|
4
4
|
import Button from "../button";
|
|
5
5
|
import Utils from "../../../libs/infrastructure/shared/Utils";
|
|
6
|
-
const Input = forwardRef(({ variant = "outlined", status = "light", size = "normal", icon, border = { radius: "sm" }, button, addon, validation, ...attributes }, ref) => {
|
|
6
|
+
const Input = forwardRef(({ variant = "outlined", status = "light", size = "normal", icon, border = { radius: "sm" }, button, addon, upperCase, validation, ...attributes }, ref) => {
|
|
7
7
|
// states
|
|
8
8
|
const [value, setValue] = useState("");
|
|
9
9
|
// variable/s
|
|
@@ -22,6 +22,24 @@ const Input = forwardRef(({ variant = "outlined", status = "light", size = "norm
|
|
|
22
22
|
_addonBeforeClassName.push(`border-radius-${border.radius}`);
|
|
23
23
|
_addonAfterClassName.push(`border-radius-${border.radius}`);
|
|
24
24
|
}
|
|
25
|
+
// methods
|
|
26
|
+
// Özel büyük harfe dönüştürme işlevi.
|
|
27
|
+
const convertToUpperCase = (str) => {
|
|
28
|
+
return str
|
|
29
|
+
.replace(/ş/g, "S")
|
|
30
|
+
.replace(/Ş/g, "S")
|
|
31
|
+
.replace(/ı/g, "I")
|
|
32
|
+
.replace(/I/g, "I")
|
|
33
|
+
.replace(/ç/g, "C")
|
|
34
|
+
.replace(/Ç/g, "C")
|
|
35
|
+
.replace(/ğ/g, "G")
|
|
36
|
+
.replace(/Ğ/g, "G")
|
|
37
|
+
.replace(/ö/g, "O")
|
|
38
|
+
.replace(/Ö/g, "O")
|
|
39
|
+
.replace(/ü/g, "U")
|
|
40
|
+
.replace(/Ü/g, "U")
|
|
41
|
+
.replace(/[a-z]/g, (match) => match.toUpperCase());
|
|
42
|
+
};
|
|
25
43
|
// useEffects
|
|
26
44
|
useEffect(() => {
|
|
27
45
|
if (attributes.value !== undefined)
|
|
@@ -39,13 +57,15 @@ const Input = forwardRef(({ variant = "outlined", status = "light", size = "norm
|
|
|
39
57
|
if (attributes.disabled)
|
|
40
58
|
return;
|
|
41
59
|
(() => {
|
|
60
|
+
if (upperCase)
|
|
61
|
+
event.target.value = convertToUpperCase(event.target.value);
|
|
42
62
|
setValue(event.target.value);
|
|
43
63
|
})();
|
|
44
64
|
(() => {
|
|
45
65
|
if (attributes.onChange) {
|
|
46
66
|
// Mevcut değeri alın
|
|
47
67
|
const _target = event.target;
|
|
48
|
-
const currentValue = _target.value;
|
|
68
|
+
const currentValue = upperCase ? convertToUpperCase(_target.value) : _target.value;
|
|
49
69
|
// Yeni değeri oluşturun ve onChange fonksiyonunu çağırın
|
|
50
70
|
const newValue = `${addon?.before ?? ""}${currentValue}${addon?.after ?? ""}`;
|
|
51
71
|
attributes.onChange({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import React, { useRef } from "react";
|
|
3
|
-
import "../../../assets/css/components/form/switch/
|
|
3
|
+
import "../../../assets/css/components/form/switch/styles.css";
|
|
4
4
|
const Switch = ({ label, status = "primary", border = { radius: "pill" }, ...attributes }) => {
|
|
5
5
|
// refs
|
|
6
6
|
let _switch = useRef(null);
|
|
@@ -17,6 +17,7 @@ const Switch = ({ label, status = "primary", border = { radius: "pill" }, ...att
|
|
|
17
17
|
return (React.createElement("div", { className: _wrapperClassName },
|
|
18
18
|
React.createElement("label", null,
|
|
19
19
|
React.createElement("input", { type: attributes.type || "checkbox", ...attributes, size: 0, onChange: (event) => {
|
|
20
|
+
event.stopPropagation();
|
|
20
21
|
(() => {
|
|
21
22
|
const _current = _switch.current;
|
|
22
23
|
if (!_current)
|
package/dist/index.d.ts
CHANGED
|
@@ -20,12 +20,12 @@ import Table from "./components/data-display/table";
|
|
|
20
20
|
import Tabs from "./components/data-display/tabs";
|
|
21
21
|
import Typography from "./components/data-display/typography";
|
|
22
22
|
import Alert from "./components/feedback/alert";
|
|
23
|
-
import Confirm from "./components/feedback/confirm";
|
|
24
23
|
import Modal from "./components/feedback/modal";
|
|
24
|
+
import Popover from "./components/feedback/popover";
|
|
25
25
|
import Progress from "./components/feedback/progress";
|
|
26
26
|
import Breadcrumb from "./components/navigation/breadcrumb";
|
|
27
27
|
import Menu from "./components/navigation/menu";
|
|
28
28
|
import Steps from "./components/navigation/steps";
|
|
29
29
|
import Grid from "./components/layout/grid-system";
|
|
30
30
|
import Layout from "./components/layout";
|
|
31
|
-
export { Button, ButtonAction, ButtonGroup, Input, InputTag, DatePicker, Select, Switch, Upload, Checkbox, Radio, Card, Chip, Divider, DnD, Paper, SyntaxHighlighter, Table, Tabs, Typography, Alert,
|
|
31
|
+
export { Button, ButtonAction, ButtonGroup, Input, InputTag, DatePicker, Select, Switch, Upload, Checkbox, Radio, Card, Chip, Divider, DnD, Paper, SyntaxHighlighter, Table, Tabs, Typography, Alert, Modal, Popover, Progress, Breadcrumb, Menu, Steps, Grid, Layout, };
|
package/dist/index.js
CHANGED
|
@@ -23,8 +23,8 @@ import Tabs from "./components/data-display/tabs";
|
|
|
23
23
|
import Typography from "./components/data-display/typography";
|
|
24
24
|
// Feedback
|
|
25
25
|
import Alert from "./components/feedback/alert";
|
|
26
|
-
import Confirm from "./components/feedback/confirm";
|
|
27
26
|
import Modal from "./components/feedback/modal";
|
|
27
|
+
import Popover from "./components/feedback/popover";
|
|
28
28
|
import Progress from "./components/feedback/progress";
|
|
29
29
|
// Navigation
|
|
30
30
|
import Breadcrumb from "./components/navigation/breadcrumb";
|
|
@@ -39,7 +39,7 @@ Button, ButtonAction, ButtonGroup, Input, InputTag, DatePicker, Select, Switch,
|
|
|
39
39
|
// Data Display
|
|
40
40
|
Card, Chip, Divider, DnD, Paper, SyntaxHighlighter, Table, Tabs, Typography,
|
|
41
41
|
// Feedback
|
|
42
|
-
Alert,
|
|
42
|
+
Alert, Modal, Popover, Progress,
|
|
43
43
|
// Navigation
|
|
44
44
|
Breadcrumb, Menu, Steps,
|
|
45
45
|
// Layout
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|