@harjs/react-ui 1.1.10 → 1.1.12

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 (24) hide show
  1. package/dist/assets/css/components/data-display/chip/styles.css +1 -0
  2. package/dist/assets/css/components/form/checkbox/color.checked.css +1020 -1024
  3. package/dist/assets/css/components/form/checkbox/color.radio-checked.css +1150 -1154
  4. package/dist/assets/css/components/form/checkbox/color.radio-unchecked.css +727 -735
  5. package/dist/assets/css/components/form/checkbox/color.unchecked.css +727 -735
  6. package/dist/assets/css/components/form/checkbox/css.cjs +4 -4
  7. package/dist/assets/css/components/form/input/addon.css +23 -15
  8. package/dist/assets/css/components/form/input/color.addon.css +711 -0
  9. package/dist/assets/css/components/form/input/css.cjs +4 -0
  10. package/dist/assets/css/components/form/input/styles.css +7 -0
  11. package/dist/assets/css/components/form/input/templates/color.addon.template.css +70 -0
  12. package/dist/assets/css/components/form/select/color.css +635 -0
  13. package/dist/assets/css/components/form/select/css.cjs +43 -0
  14. package/dist/assets/css/components/form/select/options.css +121 -100
  15. package/dist/assets/css/components/form/select/radius.css +45 -0
  16. package/dist/assets/css/components/form/select/size.css +35 -0
  17. package/dist/assets/css/components/form/select/styles.css +8 -6
  18. package/dist/assets/css/components/form/select/templates/color.template.css +62 -0
  19. package/dist/assets/css/components/form/select/templates/radius.template.css +3 -0
  20. package/dist/assets/css/components/form/select/templates/size.template.css +4 -0
  21. package/dist/components/form/checkbox/index.js +1 -3
  22. package/dist/components/form/input/index.js +1 -1
  23. package/dist/components/form/select/index.js +33 -24
  24. package/package.json +1 -1
@@ -0,0 +1,43 @@
1
+ const fs = require("fs");
2
+ const path = require("path");
3
+ const { execSync } = require("child_process");
4
+
5
+ const colors = ["blue", "purple", "pink", "red", "orange", "yellow", "green", "teal", "cyan", "gray"];
6
+ const radiuses = ["0", "2", "4", "6", "8", "12", "16", "20", "40", "full"];
7
+ const sizes = [
8
+ { name: "xs", height: "2rem", fontSize: "0.75rem" },
9
+ { name: "sm", height: "2.25rem", fontSize: "0.875rem" },
10
+ { name: "md", height: "2.5rem", fontSize: "0.875rem" },
11
+ { name: "lg", height: "2.75rem", fontSize: "1rem" },
12
+ { name: "xl", height: "3rem", fontSize: "1rem" },
13
+ { name: "2xl", height: "3.25rem", fontSize: "1.25rem" },
14
+ ];
15
+
16
+ const colorTemplate = fs.readFileSync("templates/color.template.css", "utf-8");
17
+ const radiusTemplate = fs.readFileSync("templates/radius.template.css", "utf-8");
18
+ const sizeTemplate = fs.readFileSync("templates/size.template.css", "utf-8");
19
+
20
+ let colorOutput = `.har-select { > .wrapper { > .selections {${colors.map((color) => colorTemplate.replace(/__COLOR__/g, color)).join("\n")}}}}`;
21
+ let radiusOutput = `.har-select { > .wrapper { > .selections {${radiuses.map((radius) => radiusTemplate.replace(/__RADIUS__/g, radius)).join("\n")}}}}`;
22
+ let sizeOutput = `.har-select { > .wrapper { > .selections {${sizes
23
+ .map((size) =>
24
+ sizeTemplate
25
+ .replace(/__SIZE__/g, `size-${size.name}`)
26
+ .replace(/__SIZE_NUMBER__/g, size.height)
27
+ .replace(/__FONT_SIZE__/g, size.fontSize),
28
+ )
29
+ .join("\n")}}}}`;
30
+
31
+ fs.writeFileSync("color.css", colorOutput);
32
+ fs.writeFileSync("radius.css", radiusOutput);
33
+ fs.writeFileSync("size.css", sizeOutput);
34
+
35
+ try {
36
+ execSync(`npx prettier --write color.css`, { stdio: "inherit" });
37
+ execSync(`npx prettier --write radius.css`, { stdio: "inherit" });
38
+ execSync(`npx prettier --write size.css`, { stdio: "inherit" });
39
+
40
+ execSync("npm run no-css-build", { stdio: "inherit" });
41
+ } catch (err) {
42
+ console.error("⚠️ Prettier çalıştırılamadı:", err.message);
43
+ }
@@ -1,4 +1,4 @@
1
- .ar-select-options {
1
+ .har-select-options {
2
2
  visibility: hidden;
3
3
  opacity: 0;
4
4
  position: absolute;
@@ -13,108 +13,129 @@
13
13
  visibility 250ms,
14
14
  opacity 250ms,
15
15
  transform 250ms ease-in-out;
16
- }
17
- .ar-select-options.top {
18
- box-shadow: 0 5px 15px -2.5px var(--black-10);
19
- }
20
- .ar-select-options.bottom {
21
- box-shadow: 0 -5px 15px -2.5px var(--black-10);
22
- }
23
16
 
24
- .ar-select-options > .search-field {
25
- padding: 0.5rem;
26
- border-bottom: solid 1px var(--gray-200);
27
- }
17
+ &.top {
18
+ box-shadow: 0 5px 15px -2.5px var(--black-10);
19
+ }
28
20
 
29
- .ar-select-options > ul {
30
- width: 100%;
31
- max-height: calc(var(--input-height) * 5);
32
- overflow-x: hidden;
33
- overflow-y: auto;
34
- }
35
- .ar-select-options > ul > li {
36
- display: flex;
37
- align-items: center;
38
- gap: 0 0.5rem;
39
- padding: 0 1rem;
40
- height: var(--input-height);
41
- cursor: pointer;
42
- }
43
- .ar-select-options > ul > li:hover {
44
- background-color: var(--gray-200);
45
- }
46
- .ar-select-options > ul > li.selectedItem {
47
- /* background-color: rgba(var(--success-rgb), 0.1); */
48
- }
49
- .ar-select-options > ul > li.navigate-with-arrow-keys {
50
- background-color: var(--gray-100);
51
- }
21
+ &.bottom {
22
+ box-shadow: 0 -5px 15px -2.5px var(--black-10);
23
+ }
52
24
 
53
- .ar-select-options > .no-options-field,
54
- .ar-select-options > ul > li > .no-options-field {
55
- width: 100%;
56
- padding: 0.5rem 1rem;
57
- }
58
- .ar-select-options > ul > li > .no-options-field {
59
- padding: 0 !important;
60
- }
61
- .ar-select-options > .no-options-field > .text,
62
- .ar-select-options > ul > li > .no-options-field > .text {
63
- color: var(--gray-500);
64
- }
65
- .ar-select-options > .no-options-field > .add-item,
66
- .ar-select-options > ul > li > .no-options-field > .add-item {
67
- display: flex;
68
- align-items: center;
69
- position: relative;
70
- background-color: rgba(var(--primary-rgb), 0.05);
71
- padding: 0.25rem 0.5rem;
72
- border-radius: var(--radius-4);
73
- border-left: solid 2px var(--primary);
74
- color: var(--primary);
75
- cursor: pointer;
76
- }
77
- .ar-select-options > .no-options-field > .add-item::before,
78
- .ar-select-options > ul > li > .no-options-field > .add-item::before {
79
- position: absolute;
80
- top: 50%;
81
- transform: translateY(-50%);
82
- left: 0;
83
- content: "";
84
- border: solid 5px transparent;
85
- border-left-color: var(--primary);
86
- }
87
- .ar-select-options > .no-options-field > .add-item > .plus,
88
- .ar-select-options > ul > li > .no-options-field > .add-item > .plus {
89
- display: inline-block;
90
- position: relative;
91
- background-color: var(--primary);
92
- min-width: 1rem;
93
- height: 1rem;
94
- margin-right: 0.25rem;
95
- border-radius: var(--radius-full);
96
- color: var(--white-100);
97
- text-align: center;
98
- line-height: 1rem;
99
- }
25
+ > .search-field {
26
+ padding: 0.5rem;
27
+ border-bottom: solid 1px var(--gray-200);
28
+ }
100
29
 
101
- /* .ar-select-options:is(.opened) {
102
- visibility: visible;
103
- opacity: 1;
104
- transform: scaleY(1);
105
- }
106
- .ar-select-options:is(.closed) {
107
- visibility: hidden;
108
- opacity: 0;
109
- transform: scaleY(0.8);
110
- height: 0;
111
- }
30
+ > .no-options-field {
31
+ width: 100%;
32
+ padding: 0.5rem 1rem;
33
+
34
+ > .text {
35
+ color: var(--gray-500);
36
+ }
37
+
38
+ > .add-item {
39
+ display: flex;
40
+ align-items: center;
41
+ position: relative;
42
+ background-color: rgba(var(--primary-rgb), 0.05);
43
+ padding: 0.25rem 0.5rem;
44
+ border-radius: var(--radius-4);
45
+ border-left: solid 2px var(--primary);
46
+ color: var(--primary);
47
+ cursor: pointer;
48
+
49
+ &::before {
50
+ position: absolute;
51
+ top: 50%;
52
+ transform: translateY(-50%);
53
+ left: 0;
54
+ content: "";
55
+ border: solid 5px transparent;
56
+ border-left-color: var(--primary);
57
+ }
58
+
59
+ > .plus {
60
+ display: inline-block;
61
+ position: relative;
62
+ background-color: var(--primary);
63
+ min-width: 1rem;
64
+ height: 1rem;
65
+ margin-right: 0.25rem;
66
+ border-radius: var(--radius-full);
67
+ color: var(--white-100);
68
+ text-align: center;
69
+ line-height: 1rem;
70
+ }
71
+ }
72
+ }
73
+
74
+ > ul {
75
+ width: 100%;
76
+ max-height: calc(var(--input-height) * 5);
77
+ overflow-x: hidden;
78
+ overflow-y: auto;
79
+
80
+ > li {
81
+ display: flex;
82
+ align-items: center;
83
+ gap: 0 0.5rem;
84
+ padding: 0 1rem;
85
+ height: var(--input-height);
86
+ cursor: pointer;
87
+
88
+ &:hover {
89
+ background-color: var(--gray-200);
90
+ }
91
+
92
+ &.navigate-with-arrow-keys {
93
+ background-color: var(--gray-100);
94
+ }
95
+
96
+ > .no-options-field {
97
+ width: 100%;
98
+ padding: 0;
99
+
100
+ > .text {
101
+ color: var(--gray-500);
102
+ }
103
+
104
+ > .add-item {
105
+ display: flex;
106
+ align-items: center;
107
+ position: relative;
108
+ background-color: rgba(var(--primary-rgb), 0.05);
109
+ padding: 0.25rem 0.5rem;
110
+ border-radius: var(--radius-4);
111
+ border-left: solid 2px var(--primary);
112
+ color: var(--primary);
113
+ cursor: pointer;
114
+
115
+ &::before {
116
+ position: absolute;
117
+ top: 50%;
118
+ transform: translateY(-50%);
119
+ left: 0;
120
+ content: "";
121
+ border: solid 5px transparent;
122
+ border-left-color: var(--primary);
123
+ }
112
124
 
113
- .ar-select-options.top:is(.opened, .closed),
114
- .ar-select-options.top:is(.opened, .closed) {
115
- transform-origin: top;
125
+ > .plus {
126
+ display: inline-block;
127
+ position: relative;
128
+ background-color: var(--primary);
129
+ min-width: 1rem;
130
+ height: 1rem;
131
+ margin-right: 0.25rem;
132
+ border-radius: var(--radius-full);
133
+ color: var(--white-100);
134
+ text-align: center;
135
+ line-height: 1rem;
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
116
141
  }
117
- .ar-select-options.bottom:is(.opened, .closed),
118
- .ar-select-options.bottom:is(.opened, .closed) {
119
- transform-origin: bottom;
120
- } */
@@ -0,0 +1,45 @@
1
+ .har-select {
2
+ > .wrapper {
3
+ > .selections {
4
+ &.radius-0 {
5
+ border-radius: var(--radius-0);
6
+ }
7
+
8
+ &.radius-2 {
9
+ border-radius: var(--radius-2);
10
+ }
11
+
12
+ &.radius-4 {
13
+ border-radius: var(--radius-4);
14
+ }
15
+
16
+ &.radius-6 {
17
+ border-radius: var(--radius-6);
18
+ }
19
+
20
+ &.radius-8 {
21
+ border-radius: var(--radius-8);
22
+ }
23
+
24
+ &.radius-12 {
25
+ border-radius: var(--radius-12);
26
+ }
27
+
28
+ &.radius-16 {
29
+ border-radius: var(--radius-16);
30
+ }
31
+
32
+ &.radius-20 {
33
+ border-radius: var(--radius-20);
34
+ }
35
+
36
+ &.radius-40 {
37
+ border-radius: var(--radius-40);
38
+ }
39
+
40
+ &.radius-full {
41
+ border-radius: var(--radius-full);
42
+ }
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,35 @@
1
+ .har-select {
2
+ > .wrapper {
3
+ > .selections {
4
+ &.size-xs {
5
+ min-height: 2rem !important;
6
+ font-size: 0.75rem;
7
+ }
8
+
9
+ &.size-sm {
10
+ min-height: 2.25rem !important;
11
+ font-size: 0.875rem;
12
+ }
13
+
14
+ &.size-md {
15
+ min-height: 2.5rem !important;
16
+ font-size: 0.875rem;
17
+ }
18
+
19
+ &.size-lg {
20
+ min-height: 2.75rem !important;
21
+ font-size: 1rem;
22
+ }
23
+
24
+ &.size-xl {
25
+ min-height: 3rem !important;
26
+ font-size: 1rem;
27
+ }
28
+
29
+ &.size-2xl {
30
+ min-height: 3.25rem !important;
31
+ font-size: 1.25rem;
32
+ }
33
+ }
34
+ }
35
+ }
@@ -1,11 +1,14 @@
1
+ @import url("./color.css");
1
2
  @import url("./options.css");
3
+ @import url("./radius.css");
4
+ @import url("./size.css");
2
5
 
3
- .ar-select-wrapper {
6
+ .har-select-wrapper {
4
7
  position: relative;
5
8
  width: 100%;
6
9
  user-select: none;
7
10
 
8
- > .ar-select {
11
+ > .har-select {
9
12
  display: flex;
10
13
  flex-direction: column;
11
14
  gap: 0.25rem;
@@ -77,11 +80,11 @@
77
80
  }
78
81
  }
79
82
 
80
- > .ar-input-wrapper {
83
+ > .har-input-wrapper {
81
84
  white-space: nowrap;
82
85
  text-overflow: ellipsis;
83
86
 
84
- > .ar-input {
87
+ > .har-input {
85
88
  white-space: nowrap;
86
89
  text-overflow: ellipsis;
87
90
 
@@ -148,7 +151,6 @@
148
151
  top: calc(var(--input-height) / 2);
149
152
  transform: translateY(-50%);
150
153
  right: 2rem;
151
- background-color: var(--black-30);
152
154
  backdrop-filter: blur(5px);
153
155
  width: 1rem;
154
156
  height: 1rem;
@@ -169,7 +171,7 @@
169
171
 
170
172
  &::before {
171
173
  content: "x";
172
- color: var(--white-100);
174
+ color: var(--red-500);
173
175
  font-size: 0.75rem;
174
176
  }
175
177
  }
@@ -0,0 +1,62 @@
1
+ &.__COLOR__ {
2
+ &.filled {
3
+ background-color: var(--__COLOR__-100);
4
+ border: var(--stroke-1) solid var(--__COLOR__-300);
5
+
6
+ &:focus {
7
+ border: var(--stroke-1) solid var(--__COLOR__-500);
8
+ }
9
+
10
+ &::placeholder {
11
+ color: var(--__COLOR__-400);
12
+ }
13
+ }
14
+
15
+ &.surface-borderless {
16
+ background-color: var(--__COLOR__-100);
17
+
18
+ &:focus {
19
+ background-color: transparent;
20
+ box-shadow: 0 0 0 2.5px var(--__COLOR__-200);
21
+ }
22
+
23
+ &::placeholder {
24
+ color: var(--__COLOR__-400);
25
+ }
26
+ }
27
+
28
+ &.outlined {
29
+ background-color: transparent;
30
+ border: var(--stroke-1) solid var(--__COLOR__-300);
31
+
32
+ &:focus {
33
+ box-shadow: 0 0 0 2.5px var(--__COLOR__-200);
34
+ }
35
+
36
+ &::placeholder {
37
+ color: var(--__COLOR__-400);
38
+ }
39
+ }
40
+
41
+ &.dashed {
42
+ background-color: transparent;
43
+ border: var(--stroke-1) dashed var(--__COLOR__-300);
44
+
45
+ &:focus {
46
+ box-shadow: 0 0 0 2.5px var(--__COLOR__-200);
47
+ }
48
+
49
+ &::placeholder {
50
+ color: var(--__COLOR__-400);
51
+ }
52
+ }
53
+
54
+ &.borderless {
55
+ background-color: transparent;
56
+ border: var(--stroke-1) solid transparent;
57
+
58
+ &::placeholder {
59
+ color: var(--__COLOR__-400);
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,3 @@
1
+ &.radius-__RADIUS__ {
2
+ border-radius: var(--radius-__RADIUS__);
3
+ }
@@ -0,0 +1,4 @@
1
+ &.__SIZE__ {
2
+ min-height: __SIZE_NUMBER__ !important;
3
+ font-size: __FONT_SIZE__;
4
+ }
@@ -7,9 +7,7 @@ const Checkbox = forwardRef(({ label, variant, color = "blue", border = { radius
7
7
  const _checkbox = useRef(null);
8
8
  const _checkboxClassName = ["har-checkbox"];
9
9
  const _innerRef = useRef(null);
10
- _checkboxClassName.push(...Utils.GetClassName(variant ?? "outlined", undefined, validation?.text ? "red" : (color ?? "blue"), border ?? { radius: "4" }, undefined, undefined, attributes.className));
11
- if (size)
12
- _checkboxClassName.push(size);
10
+ _checkboxClassName.push(...Utils.GetClassName(variant ?? "outlined", undefined, validation?.text ? "red" : (color ?? "blue"), border ?? { radius: "4" }, size, undefined, attributes.className));
13
11
  if (attributes.disabled)
14
12
  _checkboxClassName.push("disabled");
15
13
  // hooks
@@ -100,7 +100,7 @@ const BaseInput = forwardRef(({ children, variant = "outlined", color = "gray",
100
100
  setLabelWidth(width);
101
101
  }
102
102
  }, [value, attributes.placeholder]);
103
- return (React.createElement("div", { className: _wrapperClassName.map((c) => c).join(" ") },
103
+ return (React.createElement("div", { className: _wrapperClassName.map((c) => c).join(" "), ...(validation?.text ? { style: { marginBottom: "var(--space-20)" } } : {}) },
104
104
  renderAddon("before"),
105
105
  React.createElement("div", { className: "har-input" },
106
106
  renderIcon() && React.createElement("div", { className: "icon-element" }, renderIcon()),
@@ -6,7 +6,9 @@ import Chip from "../../data-display/chip";
6
6
  import Checkbox from "../checkbox";
7
7
  import Utils from "../../../libs/infrastructure/shared/Utils";
8
8
  import ReactDOM from "react-dom";
9
- const Select = ({ variant = "outlined", status, color = "gray", border = { radius: "4" }, style, options, value, onChange, onSearch, onClick, onCreate, multiple, placeholder, validation, upperCase, disabled, readOnly, config = { clear: true, validation: { text: "visible" } }, }) => {
9
+ import Button from "../button";
10
+ const Select = ({ variant = "outlined", status, color = "gray", border = { radius: "4" }, size, style, options, value, onChange, onSearch, onClick, onCreate, multiple, placeholder, validation, upperCase, disabled, readOnly, config = { clear: true, validation: { text: "visible" } }, }) => {
11
+ const _mWrapperClassName = ["wrapper"];
10
12
  const _selectionClassName = ["selections"];
11
13
  // refs
12
14
  const _arSelect = useRef(null);
@@ -28,7 +30,7 @@ const Select = ({ variant = "outlined", status, color = "gray", border = { radiu
28
30
  // options referans kararlılığı için JSON key
29
31
  // eslint-disable-next-line react-hooks/exhaustive-deps
30
32
  const optionsKey = useMemo(() => JSON.stringify(options), [options]);
31
- _selectionClassName.push(...Utils.GetClassName(variant, undefined, validation?.text ? "red" : "gray", border, undefined, undefined, undefined));
33
+ _selectionClassName.push(...Utils.GetClassName(variant, undefined, validation?.text ? "red" : "gray", border, size, undefined, undefined));
32
34
  // methods
33
35
  const handleClickOutSide = (event) => {
34
36
  const target = event.target;
@@ -188,7 +190,6 @@ const Select = ({ variant = "outlined", status, color = "gray", border = { radiu
188
190
  };
189
191
  // eslint-disable-next-line react-hooks/exhaustive-deps
190
192
  }, [optionsOpen]);
191
- // arama metni değiştiğinde filtrele
192
193
  useEffect(() => {
193
194
  if (searchText.length > 0 && onSearch) {
194
195
  onSearch(searchText);
@@ -227,9 +228,9 @@ const Select = ({ variant = "outlined", status, color = "gray", border = { radiu
227
228
  });
228
229
  }, [navigationIndex]);
229
230
  const handleBlur = () => setOptionsOpen(false);
230
- return (React.createElement("div", { ref: _arSelect, className: "ar-select-wrapper" },
231
- React.createElement("div", { ref: _multipleInput, className: "ar-select" },
232
- multiple ? (React.createElement("div", { className: "wrapper" },
231
+ return (React.createElement("div", { ref: _arSelect, className: "har-select-wrapper" },
232
+ React.createElement("div", { ref: _multipleInput, className: "har-select" },
233
+ multiple ? (React.createElement("div", { className: _mWrapperClassName.map((c) => c).join(" ") },
233
234
  React.createElement("div", { ...(value.length > 0
234
235
  ? {
235
236
  style: {
@@ -249,13 +250,13 @@ const Select = ({ variant = "outlined", status, color = "gray", border = { radiu
249
250
  onClick && onClick();
250
251
  setOptionsOpen((prev) => !prev);
251
252
  } },
252
- React.createElement("div", { className: "items" }, value.map((_value, index) => (React.createElement(Chip, { key: index, variant: status?.selected?.variant || "filled", color: status?.selected?.color || status?.color, text: _value.text }))))),
253
+ React.createElement("div", { className: "items" }, value.map((_value, index) => (React.createElement(Chip, { key: index, variant: status?.selected?.variant || "filled", color: status?.selected?.color || status?.color, text: _value.text, size: size }))))),
253
254
  React.createElement("span", { ref: _placeholder, className: `placeholder ${value.length > 0 ? "visible" : "hidden"}`, onClick: () => {
254
255
  onClick && onClick();
255
256
  setOptionsOpen((prev) => !prev);
256
257
  } },
257
258
  validation ? "* " : "",
258
- placeholder))) : (React.createElement(Input, { ref: _singleInput, style: { ...style, paddingRight: config.clear === false ? "1.5rem" : "3.5rem" }, variant: variant, color: !Utils.IsNullOrEmpty(validation?.text) ? "red" : color, border: { radius: border.radius }, value: singleInputText, onClick: () => {
259
+ placeholder))) : (React.createElement(Input, { ref: _singleInput, style: { ...style }, variant: variant, color: !Utils.IsNullOrEmpty(validation?.text) ? "red" : color, border: { radius: border.radius }, size: size, value: singleInputText, onClick: () => {
259
260
  onClick && onClick();
260
261
  setOptionsOpen((prev) => !prev);
261
262
  }, onChange: (event) => {
@@ -270,25 +271,33 @@ const Select = ({ variant = "outlined", status, color = "gray", border = { radiu
270
271
  }, placeholder: placeholder, validation: {
271
272
  ...validation,
272
273
  text: config.validation?.text === "visible" ? validation?.text : "",
273
- }, disabled: disabled, readOnly: readOnly })),
274
- React.createElement("div", { className: "buttons" },
275
- config?.clear === true && (React.createElement("span", { className: `button-clear ${!disabled && (multiple ? value.length > 0 : value) ? "opened" : "closed"}`, onClick: (event) => {
276
- if (disabled)
277
- return;
278
- event.stopPropagation();
279
- handleCleanSelection();
280
- } })),
281
- React.createElement("span", { className: `angel-down ${!disabled && optionsOpen ? "opened" : "closed"}`, onClick: (event) => {
282
- if (disabled)
283
- return;
284
- onClick && onClick();
285
- event.stopPropagation();
286
- setOptionsOpen((prev) => !prev);
287
- } })),
274
+ }, disabled: disabled, readOnly: readOnly },
275
+ config?.clear === true && (React.createElement(Input.AddonAfter, null,
276
+ React.createElement(Button, { variant: "borderless", color: "red", border: border, size: size, shape: "square", icon: {
277
+ element: (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "var(--red-500)", viewBox: "0 0 256 256" },
278
+ React.createElement("path", { d: "M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z" }))),
279
+ }, onClick: (event) => {
280
+ if (disabled)
281
+ return;
282
+ event.stopPropagation();
283
+ handleCleanSelection();
284
+ } }))),
285
+ React.createElement(Input.AddonAfter, null,
286
+ React.createElement(Button, { variant: "borderless", color: color, border: border, size: size, shape: "square", icon: {
287
+ element: optionsOpen ? (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "var(--black-50)", viewBox: "0 0 256 256" },
288
+ React.createElement("path", { d: "M212.24,164.24a6,6,0,0,1-8.48,0L128,88.49,52.24,164.24a6,6,0,0,1-8.48-8.48l80-80a6,6,0,0,1,8.48,0l80,80A6,6,0,0,1,212.24,164.24Z" }))) : (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "var(--black-50)", viewBox: "0 0 256 256" },
289
+ React.createElement("path", { d: "M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z" }))),
290
+ }, onClick: (event) => {
291
+ if (disabled)
292
+ return;
293
+ onClick && onClick();
294
+ event.stopPropagation();
295
+ setOptionsOpen((prev) => !prev);
296
+ } })))),
288
297
  multiple && validation && config.validation?.text === "visible" && (React.createElement("span", { className: "har-validation-text" }, validation.text))),
289
298
  !disabled &&
290
299
  optionsOpen &&
291
- ReactDOM.createPortal(React.createElement("div", { ref: _options, className: "ar-select-options" },
300
+ ReactDOM.createPortal(React.createElement("div", { ref: _options, className: "har-select-options" },
292
301
  multiple && (React.createElement("div", { className: "search-field" },
293
302
  React.createElement(Input, { ref: _searchField, variant: "outlined", placeholder: "Search...", value: searchText, onChange: (event) => setSearchText(event.target.value), onClick: (event) => event.stopPropagation() }))),
294
303
  filteredOptions.length > 0 ? (React.createElement("ul", null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harjs/react-ui",
3
- "version": "1.1.10",
3
+ "version": "1.1.12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },