se-design 0.0.119 → 0.0.121
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/icons/sort-asc.svg +4 -0
- package/dist/assets/icons/sort-desc.svg +4 -0
- package/dist/assets/style.css +1 -1
- package/dist/components/Banner/index.d.ts +1 -0
- package/dist/components/Dropdown/index.d.ts +5 -1
- package/dist/components/DropdownWithInputTags/index.d.ts +24 -0
- package/dist/components/InputWithTags/index.d.ts +2 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/index.js +42 -40
- package/dist/index.js.map +1 -1
- package/dist/index10.js +1 -1
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +1 -1
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +1 -1
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +1 -1
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +1 -1
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +1 -1
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +1 -1
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +1 -1
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +1 -1
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +1 -1
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +1 -1
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +1 -1
- package/dist/index11.js.map +1 -1
- package/dist/index110.js +1 -1
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +1 -1
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +1 -1
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +1 -1
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +2 -2
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +2 -2
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +2 -2
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +1 -1
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +2 -2
- package/dist/index119.js.map +1 -1
- package/dist/index120.js +1 -1
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +1 -1
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +2 -2
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +1 -1
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +2 -2
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +2 -149
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +5 -0
- package/dist/index126.js.map +1 -0
- package/dist/index127.js +5 -0
- package/dist/index127.js.map +1 -0
- package/dist/index128.js +152 -0
- package/dist/index128.js.map +1 -0
- package/dist/{index136.js → index140.js} +1 -1
- package/dist/{index136.js.map → index140.js.map} +1 -1
- package/dist/index148.js +1233 -5
- package/dist/index148.js.map +1 -1
- package/dist/index150.js +10 -11
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +8 -4
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +4 -5
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +168 -36
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +11 -2
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +5 -7
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +5 -326
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +36 -48
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +2 -2
- package/dist/index159.js +7 -75
- package/dist/index159.js.map +1 -1
- package/dist/index160.js +308 -74
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +45 -47
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +2 -8
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +75 -4
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +89 -48
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +52 -2
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +8 -2
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +8 -0
- package/dist/index167.js.map +1 -0
- package/dist/index168.js +55 -0
- package/dist/index168.js.map +1 -0
- package/dist/index169.js +5 -0
- package/dist/index169.js.map +1 -0
- package/dist/index170.js +5 -0
- package/dist/index170.js.map +1 -0
- package/dist/index23.js +100 -58
- package/dist/index23.js.map +1 -1
- package/dist/index28.js +35 -29
- package/dist/index28.js.map +1 -1
- package/dist/index35.js +13 -12
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +158 -37
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +36 -84
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +83 -31
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +28 -47
- package/dist/index39.js.map +1 -1
- package/dist/index40.js +48 -66
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +64 -61
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +63 -103
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +104 -83
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +84 -35
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +34 -26
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +28 -28
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +28 -41
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +41 -290
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +292 -2
- package/dist/index49.js.map +1 -1
- package/dist/index5.js +97 -93
- package/dist/index5.js.map +1 -1
- package/dist/index50.js +1 -1
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +1 -1
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +1 -1
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +1 -1
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +1 -1
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +1 -1
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +1 -1
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +1 -1
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +1 -1
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +1 -1
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +1 -1
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +1 -1
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +1 -1
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +1 -1
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +1 -1
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +1 -1
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +1 -1
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +1 -1
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +2 -2
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +2 -2
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +1 -1
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +1 -1
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +2 -2
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +2 -2
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +1 -1
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +1 -1
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +1 -1
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +2 -2
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +1 -1
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +2 -2
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +1 -1
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +1 -1
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +1 -1
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +2 -2
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +2 -2
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +1 -1
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +1 -1
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +1 -1
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +1 -1
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +1 -1
- package/dist/index89.js.map +1 -1
- package/dist/index9.js +20 -22
- package/dist/index9.js.map +1 -1
- package/dist/index90.js +2 -2
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +2 -2
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +1 -1
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +1 -1
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +2 -2
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +1 -1
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +2 -2
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +2 -2
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +2 -2
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +2 -2
- package/dist/index99.js.map +1 -1
- package/package.json +1 -1
- package/dist/index144.js +0 -1236
- package/dist/index144.js.map +0 -1
- package/dist/index146.js +0 -13
- package/dist/index146.js.map +0 -1
- package/dist/index147.js +0 -13
- package/dist/index147.js.map +0 -1
- package/dist/index149.js +0 -173
- package/dist/index149.js.map +0 -1
package/dist/index170.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index170.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index23.js
CHANGED
@@ -1,79 +1,121 @@
|
|
1
|
-
var
|
2
|
-
var
|
3
|
-
var
|
4
|
-
var
|
5
|
-
var
|
6
|
-
for (var
|
7
|
-
|
8
|
-
if (
|
9
|
-
for (var
|
10
|
-
|
1
|
+
var F = Object.defineProperty, G = Object.defineProperties;
|
2
|
+
var H = Object.getOwnPropertyDescriptors;
|
3
|
+
var k = Object.getOwnPropertySymbols;
|
4
|
+
var K = Object.prototype.hasOwnProperty, L = Object.prototype.propertyIsEnumerable;
|
5
|
+
var N = (e, c, d) => c in e ? F(e, c, { enumerable: !0, configurable: !0, writable: !0, value: d }) : e[c] = d, w = (e, c) => {
|
6
|
+
for (var d in c || (c = {}))
|
7
|
+
K.call(c, d) && N(e, d, c[d]);
|
8
|
+
if (k)
|
9
|
+
for (var d of k(c))
|
10
|
+
L.call(c, d) && N(e, d, c[d]);
|
11
11
|
return e;
|
12
|
-
},
|
13
|
-
import
|
14
|
-
import { Popover as
|
15
|
-
import { Icon as
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
12
|
+
}, $ = (e, c) => G(e, H(c));
|
13
|
+
import l, { useState as P, useRef as Q, useEffect as U } from "react";
|
14
|
+
import { Popover as Y } from "./index17.js";
|
15
|
+
import { Icon as V } from "./index5.js";
|
16
|
+
import { Checkbox as Z } from "./index21.js";
|
17
|
+
import { Button as j } from "./index3.js";
|
18
|
+
const ce = (e) => {
|
19
|
+
const [c, d] = P(!1), [a, i] = P(() => e != null && e.defaultSelectedValue ? [e.defaultSelectedValue] : []), f = Q(null), {
|
20
|
+
selectBy: u = "",
|
21
|
+
optionsUniqueBy: m = "",
|
22
|
+
displaySelected: I = !1,
|
23
|
+
dropDownOptions: o,
|
24
|
+
defaultText: s = "Select",
|
23
25
|
iconColor: g = "var(--color-gray-700)",
|
24
|
-
disabled:
|
26
|
+
disabled: x = !1,
|
27
|
+
dropdownClassName: M = "",
|
28
|
+
hasError: h = !1,
|
29
|
+
errorMessage: A = ""
|
25
30
|
} = e;
|
26
|
-
|
27
|
-
|
31
|
+
U(() => {
|
32
|
+
i(e != null && e.defaultSelectedValue ? [e.defaultSelectedValue] : []);
|
28
33
|
}, [e == null ? void 0 : e.defaultSelectedValue]);
|
29
|
-
const
|
30
|
-
var
|
31
|
-
|
32
|
-
},
|
33
|
-
|
34
|
-
},
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
34
|
+
const v = (e == null ? void 0 : e.type) === "multi-select", B = (t) => {
|
35
|
+
var n, r;
|
36
|
+
i([t]), (n = f.current) == null || n.togglePopover(), (r = e == null ? void 0 : e.onOptionClick) == null || r.call(e, t);
|
37
|
+
}, R = (t) => v ? s : (t == null ? void 0 : t[u]) || s, T = () => {
|
38
|
+
i([]);
|
39
|
+
}, S = (t) => e != null && e.renderOptionChip ? e == null ? void 0 : e.renderOptionChip(t) : /* @__PURE__ */ l.createElement("p", {
|
40
|
+
className: "option-chip flex flex-1 items-center justify-between"
|
41
|
+
}, R(t), " ", v && (a == null ? void 0 : a.length) > 0 && /* @__PURE__ */ l.createElement("span", {
|
42
|
+
className: "w-5 h-5 mx-1 rounded-full bg-[var(--color-gray-700)] text-[var(--color-white)] text-sm flex items-center justify-center"
|
43
|
+
}, a == null ? void 0 : a.length)), J = (t) => {
|
44
|
+
var C, E;
|
45
|
+
const n = t[u], r = ((C = a[0]) == null ? void 0 : C[u]) || s, y = m != null && m.length ? t[m] == ((E = a[0]) == null ? void 0 : E[m]) : !0, b = I && n === r && y;
|
46
|
+
return /* @__PURE__ */ l.createElement("div", {
|
47
|
+
key: `$drop-option-${n}`,
|
48
|
+
className: `option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between ${b ? "selected" : ""}`,
|
49
|
+
onClick: () => B(t)
|
50
|
+
}, S($(w({}, t), {
|
51
|
+
isOptionSelected: b
|
52
|
+
})), b && /* @__PURE__ */ l.createElement(V, {
|
43
53
|
name: "checkmark",
|
44
54
|
stroke: g
|
45
55
|
}));
|
46
|
-
},
|
56
|
+
}, _ = () => /* @__PURE__ */ l.createElement("div", {
|
47
57
|
className: "dropdown-content dropdown-options"
|
48
|
-
},
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
58
|
+
}, o == null ? void 0 : o.map((t) => J(t))), W = (t, n) => {
|
59
|
+
let r = [];
|
60
|
+
t ? r = [...a, n] : r = a == null ? void 0 : a.filter((y) => y[m] !== n[m]), i(r);
|
61
|
+
}, X = () => {
|
62
|
+
var t, n;
|
63
|
+
(t = f.current) == null || t.togglePopover(), (n = e == null ? void 0 : e.onApply) == null || n.call(e, a);
|
64
|
+
}, q = (t) => {
|
65
|
+
const n = a.some((r) => r[m] === t[m]);
|
66
|
+
return /* @__PURE__ */ l.createElement("div", {
|
67
|
+
key: `$drop-option-${t[u]}`,
|
68
|
+
className: "option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between"
|
69
|
+
}, /* @__PURE__ */ l.createElement(Z, {
|
70
|
+
automationId: "checkbox",
|
71
|
+
className: "checkbox",
|
72
|
+
defaultChecked: n,
|
73
|
+
onChange: (r) => W(r, t),
|
74
|
+
label: t == null ? void 0 : t.label
|
75
|
+
}));
|
76
|
+
}, z = () => /* @__PURE__ */ l.createElement("div", {
|
77
|
+
className: "dropdown-content dropdown-options"
|
78
|
+
}, o == null ? void 0 : o.map((t) => q(t)), /* @__PURE__ */ l.createElement("div", {
|
79
|
+
className: "flex items-center justify-end gap-4 p-3 border-t border-[var(--color-gray-200)]"
|
80
|
+
}, /* @__PURE__ */ l.createElement(j, {
|
81
|
+
label: "Clear",
|
82
|
+
type: "link",
|
83
|
+
onClick: T
|
84
|
+
}), /* @__PURE__ */ l.createElement(j, {
|
85
|
+
label: "Apply",
|
86
|
+
type: "primary",
|
87
|
+
onClick: X
|
88
|
+
}))), D = () => {
|
89
|
+
const t = c ? "border-[var(--color-blue-500)]" : "border-[var(--color-gray-600)]", n = h ? "border-[var(--color-red-500)]" : "", r = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 border rounded-md ${n || t} flex items-center ${M}`;
|
90
|
+
return /* @__PURE__ */ l.createElement("div", {
|
91
|
+
className: r
|
92
|
+
}, S(a[0]), /* @__PURE__ */ l.createElement(V, {
|
53
93
|
name: "chevron",
|
54
|
-
rotation:
|
94
|
+
rotation: c ? "180" : "0",
|
55
95
|
className: "ml-auto transition-transform",
|
56
96
|
stroke: g
|
57
97
|
}));
|
58
98
|
};
|
59
|
-
return /* @__PURE__ */
|
60
|
-
className: `se-design-dropdown-container${e != null && e.className ? ` ${e == null ? void 0 : e.className}` : ""}`,
|
99
|
+
return /* @__PURE__ */ l.createElement("div", {
|
100
|
+
className: `se-design-dropdown-container${e != null && e.className ? ` ${e == null ? void 0 : e.className}` : ""} min-h-[85px]`,
|
61
101
|
style: e == null ? void 0 : e.style
|
62
|
-
}, (e == null ? void 0 : e.label) && /* @__PURE__ */
|
102
|
+
}, (e == null ? void 0 : e.label) && /* @__PURE__ */ l.createElement("div", {
|
63
103
|
className: "se-design-dropdown-label mb-[3px] text-[var(--color-gray-700)] text-sm"
|
64
|
-
}, e == null ? void 0 : e.label), /* @__PURE__ */
|
104
|
+
}, e == null ? void 0 : e.label), /* @__PURE__ */ l.createElement("div", {
|
65
105
|
style: e == null ? void 0 : e.style,
|
66
|
-
className: `${
|
67
|
-
}, /* @__PURE__ */
|
68
|
-
ref:
|
69
|
-
renderPopoverContents:
|
106
|
+
className: `${x ? "bg-[var(--color-gray-200)] rounded-md cursor-not-allowed" : ""}`
|
107
|
+
}, /* @__PURE__ */ l.createElement(Y, {
|
108
|
+
ref: f,
|
109
|
+
renderPopoverContents: v ? z : _,
|
70
110
|
contentWidth: "full",
|
71
|
-
renderPopoverSrcElement:
|
72
|
-
onPopoverToggle: (
|
73
|
-
disabled:
|
74
|
-
}))
|
111
|
+
renderPopoverSrcElement: D,
|
112
|
+
onPopoverToggle: (t) => d(t),
|
113
|
+
disabled: x
|
114
|
+
})), h && /* @__PURE__ */ l.createElement("div", {
|
115
|
+
className: "text-[var(--color-red-500)] text-sm"
|
116
|
+
}, A));
|
75
117
|
};
|
76
118
|
export {
|
77
|
-
|
119
|
+
ce as Dropdown
|
78
120
|
};
|
79
121
|
//# sourceMappingURL=index23.js.map
|
package/dist/index23.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index23.js","sources":["../src/components/Dropdown/index.tsx"],"sourcesContent":["import React, { FC, useState, useRef, useEffect } from 'react';\n\nimport { Popover, PopoverHandle } from 'src/components/Popover';\nimport { Icon } from 'components/Icon';\n\ntype DropdownValue = {\n [key: string]: any;\n};\n\ntype DropdownProps = {\n label?: string;\n type: 'select';\n dropDownOptions?: DropdownValue[];\n defaultText?: string;\n selectBy?: string;\n optionsUniqueBy?: string;\n displaySelected?: boolean;\n defaultSelectedValue?: DropdownValue;\n onOptionClick?: (selectedValue: DropdownValue) => void;\n style?: React.CSSProperties;\n renderOptionChip?: (option: DropdownValue) => React.ReactNode;\n className?: string;\n iconColor?: string;\n disabled?: boolean;\n};\n\nexport const Dropdown: FC<DropdownProps> = (props) => {\n const [isDropDownOpen, setIsDropDownOpen] = useState(false);\n const [selectedDropDownValue, setSelectedDropDownValue] = useState<DropdownValue>(\n () => props?.defaultSelectedValue || {}\n );\n const popoverRef = useRef<HTMLDivElement & PopoverHandle>(null);\n\n const {\n selectBy = '',\n optionsUniqueBy = '',\n displaySelected = false,\n dropDownOptions,\n defaultText = 'Select',\n iconColor = 'var(--color-gray-700)',\n disabled = false\n } = props;\n\n useEffect(() => {\n setSelectedDropDownValue(props?.defaultSelectedValue || {});\n }, [props?.defaultSelectedValue]);\n\n const handleDropDownOptionClick = (dropDownOption: any) => {\n setSelectedDropDownValue(dropDownOption);\n popoverRef.current?.togglePopover();\n props?.onOptionClick?.(dropDownOption);\n };\n\n const optionChip = (option: DropdownValue) => {\n if (props?.renderOptionChip) {\n return props?.renderOptionChip(option);\n }\n return <span className={`option-chip`}>{option[selectBy] || defaultText}</span>;\n };\n\n const dropDownOptionJsx = (dropDownOption: DropdownValue) => {\n const optionTxt = dropDownOption[selectBy];\n const dropDownSelectedValue = selectedDropDownValue[selectBy] || defaultText;\n const selectByUniqueId = optionsUniqueBy?.length\n ? dropDownOption[optionsUniqueBy] == selectedDropDownValue[optionsUniqueBy]\n : true;\n const isOptionSelected = displaySelected && optionTxt === dropDownSelectedValue && selectByUniqueId;\n return (\n <div\n key={`$drop-option-${optionTxt}`}\n className={`option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between ${isOptionSelected ? 'selected' : ''}`}\n onClick={() => handleDropDownOptionClick(dropDownOption)}\n >\n {optionChip({ ...dropDownOption, isOptionSelected })}\n {isOptionSelected && <Icon name=\"checkmark\" stroke={iconColor} />}\n </div>\n );\n };\n\n const renderDropdownContents = () => {\n return (\n <div className=\"dropdown-content dropdown-options\">\n {dropDownOptions?.map((dropDownOption) => dropDownOptionJsx(dropDownOption))}\n </div>\n );\n };\n\n const renderDropdownSelect = () => {\n const borderColor = isDropDownOpen ? 'border-[var(--color-gray-900)]' : 'border-[var(--color-gray-200)]';\n const dropDownSelectClass = `dropdown-src-element flex px-3 py-2 border rounded-md ${borderColor} flex items-center`;\n\n return (\n <div className={dropDownSelectClass}>\n {optionChip(selectedDropDownValue)}\n <Icon\n name={'chevron'}\n rotation={isDropDownOpen ? '180' : '0'}\n className={`ml-auto transition-transform`}\n stroke={iconColor}\n />\n </div>\n );\n };\n\n return (\n <div className={`se-design-dropdown-container${props?.className ? ` ${props?.className}` : ''}`} style={props?.style}>\n {props?.label && (\n <div className=\"se-design-dropdown-label mb-[3px] text-[var(--color-gray-700)] text-sm\">{props?.label}</div>\n )}\n <div\n style={props?.style}\n className={`${disabled ? 'bg-[var(--color-gray-200)] rounded-md cursor-not-allowed' : ''}`}\n >\n <Popover\n ref={popoverRef}\n renderPopoverContents={renderDropdownContents}\n contentWidth={'full'}\n renderPopoverSrcElement={renderDropdownSelect}\n onPopoverToggle={(value) => setIsDropDownOpen(value)}\n disabled={disabled}\n />\n </div>\n </div>\n );\n};\n"],"names":["React__default","useState","useRef","useEffect","Popover","Icon","Dropdown","props","isDropDownOpen","setIsDropDownOpen","selectedDropDownValue","setSelectedDropDownValue","defaultSelectedValue","popoverRef","selectBy","optionsUniqueBy","displaySelected","dropDownOptions","defaultText","iconColor","disabled","handleDropDownOptionClick","dropDownOption","_a","_b","current","togglePopover","onOptionClick","optionChip","option","renderOptionChip","React","createElement","className","dropDownOptionJsx","optionTxt","dropDownSelectedValue","selectByUniqueId","length","isOptionSelected","key","onClick","__spreadProps","__spreadValues","name","stroke","renderDropdownContents","map","renderDropdownSelect","dropDownSelectClass","rotation","style","label","ref","renderPopoverContents","contentWidth","renderPopoverSrcElement","onPopoverToggle","value"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index23.js","sources":["../src/components/Dropdown/index.tsx"],"sourcesContent":["import React, { FC, useState, useRef, useEffect } from 'react';\n\nimport { Popover, PopoverHandle } from 'src/components/Popover';\nimport { Icon } from 'components/Icon';\nimport { Checkbox } from '../Checkbox';\nimport { Button } from '../Button';\n\ntype DropdownValue = {\n [key: string]: any;\n};\n\ntype DropdownProps = {\n label?: string;\n type: 'select' | 'multi-select';\n dropDownOptions?: DropdownValue[];\n defaultText?: string;\n selectBy?: string;\n optionsUniqueBy?: string;\n displaySelected?: boolean;\n defaultSelectedValue?: DropdownValue;\n onOptionClick?: (selectedValue: DropdownValue) => void;\n style?: React.CSSProperties;\n renderOptionChip?: (option: DropdownValue) => React.ReactNode;\n className?: string;\n iconColor?: string;\n disabled?: boolean;\n dropdownClassName?: string;\n hasError?: boolean;\n errorMessage?: string;\n onApply?: (selectedValue: DropdownValue[]) => void;\n};\n\nexport const Dropdown: FC<DropdownProps> = (props) => {\n const [isDropDownOpen, setIsDropDownOpen] = useState(false);\n const [selectedDropDownValues, setSelectedDropDownValues] = useState<DropdownValue[]>(() =>\n props?.defaultSelectedValue ? [props.defaultSelectedValue] : []\n );\n const popoverRef = useRef<HTMLDivElement & PopoverHandle>(null);\n\n const {\n selectBy = '',\n optionsUniqueBy = '',\n displaySelected = false,\n dropDownOptions,\n defaultText = 'Select',\n iconColor = 'var(--color-gray-700)',\n disabled = false,\n dropdownClassName = '',\n hasError = false,\n errorMessage = ''\n } = props;\n\n useEffect(() => {\n setSelectedDropDownValues(props?.defaultSelectedValue ? [props.defaultSelectedValue] : []);\n }, [props?.defaultSelectedValue]);\n\n const isMultiSelect = props?.type === 'multi-select';\n\n const handleDropDownOptionClick = (dropDownOption: any) => {\n setSelectedDropDownValues([dropDownOption]);\n popoverRef.current?.togglePopover();\n props?.onOptionClick?.(dropDownOption);\n };\n\n const getSelectedDropDownValue = (option: DropdownValue) => {\n if (isMultiSelect) {\n return defaultText;\n }\n return option?.[selectBy] || defaultText;\n };\n\n const clearSelectedDropDownValues = () => {\n setSelectedDropDownValues([]);\n };\n\n const optionChip = (option: DropdownValue) => {\n if (props?.renderOptionChip) {\n return props?.renderOptionChip(option);\n }\n return (\n <p className={`option-chip flex flex-1 items-center justify-between`}>\n {getSelectedDropDownValue(option)}{' '}\n {isMultiSelect && selectedDropDownValues?.length > 0 && (\n <span className=\"w-5 h-5 mx-1 rounded-full bg-[var(--color-gray-700)] text-[var(--color-white)] text-sm flex items-center justify-center\">\n {selectedDropDownValues?.length}\n </span>\n )}\n </p>\n );\n };\n\n const dropDownOptionJsx = (dropDownOption: DropdownValue) => {\n const optionTxt = dropDownOption[selectBy];\n const dropDownSelectedValue = selectedDropDownValues[0]?.[selectBy] || defaultText;\n const selectByUniqueId = optionsUniqueBy?.length\n ? dropDownOption[optionsUniqueBy] == selectedDropDownValues[0]?.[optionsUniqueBy]\n : true;\n const isOptionSelected = displaySelected && optionTxt === dropDownSelectedValue && selectByUniqueId;\n return (\n <div\n key={`$drop-option-${optionTxt}`}\n className={`option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between ${isOptionSelected ? 'selected' : ''}`}\n onClick={() => handleDropDownOptionClick(dropDownOption)}\n >\n {optionChip({ ...dropDownOption, isOptionSelected })}\n {isOptionSelected && <Icon name=\"checkmark\" stroke={iconColor} />}\n </div>\n );\n };\n\n const renderDropdownContents = () => {\n return (\n <div className=\"dropdown-content dropdown-options\">\n {dropDownOptions?.map((dropDownOption) => dropDownOptionJsx(dropDownOption))}\n </div>\n );\n };\n\n const handleMultiSelectDropdownOptionClick = (isSelected: boolean, dropDownOption: DropdownValue) => {\n let newSelectedDropDownValue: DropdownValue[] = [];\n if (isSelected) {\n newSelectedDropDownValue = [...selectedDropDownValues, dropDownOption];\n } else {\n newSelectedDropDownValue = selectedDropDownValues?.filter(\n (option) => option[optionsUniqueBy] !== dropDownOption[optionsUniqueBy]\n );\n }\n setSelectedDropDownValues(newSelectedDropDownValue);\n };\n\n const handleApplySelectedDropDownValues = () => {\n popoverRef.current?.togglePopover();\n props?.onApply?.(selectedDropDownValues);\n };\n\n const multiSelectDropdownOptionJSX = (dropDownOption: DropdownValue) => {\n const isOptionSelected = selectedDropDownValues.some(\n (option) => option[optionsUniqueBy] === dropDownOption[optionsUniqueBy]\n );\n return (\n <div\n key={`$drop-option-${dropDownOption[selectBy]}`}\n className=\"option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between\"\n >\n <Checkbox\n automationId=\"checkbox\"\n className=\"checkbox\"\n defaultChecked={isOptionSelected}\n onChange={(value) => handleMultiSelectDropdownOptionClick(value, dropDownOption)}\n label={dropDownOption?.label}\n />\n </div>\n );\n };\n\n const renderMultiSelectDropdownContents = () => {\n return (\n <div className=\"dropdown-content dropdown-options\">\n {dropDownOptions?.map((dropDownOption) => multiSelectDropdownOptionJSX(dropDownOption))}\n <div className=\"flex items-center justify-end gap-4 p-3 border-t border-[var(--color-gray-200)]\">\n <Button label=\"Clear\" type=\"link\" onClick={clearSelectedDropDownValues} />\n <Button label=\"Apply\" type=\"primary\" onClick={handleApplySelectedDropDownValues} />\n </div>\n </div>\n );\n };\n\n const renderDropdownSelect = () => {\n const borderColor = isDropDownOpen ? 'border-[var(--color-blue-500)]' : 'border-[var(--color-gray-600)]';\n const errorBorderColor = hasError ? 'border-[var(--color-red-500)]' : '';\n const dropDownSelectClass = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 border rounded-md ${errorBorderColor ? errorBorderColor : borderColor} flex items-center ${dropdownClassName}`;\n\n return (\n <div className={dropDownSelectClass}>\n {optionChip(selectedDropDownValues[0])}\n <Icon\n name={'chevron'}\n rotation={isDropDownOpen ? '180' : '0'}\n className={`ml-auto transition-transform`}\n stroke={iconColor}\n />\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-dropdown-container${props?.className ? ` ${props?.className}` : ''} min-h-[85px]`}\n style={props?.style}\n >\n {props?.label && (\n <div className=\"se-design-dropdown-label mb-[3px] text-[var(--color-gray-700)] text-sm\">{props?.label}</div>\n )}\n <div\n style={props?.style}\n className={`${disabled ? 'bg-[var(--color-gray-200)] rounded-md cursor-not-allowed' : ''}`}\n >\n <Popover\n ref={popoverRef}\n renderPopoverContents={isMultiSelect ? renderMultiSelectDropdownContents : renderDropdownContents}\n contentWidth={'full'}\n renderPopoverSrcElement={renderDropdownSelect}\n onPopoverToggle={(value) => setIsDropDownOpen(value)}\n disabled={disabled}\n />\n </div>\n {hasError && <div className=\"text-[var(--color-red-500)] text-sm\">{errorMessage}</div>}\n </div>\n );\n};\n"],"names":["React__default","useState","useRef","useEffect","Popover","Icon","Checkbox","Button","Dropdown","props","isDropDownOpen","setIsDropDownOpen","selectedDropDownValues","setSelectedDropDownValues","defaultSelectedValue","popoverRef","selectBy","optionsUniqueBy","displaySelected","dropDownOptions","defaultText","iconColor","disabled","dropdownClassName","hasError","errorMessage","isMultiSelect","type","handleDropDownOptionClick","dropDownOption","_a","_b","current","togglePopover","onOptionClick","getSelectedDropDownValue","option","clearSelectedDropDownValues","optionChip","renderOptionChip","React","createElement","className","length","dropDownOptionJsx","optionTxt","dropDownSelectedValue","selectByUniqueId","isOptionSelected","key","onClick","__spreadProps","__spreadValues","name","stroke","renderDropdownContents","map","handleMultiSelectDropdownOptionClick","isSelected","newSelectedDropDownValue","filter","handleApplySelectedDropDownValues","onApply","multiSelectDropdownOptionJSX","some","automationId","defaultChecked","onChange","value","label","renderMultiSelectDropdownContents","renderDropdownSelect","borderColor","errorBorderColor","dropDownSelectClass","rotation","style","ref","renderPopoverContents","contentWidth","renderPopoverSrcElement","onPopoverToggle"],"mappings":"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"}
|
package/dist/index28.js
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
import e from "react";
|
2
|
-
import { Icon as
|
3
|
-
import { Button as
|
2
|
+
import { Icon as N } from "./index5.js";
|
3
|
+
import { Button as a } from "./index3.js";
|
4
4
|
/* empty css */
|
5
5
|
const n = {
|
6
6
|
bannerCtn: "relative rounded-[12px] flex pr-3.5 cursor-pointer",
|
7
7
|
bannerContentCtn: "pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2",
|
8
|
-
bannerLinkCta: "text-[#1088e7] cursor-pointer text-base leading-6
|
9
|
-
bannerImageCtn: "
|
8
|
+
bannerLinkCta: "text-[#1088e7] cursor-pointer text-base leading-6 hover: text-[#0078d4]",
|
9
|
+
bannerImageCtn: "flex cursor-pointer",
|
10
10
|
bannerCloseIconCtn: "absolute top-[12px] right-[12px] cursor-pointer hover:bg-[var(--color-gray-100)] rounded-full p-1",
|
11
11
|
bannerButton: "self-start"
|
12
|
-
},
|
12
|
+
}, w = (r) => {
|
13
13
|
const {
|
14
|
-
bannerClassName:
|
15
|
-
bannerBgColor:
|
16
|
-
title:
|
14
|
+
bannerClassName: i,
|
15
|
+
bannerBgColor: m,
|
16
|
+
title: C,
|
17
17
|
description: b,
|
18
|
-
hasImage:
|
19
|
-
imagePosition:
|
18
|
+
hasImage: p,
|
19
|
+
imagePosition: t = "right",
|
20
20
|
hasCloseIcon: d,
|
21
21
|
closeIconName: u,
|
22
22
|
onClose: g,
|
@@ -24,56 +24,62 @@ const n = {
|
|
24
24
|
ctaText: l,
|
25
25
|
hasLinkCta: x,
|
26
26
|
onCtaClick: c,
|
27
|
-
onSecondaryCtaClick:
|
28
|
-
hasButtonCta:
|
27
|
+
onSecondaryCtaClick: y,
|
28
|
+
hasButtonCta: f,
|
29
29
|
buttonType: h = "secondary",
|
30
30
|
hasSecondaryButtonCta: k = !1,
|
31
31
|
secondaryButtonType: E = "secondary",
|
32
|
-
secondaryCtaText: B
|
33
|
-
|
34
|
-
|
32
|
+
secondaryCtaText: B,
|
33
|
+
imageWidth: I = "30%"
|
34
|
+
} = r, s = () => p && /* @__PURE__ */ e.createElement("div", {
|
35
|
+
className: `${n.bannerImageCtn} banner-image-ctn ${t === "right" ? "mr-5 ml-0 justify-end" : "ml-5 mr-0 justify-start"} min-h-full`,
|
36
|
+
style: {
|
37
|
+
width: I
|
38
|
+
},
|
35
39
|
onClick: o
|
36
40
|
}, /* @__PURE__ */ e.createElement("img", {
|
37
|
-
src:
|
41
|
+
src: r.bannerImage,
|
38
42
|
className: "max-w-[initial] h-[initial] max-h-[150px] object-contain"
|
39
43
|
}));
|
40
44
|
return /* @__PURE__ */ e.createElement("div", {
|
41
|
-
className: `${n.bannerCtn} ${
|
45
|
+
className: `${n.bannerCtn} ${i} banner-ctn`,
|
42
46
|
style: {
|
43
|
-
backgroundColor:
|
47
|
+
backgroundColor: m
|
44
48
|
}
|
45
|
-
},
|
46
|
-
className: `${n.bannerContentCtn}
|
49
|
+
}, t === "left" && s(), /* @__PURE__ */ e.createElement("div", {
|
50
|
+
className: `${n.bannerContentCtn} w-[100%] banner-content-ctn`,
|
47
51
|
onClick: o
|
48
52
|
}, /* @__PURE__ */ e.createElement("span", {
|
49
53
|
className: "banner-title"
|
50
|
-
},
|
54
|
+
}, C), /* @__PURE__ */ e.createElement("span", {
|
51
55
|
className: "banner-description"
|
52
56
|
}, b), /* @__PURE__ */ e.createElement("div", {
|
53
57
|
className: "flex gap-3"
|
54
|
-
}, x && /* @__PURE__ */ e.createElement(
|
58
|
+
}, x && /* @__PURE__ */ e.createElement(a, {
|
59
|
+
type: "link",
|
55
60
|
className: n.bannerLinkCta,
|
56
|
-
onClick: c
|
57
|
-
|
61
|
+
onClick: c,
|
62
|
+
label: l
|
63
|
+
}), f && /* @__PURE__ */ e.createElement(a, {
|
58
64
|
type: h,
|
59
65
|
size: "sm",
|
60
66
|
label: l,
|
61
67
|
onClick: c,
|
62
68
|
className: n == null ? void 0 : n.bannerButton
|
63
|
-
}), k && /* @__PURE__ */ e.createElement(
|
69
|
+
}), k && /* @__PURE__ */ e.createElement(a, {
|
64
70
|
type: E,
|
65
71
|
size: "sm",
|
66
72
|
label: B,
|
67
|
-
onClick:
|
73
|
+
onClick: y,
|
68
74
|
className: n == null ? void 0 : n.secondaryBannerButton
|
69
|
-
}))),
|
75
|
+
}))), t === "right" && s(), /* @__PURE__ */ e.createElement("span", {
|
70
76
|
className: n.bannerCloseIconCtn,
|
71
77
|
onClick: g
|
72
|
-
}, d && /* @__PURE__ */ e.createElement(
|
78
|
+
}, d && /* @__PURE__ */ e.createElement(N, {
|
73
79
|
name: u
|
74
80
|
})));
|
75
81
|
};
|
76
82
|
export {
|
77
|
-
|
83
|
+
w as Banner
|
78
84
|
};
|
79
85
|
//# sourceMappingURL=index28.js.map
|
package/dist/index28.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index28.js","sources":["../src/components/Banner/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Map } from '../../utils/common.types';\nimport { Icon } from 'components/Icon';\nimport { Button } from 'components/Button';\nimport './style.scss';\n\nexport interface BannerProps {\n bannerClassName?: string | '';\n bannerBgColor?: string | '';\n title: string | '';\n description: string | '';\n hasImage?: boolean | false;\n imagePosition?: 'left' | 'right' | '';\n bannerImage: string | '';\n hasCloseIcon?: boolean | false;\n closeIconName: string | '';\n onClose: () => void | (() => {});\n onBannerClick?: () => void | (() => {});\n hasButtonCta?: boolean | false;\n hasSecondaryButtonCta?: boolean | false;\n buttonType?: 'primary' | 'secondary' | 'link';\n secondaryButtonType?: 'primary' | 'secondary' | 'link';\n hasLinkCta?: boolean | false;\n ctaText: string | '';\n secondaryCtaText: string | '';\n onCtaClick: () => void | (() => {});\n onSecondaryCtaClick: () => void | (() => {});\n}\n\nconst classNames: Map = {\n bannerCtn: `relative rounded-[12px] flex pr-3.5 cursor-pointer`,\n bannerContentCtn: 'pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2',\n bannerLinkCta: 'text-[#1088e7] cursor-pointer text-base leading-6
|
1
|
+
{"version":3,"file":"index28.js","sources":["../src/components/Banner/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Map } from '../../utils/common.types';\nimport { Icon } from 'components/Icon';\nimport { Button } from 'components/Button';\nimport './style.scss';\n\nexport interface BannerProps {\n bannerClassName?: string | '';\n bannerBgColor?: string | '';\n title: string | '';\n description: string | '';\n hasImage?: boolean | false;\n imagePosition?: 'left' | 'right' | '';\n bannerImage: string | '';\n hasCloseIcon?: boolean | false;\n closeIconName: string | '';\n onClose: () => void | (() => {});\n onBannerClick?: () => void | (() => {});\n hasButtonCta?: boolean | false;\n hasSecondaryButtonCta?: boolean | false;\n buttonType?: 'primary' | 'secondary' | 'link';\n secondaryButtonType?: 'primary' | 'secondary' | 'link';\n hasLinkCta?: boolean | false;\n ctaText: string | '';\n secondaryCtaText: string | '';\n onCtaClick: () => void | (() => {});\n onSecondaryCtaClick: () => void | (() => {});\n imageWidth?: string | '30%';\n}\n\nconst classNames: Map = {\n bannerCtn: `relative rounded-[12px] flex pr-3.5 cursor-pointer`,\n bannerContentCtn: 'pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2',\n bannerLinkCta: 'text-[#1088e7] cursor-pointer text-base leading-6 hover: text-[#0078d4]',\n bannerImageCtn: 'flex cursor-pointer',\n bannerCloseIconCtn:\n 'absolute top-[12px] right-[12px] cursor-pointer hover:bg-[var(--color-gray-100)] rounded-full p-1',\n bannerButton: 'self-start'\n};\n\nexport const Banner: FC<BannerProps> = (props) => {\n const {\n bannerClassName,\n bannerBgColor,\n title,\n description,\n hasImage,\n imagePosition = 'right',\n hasCloseIcon,\n closeIconName,\n onClose,\n onBannerClick,\n ctaText,\n hasLinkCta,\n onCtaClick,\n onSecondaryCtaClick,\n hasButtonCta,\n buttonType = 'secondary',\n hasSecondaryButtonCta = false,\n secondaryButtonType = 'secondary',\n secondaryCtaText,\n imageWidth = '30%'\n } = props;\n\n const renderImage = () =>\n hasImage && (\n <div\n className={`${classNames.bannerImageCtn} banner-image-ctn ${imagePosition === 'right' ? 'mr-5 ml-0 justify-end' : 'ml-5 mr-0 justify-start'} min-h-full`}\n style={{ width: imageWidth }}\n onClick={onBannerClick}\n >\n <img src={props.bannerImage} className=\"max-w-[initial] h-[initial] max-h-[150px] object-contain\" />\n </div>\n );\n\n return (\n <div className={`${classNames.bannerCtn} ${bannerClassName} banner-ctn`} style={{ backgroundColor: bannerBgColor }}>\n {imagePosition === 'left' && renderImage()}\n <div className={`${classNames.bannerContentCtn} w-[100%] banner-content-ctn`} onClick={onBannerClick}>\n <span className=\"banner-title\">{title}</span>\n <span className=\"banner-description\">{description}</span>\n <div className=\"flex gap-3\">\n {hasLinkCta && (\n <Button type=\"link\" className={classNames.bannerLinkCta} onClick={onCtaClick} label={ctaText} />\n )}\n {hasButtonCta && (\n <Button\n type={buttonType}\n size=\"sm\"\n label={ctaText}\n onClick={onCtaClick}\n className={classNames?.bannerButton}\n />\n )}\n {hasSecondaryButtonCta && (\n <Button\n type={secondaryButtonType}\n size=\"sm\"\n label={secondaryCtaText}\n onClick={onSecondaryCtaClick}\n className={classNames?.secondaryBannerButton}\n />\n )}\n </div>\n </div>\n {imagePosition === 'right' && renderImage()}\n <span className={classNames.bannerCloseIconCtn} onClick={onClose}>\n {hasCloseIcon && <Icon name={closeIconName} />}\n </span>\n </div>\n );\n};\n"],"names":["React__default","Icon","Button","classNames","bannerCtn","bannerContentCtn","bannerLinkCta","bannerImageCtn","bannerCloseIconCtn","bannerButton","Banner","props","bannerClassName","bannerBgColor","title","description","hasImage","imagePosition","hasCloseIcon","closeIconName","onClose","onBannerClick","ctaText","hasLinkCta","onCtaClick","onSecondaryCtaClick","hasButtonCta","buttonType","hasSecondaryButtonCta","secondaryButtonType","secondaryCtaText","imageWidth","renderImage","React","createElement","className","style","width","onClick","src","bannerImage","backgroundColor","type","label","size","secondaryBannerButton","name"],"mappings":"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"}
|
package/dist/index35.js
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
-
import c, { useState as p, useRef as
|
1
|
+
import c, { useState as p, useRef as E } from "react";
|
2
2
|
/* empty css */
|
3
|
-
import { Icon as
|
4
|
-
function
|
3
|
+
import { Icon as T } from "./index5.js";
|
4
|
+
function R({
|
5
5
|
value: m,
|
6
6
|
onChange: e,
|
7
|
-
placeholder: o
|
7
|
+
placeholder: o,
|
8
|
+
className: f
|
8
9
|
}) {
|
9
|
-
const [a, l] = p([...m]), [i, r] = p(""), u =
|
10
|
+
const [a, l] = p([...m]), [i, r] = p(""), u = E(null), w = (t) => {
|
10
11
|
if (t.key === "Enter" && i.trim()) {
|
11
12
|
t.preventDefault();
|
12
13
|
const s = [...a, i.trim()];
|
@@ -17,7 +18,7 @@ function I({
|
|
17
18
|
}
|
18
19
|
};
|
19
20
|
return /* @__PURE__ */ c.createElement("div", {
|
20
|
-
className:
|
21
|
+
className: `input-with-tags-container ${f}`,
|
21
22
|
onClick: () => {
|
22
23
|
var t;
|
23
24
|
return (t = u.current) == null ? void 0 : t.focus();
|
@@ -27,12 +28,12 @@ function I({
|
|
27
28
|
className: "tag-in-inputwithtags"
|
28
29
|
}, t, /* @__PURE__ */ c.createElement("span", {
|
29
30
|
className: "close-icon-in-inputwithtags",
|
30
|
-
onClick: (
|
31
|
-
|
32
|
-
const n = a.filter((
|
31
|
+
onClick: (k) => {
|
32
|
+
k.stopPropagation();
|
33
|
+
const n = a.filter((v, y) => y !== s);
|
33
34
|
l(n), e == null || e(n);
|
34
35
|
}
|
35
|
-
}, /* @__PURE__ */ c.createElement(
|
36
|
+
}, /* @__PURE__ */ c.createElement(T, {
|
36
37
|
name: "close"
|
37
38
|
})))), /* @__PURE__ */ c.createElement("input", {
|
38
39
|
className: "input-with-tags-input",
|
@@ -40,11 +41,11 @@ function I({
|
|
40
41
|
type: "text",
|
41
42
|
value: i,
|
42
43
|
onChange: (t) => r(t.target.value),
|
43
|
-
onKeyDown:
|
44
|
+
onKeyDown: w,
|
44
45
|
placeholder: o
|
45
46
|
}));
|
46
47
|
}
|
47
48
|
export {
|
48
|
-
|
49
|
+
R as InputWithTags
|
49
50
|
};
|
50
51
|
//# sourceMappingURL=index35.js.map
|
package/dist/index35.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index35.js","sources":["../src/components/InputWithTags/index.tsx"],"sourcesContent":["import React, { useState, KeyboardEvent, useRef } from \"react\";\nimport './styles.scss';\nimport { Icon } from '../Icon';\nexport interface InputWithTagsProps {\n value: string[];\n onChange?: (tags: string[]) => void;\n placeholder?: string;\n}\n\nexport function InputWithTags({ value, onChange, placeholder }: InputWithTagsProps) {\n const [tags, setTags] = useState<string[]>([...value]);\n const [inputValue, setInputValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && inputValue.trim()) {\n e.preventDefault();\n const newTags = [...tags, inputValue.trim()];\n setTags(newTags);\n setInputValue(\"\");\n onChange?.(newTags);\n } else if (e.key === 'Backspace' && inputValue === \"\" && tags.length > 0) {\n // Remove the last tag when backspace is pressed on empty input\n const newTags = tags.slice(0, -1);\n setTags(newTags);\n onChange?.(newTags);\n }\n };\n\n return (\n <div className
|
1
|
+
{"version":3,"file":"index35.js","sources":["../src/components/InputWithTags/index.tsx"],"sourcesContent":["import React, { useState, KeyboardEvent, useRef } from \"react\";\nimport './styles.scss';\nimport { Icon } from '../Icon';\nexport interface InputWithTagsProps {\n value: string[];\n onChange?: (tags: string[]) => void;\n placeholder?: string;\n className?: string;\n}\n\nexport function InputWithTags({ value, onChange, placeholder, className }: InputWithTagsProps) {\n const [tags, setTags] = useState<string[]>([...value]);\n const [inputValue, setInputValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && inputValue.trim()) {\n e.preventDefault();\n const newTags = [...tags, inputValue.trim()];\n setTags(newTags);\n setInputValue(\"\");\n onChange?.(newTags);\n } else if (e.key === 'Backspace' && inputValue === \"\" && tags.length > 0) {\n // Remove the last tag when backspace is pressed on empty input\n const newTags = tags.slice(0, -1);\n setTags(newTags);\n onChange?.(newTags);\n }\n };\n\n return (\n <div className={`input-with-tags-container ${className}`} onClick={() => inputRef.current?.focus()} >\n {tags.map((tag, index) => (\n <span key={index} className=\"tag-in-inputwithtags\">\n {tag} \n <span\n className=\"close-icon-in-inputwithtags\"\n onClick={(e) => {\n e.stopPropagation();\n const newTags = tags.filter((_, i) => i !== index);\n setTags(newTags);\n onChange?.(newTags);\n }}\n >\n <Icon name=\"close\" />\n </span>\n </span>\n ))}\n <input\n className=\"input-with-tags-input\"\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n />\n </div>\n );\n}"],"names":["React__default","useState","useRef","Icon","InputWithTags","value","onChange","placeholder","className","tags","setTags","inputValue","setInputValue","inputRef","handleKeyDown","e","key","trim","preventDefault","newTags","length","slice","React","createElement","onClick","_a","current","focus","map","tag","index","stopPropagation","filter","_","i","name","ref","type","target","onKeyDown"],"mappings":"AAUO,OAAAA,KAAA,YAAAC,GAAA,UAAAC,SAAA;AAAA,OAAA;AAAA,SAAA,QAAAC,SAAA;AAAA,SAASC,EAAc;AAAA,EAAEC,OAAAA;AAAAA,EAAOC,UAAAA;AAAAA,EAAUC,aAAAA;AAAAA,EAAaC,WAAAA;AAA8B,GAAG;AACrF,QAAA,CAACC,GAAMC,CAAO,IAAIT,EAAmB,CAAC,GAAGI,CAAK,CAAC,GAC/C,CAACM,GAAYC,CAAa,IAAIX,EAAS,EAAE,GACzCY,IAAWX,EAAyB,IAAI,GAExCY,IAAgBA,CAACC,MAAuC;AAC1D,QAAIA,EAAEC,QAAQ,WAAWL,EAAWM,QAAQ;AACxCF,MAAAA,EAAEG,eAAe;AACjB,YAAMC,IAAU,CAAC,GAAGV,GAAME,EAAWM,MAAM;AAC3CP,MAAAA,EAAQS,CAAO,GACfP,EAAc,EAAE,GAChBN,KAAAA,QAAAA,EAAWa;AAAAA,IAAO,WACXJ,EAAEC,QAAQ,eAAeL,MAAe,MAAMF,EAAKW,SAAS,GAAG;AAEtE,YAAMD,IAAUV,EAAKY,MAAM,GAAG,EAAE;AAChCX,MAAAA,EAAQS,CAAO,GACfb,KAAAA,QAAAA,EAAWa;AAAAA,IAAO;AAAA,EAE1B;AAGIG,SAAAA,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKf,WAAW,6BAA6BA,CAAS;AAAA,IAAIgB,SAASA,MAAAA;AArBpE,UAAAC;AAqB0EZ,cAAAA,IAAAA,EAASa,YAATb,gBAAAA,EAAkBc;AAAAA;AAAAA,EAAM,GAC5FlB,EAAKmB,IAAI,CAACC,GAAKC,MACZR,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMP,KAAKc;AAAAA,IAAOtB,WAAU;AAAA,EACvBqB,GAAAA,GACDN,gBAAAA,EAAAA,cAAA,QAAA;AAAA,IACAf,WAAU;AAAA,IACVgB,SAAUT,CAAMA,MAAA;AACZA,MAAAA,EAAEgB,gBAAgB;AAClB,YAAMZ,IAAUV,EAAKuB,OAAO,CAACC,GAAGC,MAAMA,MAAMJ,CAAK;AACjDpB,MAAAA,EAAQS,CAAO,GACfb,KAAAA,QAAAA,EAAWa;AAAAA,IAAO;AAAA,EACtB,GAEII,gBAAAA,EAAAA,cAACpB,GAAI;AAAA,IAACgC,MAAK;AAAA,EAAS,CAAA,CAClB,CACJ,CACT,GACDb,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACIf,WAAU;AAAA,IACV4B,KAAKvB;AAAAA,IACLwB,MAAK;AAAA,IACLhC,OAAOM;AAAAA,IACPL,UAAWS,CAAAA,MAAMH,EAAcG,EAAEuB,OAAOjC,KAAK;AAAA,IAC7CkC,WAAWzB;AAAAA,IACXP,aAAAA;AAAAA,EAAAA,CACH,CACA;AAEb;"}
|