ar-design 0.4.63 → 0.4.65

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.
Files changed (31) hide show
  1. package/dist/assets/css/components/data-display/card/styles.css +2 -2
  2. package/dist/assets/css/components/data-display/dnd/styles.css +3 -3
  3. package/dist/assets/css/components/data-display/syntax-highlighter/syntax-highlighter.css +2 -2
  4. package/dist/assets/css/components/feedback/alert/styles.css +2 -2
  5. package/dist/assets/css/components/feedback/drawer/styles.css +3 -3
  6. package/dist/assets/css/components/feedback/modal/styles.css +15 -11
  7. package/dist/assets/css/components/feedback/progress/progress.css +3 -3
  8. package/dist/assets/css/components/form/button/styles.css +10 -7
  9. package/dist/assets/css/components/form/checkbox/checkbox.css +2 -2
  10. package/dist/assets/css/components/form/date-picker/date-picker.css +10 -10
  11. package/dist/assets/css/components/form/input/styles.css +15 -12
  12. package/dist/assets/css/components/form/radio/radio.css +2 -2
  13. package/dist/assets/css/components/form/select/styles.css +2 -2
  14. package/dist/assets/css/components/form/switch/styles.css +7 -3
  15. package/dist/assets/css/components/layout/layout.css +10 -10
  16. package/dist/assets/css/components/navigation/steps/styles.css +5 -3
  17. package/dist/assets/css/core/ar-core.css +25 -20
  18. package/dist/assets/css/core/utils.css +3 -0
  19. package/dist/components/data-display/diagram/index.js +1 -0
  20. package/dist/components/data-display/table/FilterPopup.js +8 -12
  21. package/dist/components/data-display/table/PropertiesPopup.js +10 -19
  22. package/dist/components/data-display/table/THeadCell.js +9 -8
  23. package/dist/components/data-display/table/body/TBody.js +54 -38
  24. package/dist/components/data-display/table/index.js +69 -176
  25. package/dist/components/feedback/popover/index.js +6 -0
  26. package/dist/components/feedback/tooltip/index.js +63 -16
  27. package/dist/components/form/date-picker/Props.d.ts +0 -1
  28. package/dist/components/form/input/otp/Otp.js +94 -79
  29. package/dist/components/form/radio/IProps.d.ts +0 -22
  30. package/dist/components/form/switch/IProps.d.ts +0 -11
  31. package/package.json +2 -2
@@ -1,3 +1,5 @@
1
+ @import url("./statuses.css");
2
+
1
3
  .ar-card {
2
4
  background-color: var(--white);
3
5
  border: solid 1px var(--light-400);
@@ -22,5 +24,3 @@
22
24
  padding: 1rem;
23
25
  }
24
26
  }
25
-
26
- @import url("./statuses.css");
@@ -1,3 +1,6 @@
1
+ @import url("./animations.css");
2
+ @import url("./shadow.css");
3
+
1
4
  .ar-dnd {
2
5
  display: flex;
3
6
  flex-direction: column;
@@ -67,6 +70,3 @@
67
70
  }
68
71
  }
69
72
  }
70
-
71
- @import url("./animations.css");
72
- @import url("./shadow.css");
@@ -1,3 +1,5 @@
1
+ @import url("./core/jsx.template.css");
2
+
1
3
  .ar-syntax {
2
4
  display: flex;
3
5
  flex-direction: column;
@@ -54,5 +56,3 @@
54
56
  font-size: 0.9rem;
55
57
  overflow-x: auto;
56
58
  }
57
-
58
- @import url("./core/jsx.template.css");
@@ -1,3 +1,5 @@
1
+ @import url("./statuses.css");
2
+
1
3
  .ar-alert {
2
4
  padding: 1rem;
3
5
  border-radius: var(--border-radius-sm);
@@ -57,5 +59,3 @@
57
59
  .ar-alert ul li ul {
58
60
  margin-left: 0.1rem;
59
61
  }
60
-
61
- @import url("./statuses.css");
@@ -1,3 +1,6 @@
1
+ @import url("./header.css");
2
+ @import url("./content.css");
3
+
1
4
  .ar-drawer-wrapper {
2
5
  position: fixed;
3
6
  inset: 0;
@@ -80,6 +83,3 @@
80
83
  right: 0px;
81
84
  }
82
85
  }
83
-
84
- @import url("./header.css");
85
- @import url("./content.css");
@@ -1,3 +1,12 @@
1
+ @import url("./header.css");
2
+ @import url("./content.css");
3
+ @import url("./footer.css");
4
+
5
+ /* Media Queries */
6
+ @import url("./media-queries/x-large.css");
7
+ @import url("./media-queries/medium.css");
8
+ @import url("./media-queries/small.css");
9
+
1
10
  .ar-modal-wrapper {
2
11
  position: fixed;
3
12
  inset: 0;
@@ -13,12 +22,16 @@
13
22
  .ar-modal-wrapper.opened {
14
23
  visibility: visible;
15
24
  opacity: 1;
16
- transition: visibility 250ms, opacity 250ms ease-in-out;
25
+ transition:
26
+ visibility 250ms,
27
+ opacity 250ms ease-in-out;
17
28
  }
18
29
  .ar-modal-wrapper.closed {
19
30
  visibility: hidden;
20
31
  opacity: 0;
21
- transition: visibility 250ms, opacity 250ms ease-in-out;
32
+ transition:
33
+ visibility 250ms,
34
+ opacity 250ms ease-in-out;
22
35
  }
23
36
  /* #endregion */
24
37
  /* Open or Close */
@@ -38,12 +51,3 @@
38
51
  .ar-modal-wrapper > .ar-modal.small {
39
52
  width: 25%;
40
53
  }
41
-
42
- @import url("./header.css");
43
- @import url("./content.css");
44
- @import url("./footer.css");
45
-
46
- /* Media Queries */
47
- @import url("./media-queries/x-large.css");
48
- @import url("./media-queries/medium.css");
49
- @import url("./media-queries/small.css");
@@ -1,3 +1,6 @@
1
+ @import url("./animations.css");
2
+ @import url("./statuses.css");
3
+
1
4
  .ar-progress {
2
5
  position: relative;
3
6
  display: block;
@@ -45,6 +48,3 @@
45
48
  border: solid 2.5px transparent;
46
49
  border-top-color: var(--black);
47
50
  }
48
-
49
- @import url("./animations.css");
50
- @import url("./statuses.css");
@@ -1,3 +1,9 @@
1
+ /* Core Css */
2
+ @import url("./core/shape.css");
3
+ @import url("./core/icon.css");
4
+ @import url("./core/position.css");
5
+ @import url("./core/size.css");
6
+
1
7
  .ar-button {
2
8
  position: relative;
3
9
  min-width: fit-content;
@@ -5,7 +11,10 @@
5
11
  font-family: var(--system);
6
12
  font-size: 1rem;
7
13
  cursor: pointer;
8
- transition: background-color 150ms, border 150ms, color 150ms ease-in-out;
14
+ transition:
15
+ background-color 150ms,
16
+ border 150ms,
17
+ color 150ms ease-in-out;
9
18
  outline: none;
10
19
  }
11
20
  .ar-button.disabled {
@@ -21,9 +30,3 @@
21
30
  align-items: center;
22
31
  text-wrap: nowrap;
23
32
  }
24
-
25
- /* Core Css */
26
- @import url("./core/shape.css");
27
- @import url("./core/icon.css");
28
- @import url("./core/position.css");
29
- @import url("./core/size.css");
@@ -1,3 +1,5 @@
1
+ @import url("./core/border.css");
2
+
1
3
  .ar-checkbox-wrapper {
2
4
  display: flex;
3
5
  justify-content: center;
@@ -49,5 +51,3 @@
49
51
  border-radius: var(--border-radius-pill);
50
52
  z-index: 1;
51
53
  }
52
-
53
- @import url("./core/border.css");
@@ -1,3 +1,13 @@
1
+ @import url("./calendar/calendar.css");
2
+ @import url("./calendar/header.css");
3
+ @import url("./calendar/content.css");
4
+ @import url("./calendar/footer.css");
5
+
6
+ @import url("./clock/clock.css");
7
+ @import url("./clock/header.css");
8
+ @import url("./clock/content.css");
9
+ @import url("./clock/footer.css");
10
+
1
11
  :root {
2
12
  --header-height: 2.75rem;
3
13
  --footer-height: 2.75rem;
@@ -24,13 +34,3 @@
24
34
  transition: top 250ms ease-in-out;
25
35
  z-index: 1;
26
36
  }
27
-
28
- @import url("./calendar/calendar.css");
29
- @import url("./calendar/header.css");
30
- @import url("./calendar/content.css");
31
- @import url("./calendar/footer.css");
32
-
33
- @import url("./clock/clock.css");
34
- @import url("./clock/header.css");
35
- @import url("./clock/content.css");
36
- @import url("./clock/footer.css");
@@ -1,3 +1,14 @@
1
+ /* PHONE */
2
+ @import url("./phone/styles.css");
3
+ /* OTP */
4
+ @import url("./otp/styles.css");
5
+
6
+ /* Core Css */
7
+ @import url("./core/icon.css");
8
+ @import url("./core/border.css");
9
+ @import url("./core/button.css");
10
+ @import url("./core/addon.css");
11
+
1
12
  .ar-input-wrapper {
2
13
  display: flex;
3
14
  flex-direction: row;
@@ -56,7 +67,10 @@
56
67
  font-size: 1rem;
57
68
  outline: none;
58
69
  box-sizing: border-box;
59
- transition: background 250ms, border 250ms, box-shadow 250ms ease-in-out;
70
+ transition:
71
+ background 250ms,
72
+ border 250ms,
73
+ box-shadow 250ms ease-in-out;
60
74
  }
61
75
 
62
76
  .handle-number-button {
@@ -104,14 +118,3 @@
104
118
  }
105
119
  }
106
120
  }
107
-
108
- /* PHONE */
109
- @import url("./phone/styles.css");
110
- /* OTP */
111
- @import url("./otp/styles.css");
112
-
113
- /* Core Css */
114
- @import url("./core/icon.css");
115
- @import url("./core/border.css");
116
- @import url("./core/button.css");
117
- @import url("./core/addon.css");
@@ -1,3 +1,5 @@
1
+ @import url("./core/border.css");
2
+
1
3
  .ar-radio-wrapper {
2
4
  display: flex;
3
5
  align-items: center;
@@ -65,5 +67,3 @@
65
67
  font-size: 0.8rem;
66
68
  font-weight: 400;
67
69
  }
68
-
69
- @import url("./core/border.css");
@@ -1,3 +1,5 @@
1
+ @import url("./options.css");
2
+
1
3
  .ar-select-wrapper {
2
4
  position: relative;
3
5
  width: 100%;
@@ -180,5 +182,3 @@
180
182
  }
181
183
  }
182
184
  }
183
-
184
- @import url("./options.css");
@@ -1,3 +1,5 @@
1
+ @import url("./core/border.css");
2
+
1
3
  .ar-switch-wrapper {
2
4
  display: flex;
3
5
  flex-wrap: nowrap;
@@ -29,7 +31,11 @@
29
31
  height: 1rem;
30
32
  border: solid 1px var(--gray-300);
31
33
  box-shadow: 0 0 0 0 rgba(var(--black-rgb), 0.2);
32
- transition: left 150ms, width 150ms 150ms, height 150ms 150ms, box-shadow 150ms 150ms ease-in-out;
34
+ transition:
35
+ left 150ms,
36
+ width 150ms 150ms,
37
+ height 150ms 150ms,
38
+ box-shadow 150ms 150ms ease-in-out;
33
39
  }
34
40
  }
35
41
 
@@ -53,5 +59,3 @@
53
59
  }
54
60
  }
55
61
  }
56
-
57
- @import url("./core/border.css");
@@ -1,3 +1,13 @@
1
+ /* Media Queries */
2
+ /* .... */
3
+ @import url("./media-queries/xxx-large.css");
4
+ @import url("./media-queries/xx-large.css");
5
+ @import url("./media-queries/x-large.css");
6
+ @import url("./media-queries/large.css");
7
+ @import url("./media-queries/medium.css");
8
+ @import url("./media-queries/small.css");
9
+ @import url("./media-queries/x-small.css");
10
+
1
11
  .ar-layout {
2
12
  display: flex;
3
13
  flex-direction: row;
@@ -118,13 +128,3 @@
118
128
  }
119
129
  }
120
130
  }
121
-
122
- /* Media Queries */
123
- /* .... */
124
- @import url("./media-queries/xxx-large.css");
125
- @import url("./media-queries/xx-large.css");
126
- @import url("./media-queries/x-large.css");
127
- @import url("./media-queries/large.css");
128
- @import url("./media-queries/medium.css");
129
- @import url("./media-queries/small.css");
130
- @import url("./media-queries/x-small.css");
@@ -1,3 +1,5 @@
1
+ @import url("./animation.css");
2
+
1
3
  .ar-steps > .steps {
2
4
  display: flex;
3
5
  flex-direction: row;
@@ -80,7 +82,9 @@
80
82
 
81
83
  .ar-steps > .steps > .item > .item-icon > .in-progress {
82
84
  background-color: var(--primary);
83
- box-shadow: 0 0 0 4px var(--white), 0 0 0 5px rgba(var(--primary-rgb), 0.5);
85
+ box-shadow:
86
+ 0 0 0 4px var(--white),
87
+ 0 0 0 5px rgba(var(--primary-rgb), 0.5);
84
88
  }
85
89
  .ar-steps > .steps > .item > .item-icon > .in-progress::before {
86
90
  display: inline-block;
@@ -140,5 +144,3 @@
140
144
  padding-top: 2.5rem;
141
145
  border-top: solid 4px var(--gray-100);
142
146
  }
143
-
144
- @import url("./animation.css");
@@ -1,3 +1,13 @@
1
+ @import url("./color-palette.css");
2
+ @import url("./animation.css");
3
+ @import url("./variants/filled.css");
4
+ @import url("./variants/surface.css");
5
+ @import url("./variants/outlined.css");
6
+ @import url("./variants/dashed.css");
7
+ @import url("./variants/borderless.css");
8
+ @import url("./variants/border.css");
9
+ @import url("./utils.css");
10
+
1
11
  *,
2
12
  *::before,
3
13
  *::after {
@@ -24,7 +34,6 @@
24
34
  /* Height */
25
35
 
26
36
  /* #region Color Palette */
27
- @import url("./color-palette.css");
28
37
 
29
38
  :root {
30
39
  --white: #fff;
@@ -103,46 +112,47 @@
103
112
  /* Box Shadow */
104
113
 
105
114
  /* #region Variants */
106
- @import url("./animation.css");
107
115
 
108
116
  .filled {
109
117
  border-color: transparent;
110
- transition: border 250ms, box-shadow 250ms ease-in-out;
118
+ transition:
119
+ border 250ms,
120
+ box-shadow 250ms ease-in-out;
111
121
  }
112
122
 
113
- @import url("./variants/filled.css");
114
-
115
123
  .surface {
116
- transition: border 250ms, box-shadow 250ms ease-in-out;
124
+ transition:
125
+ border 250ms,
126
+ box-shadow 250ms ease-in-out;
117
127
  }
118
128
 
119
- @import url("./variants/surface.css");
120
-
121
129
  .outlined {
122
130
  background-color: transparent;
123
131
  border-style: solid;
124
132
  border-width: 1px !important;
125
133
  border-color: transparent;
126
- transition: border 250ms, box-shadow 250ms ease-in-out;
134
+ transition:
135
+ border 250ms,
136
+ box-shadow 250ms ease-in-out;
127
137
  }
128
138
 
129
- @import url("./variants/outlined.css");
130
-
131
139
  .dashed {
132
140
  background-color: transparent;
133
141
  border-style: dashed;
134
142
  border-width: 1px !important;
135
143
  border-color: transparent;
136
- transition: border 250ms, box-shadow 250ms ease-in-out;
144
+ transition:
145
+ border 250ms,
146
+ box-shadow 250ms ease-in-out;
137
147
  }
138
148
 
139
- @import url("./variants/dashed.css");
140
-
141
149
  .borderless {
142
150
  background-color: transparent;
143
151
  border-width: 1px;
144
152
  border-color: transparent;
145
- transition: border 250ms, box-shadow 250ms ease-in-out;
153
+ transition:
154
+ border 250ms,
155
+ box-shadow 250ms ease-in-out;
146
156
  }
147
157
  .borderless:disabled {
148
158
  background-color: var(--gray-100) !important;
@@ -151,9 +161,6 @@
151
161
  cursor: no-drop !important;
152
162
  }
153
163
 
154
- @import url("./variants/borderless.css");
155
- @import url("./variants/border.css");
156
-
157
164
  :is(input) {
158
165
  border: solid 1px transparent;
159
166
  }
@@ -183,5 +190,3 @@ input[type="date"]::-webkit-calendar-picker-indicator {
183
190
  }
184
191
  /* #endregion */
185
192
  /* Variants */
186
-
187
- @import url("./utils.css");
@@ -11,3 +11,6 @@
11
11
  .justify-content-end {
12
12
  justify-content: flex-end;
13
13
  }
14
+ .align-items-center {
15
+ align-items: center;
16
+ }
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import React, { useEffect, useMemo, useRef, useState } from "react";
2
3
  import "../../../assets/css/components/data-display/diagram/styles.css";
3
4
  import Grid from "../grid-system";
@@ -21,34 +21,30 @@ const FilterPopup = ({ children, refs, states, coordinate }) => {
21
21
  const handleClose = () => states.open.set(false);
22
22
  // useEffects
23
23
  useEffect(() => {
24
- refs.buttons.current.map((button) => {
24
+ const currentButtons = refs.buttons.current;
25
+ currentButtons.forEach((button) => {
25
26
  if (button)
26
27
  button.addEventListener("click", handleOpen);
27
28
  });
28
29
  return () => {
29
- refs.buttons.current.map((button) => {
30
+ currentButtons.forEach((button) => {
30
31
  if (button)
31
32
  button.removeEventListener("click", handleOpen);
32
33
  });
33
34
  };
34
35
  }, [refs.buttons]);
35
36
  useEffect(() => {
36
- const firstFilterButton = refs.buttons.current[0];
37
- if (firstFilterButton) {
38
- const rect = firstFilterButton.getBoundingClientRect();
39
- coordinate.x = rect.left;
40
- coordinate.y = rect.top + rect.height;
41
- }
42
- if (refs.tableContent.current) {
43
- refs.tableContent.current.addEventListener("scroll", handleClose);
37
+ const tableContentRef = refs.tableContent.current;
38
+ if (tableContentRef) {
39
+ tableContentRef.addEventListener("scroll", handleClose);
44
40
  }
45
41
  document.addEventListener("click", handleClickOutSide);
46
42
  document.addEventListener("keydown", handleKeys);
47
43
  return () => {
48
44
  document.removeEventListener("click", handleClickOutSide);
49
45
  document.removeEventListener("keydown", handleKeys);
50
- if (refs.tableContent.current) {
51
- refs.tableContent.current.removeEventListener("scroll", handleClose);
46
+ if (tableContentRef) {
47
+ tableContentRef.removeEventListener("scroll", handleClose);
52
48
  }
53
49
  };
54
50
  }, []);
@@ -21,14 +21,9 @@ function PropertiesPopup({ refs, states, methods, coordinate, config }) {
21
21
  return (columnKey, direction) => {
22
22
  if (!columnKey)
23
23
  return;
24
- states.sort.set((prev) => {
25
- const index = prev.findIndex((s) => s.key === columnKey);
26
- if (index !== -1)
27
- return [{ key: columnKey, direction }];
28
- return [{ key: columnKey, direction }];
29
- });
24
+ states.sort.set(() => [{ key: columnKey, direction }]);
30
25
  };
31
- }, []);
26
+ }, [states.sort]);
32
27
  const handleKeys = (event) => {
33
28
  const key = event.key;
34
29
  if (key === "Escape")
@@ -44,34 +39,30 @@ function PropertiesPopup({ refs, states, methods, coordinate, config }) {
44
39
  };
45
40
  // useEffects
46
41
  useEffect(() => {
47
- refs.buttons.current.map((button) => {
42
+ const currentButtons = refs.buttons.current;
43
+ currentButtons.forEach((button) => {
48
44
  if (button)
49
45
  button.addEventListener("click", handleOpen);
50
46
  });
51
47
  return () => {
52
- refs.buttons.current.map((button) => {
48
+ currentButtons.forEach((button) => {
53
49
  if (button)
54
50
  button.removeEventListener("click", handleOpen);
55
51
  });
56
52
  };
57
53
  }, [refs.buttons]);
58
54
  useEffect(() => {
59
- const firstFilterButton = refs.buttons.current[0];
60
- if (firstFilterButton) {
61
- const rect = firstFilterButton.getBoundingClientRect();
62
- coordinate.x = rect.left;
63
- coordinate.y = rect.top + rect.height;
64
- }
65
- if (refs.tableContent.current) {
66
- refs.tableContent.current.addEventListener("scroll", handleClose);
55
+ const tableContentRef = refs.tableContent.current;
56
+ if (tableContentRef) {
57
+ tableContentRef.addEventListener("scroll", handleClose);
67
58
  }
68
59
  document.addEventListener("click", handleClickOutSide);
69
60
  document.addEventListener("keydown", handleKeys);
70
61
  return () => {
71
62
  document.removeEventListener("click", handleClickOutSide);
72
63
  document.removeEventListener("keydown", handleKeys);
73
- if (refs.tableContent.current) {
74
- refs.tableContent.current.removeEventListener("scroll", handleClose);
64
+ if (tableContentRef) {
65
+ tableContentRef.removeEventListener("scroll", handleClose);
75
66
  }
76
67
  };
77
68
  }, []);
@@ -5,7 +5,9 @@ import { ExtractKey } from "./Helpers";
5
5
  const MemoizedTHeadCell = function ({ refs, states, methods, columns, config, }) {
6
6
  return (React.createElement(React.Fragment, null, columns.map((c, cIndex) => {
7
7
  const { isProperties = true } = c.config ?? {};
8
- const _direction = states.sort.get.find((s) => s.key === c.key)?.direction;
8
+ // Orijinal c.key araması optimize edildi ve string formatına güvenli şekilde çekildi
9
+ const columnKeyString = String(ExtractKey(c.key) ?? cIndex);
10
+ const _direction = states.sort.get.find((s) => s.key === columnKeyString)?.direction;
9
11
  let _className = [];
10
12
  if (c.config?.sticky)
11
13
  _className.push(`sticky-${c.config.sticky}`);
@@ -14,14 +16,13 @@ const MemoizedTHeadCell = function ({ refs, states, methods, columns, config, })
14
16
  if (c.config?.alignContent) {
15
17
  _className.push(`align-content-${c.config.alignContent}`);
16
18
  }
17
- return (React.createElement("th", { key: `column-${cIndex}-${Math.random()}`, ...(_className.length > 0 && {
18
- className: `${_className.map((c) => c).join(" ")}`,
19
+ return (React.createElement("th", { key: `column-head-${columnKeyString}`, ...(_className.length > 0 && {
20
+ className: `${_className.join(" ")}`,
19
21
  }), ...(c.config?.width
20
22
  ? {
21
23
  style: { minWidth: c.config.width, maxWidth: c.config.width },
22
24
  }
23
- : // : { style: { maxWidth: thWidths[cIndex], minWidth: thWidths[cIndex] } })}
24
- { style: {} }), ...(c.config?.sticky && {
25
+ : { style: {} }), ...(c.config?.sticky && {
25
26
  "data-sticky-position": c.config.sticky,
26
27
  }) },
27
28
  React.createElement("div", null,
@@ -31,9 +32,9 @@ const MemoizedTHeadCell = function ({ refs, states, methods, columns, config, })
31
32
  _direction === "desc" && React.createElement(ARIcon, { icon: "ArrowDown" }))),
32
33
  c.title),
33
34
  config.isProperties && isProperties && (React.createElement("span", { ref: (element) => {
34
- if (!element)
35
- return;
36
- refs.propertiesButton.current[cIndex] = element;
35
+ if (element) {
36
+ refs.propertiesButton.current[cIndex] = element;
37
+ }
37
38
  }, className: "properties-field", "data-properties-button": "true", onClick: (event) => {
38
39
  event.preventDefault();
39
40
  event.stopPropagation();