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.
@@ -1,6 +1,6 @@
1
1
  .ar-modal-wrapper > .ar-modal > .content {
2
- max-height: calc(100vh - (3.5rem + 7.5rem + 7.5rem));
2
+ max-height: calc(100vh - 180px - 3.5rem - 4rem - 2rem);
3
3
  padding: 2rem;
4
- /* overflow-x: hidden;
5
- overflow-y: auto; */
4
+ overflow-x: hidden;
5
+ overflow-y: auto;
6
6
  }
@@ -4,7 +4,7 @@
4
4
  justify-content: space-between;
5
5
  align-items: center;
6
6
  height: 3.5rem;
7
- padding: 1rem 2rem;
7
+ padding: 0 2rem;
8
8
  border-bottom: solid 1px var(--gray-200);
9
9
  }
10
10
  .ar-modal-wrapper > .ar-modal > .header > .ar-typography-title {
@@ -9,33 +9,23 @@
9
9
  }
10
10
 
11
11
  /* #region Open or Close */
12
- .ar-modal-wrapper:is(.opened) {
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:is(.opened) > .ar-modal {
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: relative;
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-confirm-wrapper {
1
+ .ar-popover-wrapper {
2
2
  position: relative;
3
3
  }
4
4
 
5
- .ar-confirm {
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-confirm > .content {
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-confirm > .message {
24
+ .ar-popover > .message {
25
25
  font-size: 0.85rem;
26
26
  text-wrap: wrap;
27
27
  }
28
28
 
29
- .ar-confirm > .footer {
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-reverse;
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 350ms, height 150ms 350ms, box-shadow 150ms 500ms ease-in-out;
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/table.css";
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/table.css";
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";
@@ -11,7 +11,7 @@ interface IProps extends IChildren, ISizes {
11
11
  /**
12
12
  * ...
13
13
  */
14
- title: string;
14
+ title?: string;
15
15
  /**
16
16
  * ...
17
17
  */
@@ -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
  };
@@ -4,5 +4,6 @@ interface IProps extends IChildren {
4
4
  message?: string;
5
5
  content?: React.JSX.Element;
6
6
  onConfirm?: (confirm: boolean) => void;
7
+ windowBlur?: boolean;
7
8
  }
8
9
  export default IProps;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import "../../../assets/css/components/feedback/popover/styles.css";
3
+ import IProps from "./IProps";
4
+ declare const Popover: React.FC<IProps>;
5
+ export default Popover;
@@ -1,21 +1,21 @@
1
1
  "use client";
2
2
  import React, { useEffect, useRef, useState } from "react";
3
- import "../../../assets/css/components/feedback/confirm/confirm.css";
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 Confirm = ({ children, title, message, content, onConfirm }) => {
8
+ const Popover = ({ children, title, message, content, onConfirm, windowBlur }) => {
9
9
  // refs
10
- const _arConfirmWrapper = useRef(null);
11
- const _arConfirm = useRef(null);
12
- const _arConfirmElement = useRef(null);
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 (_arConfirm.current && !_arConfirm.current.contains(target))
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 (_arConfirmWrapper.current && _arConfirm.current && _arConfirmElement.current) {
28
- const confirmRect = _arConfirm.current.getBoundingClientRect();
29
- const elementRect = _arConfirmElement.current.getBoundingClientRect();
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
- _arConfirm.current.style.top = `${(elementRect.top > screenCenter
35
- ? elementRect.top - confirmRect.height + elementRect.height
34
+ _arPopover.current.style.top = `${(elementRect.top > screenCenter
35
+ ? elementRect.top - popoverRect.height + elementRect.height
36
36
  : elementRect.top) + sy}px`;
37
- _arConfirm.current.style.left = `${elementRect.left - confirmRect.width + sx - 10}px`;
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: _arConfirmWrapper, className: "ar-confirm-wrapper", role: "dialog" },
55
+ return (React.createElement("div", { ref: _arPopoverWrapper, className: "ar-popover-wrapper", role: "dialog" },
56
56
  open &&
57
- ReactDOM.createPortal(React.createElement("div", { ref: _arConfirm, className: "ar-confirm" },
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: _arConfirmElement, onClick: () => setOpen((prev) => !prev) }, children)));
70
+ React.createElement("div", { ref: _arPopoverElement, onClick: () => setOpen((prev) => !prev) }, children)));
71
71
  };
72
- export default Confirm;
72
+ export default Popover;
@@ -9,5 +9,6 @@ interface IProps extends Omit<IGlobalProps, "children" | "disabled">, ISizes, Om
9
9
  before?: string | number;
10
10
  after?: string | number;
11
11
  };
12
+ upperCase?: boolean;
12
13
  }
13
14
  export default IProps;
@@ -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,5 +1,5 @@
1
1
  import React from "react";
2
- import "../../../assets/css/components/form/switch/switch.css";
2
+ import "../../../assets/css/components/form/switch/styles.css";
3
3
  import IProps from "./IProps";
4
4
  declare const Switch: React.FC<IProps>;
5
5
  export default Switch;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import React, { useRef } from "react";
3
- import "../../../assets/css/components/form/switch/switch.css";
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, Confirm, Modal, Progress, Breadcrumb, Menu, Steps, Grid, Layout, };
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, Confirm, Modal, Progress,
42
+ Alert, Modal, Popover, Progress,
43
43
  // Navigation
44
44
  Breadcrumb, Menu, Steps,
45
45
  // Layout
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ar-design",
3
- "version": "0.1.71",
3
+ "version": "0.1.73",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,5 +0,0 @@
1
- import React from "react";
2
- import "../../../assets/css/components/feedback/confirm/confirm.css";
3
- import IProps from "./IProps";
4
- declare const Confirm: React.FC<IProps>;
5
- export default Confirm;