@konstructio/ui 0.1.2-alpha.14 → 0.1.2-alpha.16

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
- import { c as o } from "./createLucideIcon-DnY-81vT.js";
1
+ import { c as o } from "./createLucideIcon-DGhJ8Z4k.js";
2
2
  /**
3
- * @license lucide-react v0.546.0 - ISC
3
+ * @license lucide-react v0.548.0 - ISC
4
4
  *
5
5
  * This source code is licensed under the ISC license.
6
6
  * See the LICENSE file in the root directory of this source tree.
@@ -1,13 +1,13 @@
1
- import { c as o } from "./createLucideIcon-DnY-81vT.js";
1
+ import { c as o } from "./createLucideIcon-DGhJ8Z4k.js";
2
2
  /**
3
- * @license lucide-react v0.546.0 - ISC
3
+ * @license lucide-react v0.548.0 - ISC
4
4
  *
5
5
  * This source code is licensed under the ISC license.
6
6
  * See the LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  const e = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]], n = o("chevron-left", e);
9
9
  /**
10
- * @license lucide-react v0.546.0 - ISC
10
+ * @license lucide-react v0.548.0 - ISC
11
11
  *
12
12
  * This source code is licensed under the ISC license.
13
13
  * See the LICENSE file in the root directory of this source tree.
@@ -3,9 +3,9 @@ import { useRef as h, useState as g, useCallback as v, useEffect as w } from "re
3
3
  import { cn as m } from "../../utils/index.js";
4
4
  import { buttonDismissVariants as x, badgeVariants as y } from "./Badge.variants.js";
5
5
  import { S as M } from "../../index-DQH6odE9.js";
6
- import { c as N } from "../../createLucideIcon-DnY-81vT.js";
6
+ import { c as N } from "../../createLucideIcon-DGhJ8Z4k.js";
7
7
  /**
8
- * @license lucide-react v0.546.0 - ISC
8
+ * @license lucide-react v0.548.0 - ISC
9
9
  *
10
10
  * This source code is licensed under the ISC license.
11
11
  * See the LICENSE file in the root directory of this source tree.
@@ -66,7 +66,7 @@ const t = r(
66
66
  "py-1",
67
67
  "h-auto",
68
68
  "text-[0.8125rem]",
69
- "leading-[1.375rem]",
69
+ "leading-5.5",
70
70
  "h-[30px]"
71
71
  ]
72
72
  }
@@ -2,7 +2,7 @@ import { jsx as Ee } from "react/jsx-runtime";
2
2
  import d, { createContext as sn, useContext as an, useCallback as j, useRef as ke, useLayoutEffect as cn, useState as De, useEffect as un, useMemo as Pe } from "react";
3
3
  import { cn as ue } from "../../utils/index.js";
4
4
  import { datePickerVariants as fn } from "./DatePicker.variants.js";
5
- import { C as ln, a as dn } from "../../chevron-right-DCDOrc04.js";
5
+ import { C as ln, a as dn } from "../../chevron-right-DeMVrnIg.js";
6
6
  import '../../DatePicker.css';function hn(e, t, n = "long") {
7
7
  return new Intl.DateTimeFormat("en-US", {
8
8
  // Enforces engine to render the time. Without the option JavaScriptCore omits it.
@@ -1,79 +1,83 @@
1
- import { jsx as l, jsxs as x, Fragment as N } from "react/jsx-runtime";
2
- import { forwardRef as k, useRef as C, useImperativeHandle as y } from "react";
1
+ import { jsx as l, jsxs as w, Fragment as N } from "react/jsx-runtime";
2
+ import { forwardRef as y, useRef as j, useImperativeHandle as C } from "react";
3
3
  import { cn as t } from "../../../../utils/index.js";
4
- import { useNavigationUlList as j } from "../../hooks/useNavigationList.js";
5
- import { ListItem as n } from "../ListItem/ListItem.js";
6
- import { listVariants as I } from "./List.variants.js";
7
- import { S as O } from "../../../../index-DQH6odE9.js";
8
- import { useDropdownContext as S } from "../../contexts/dropdown.hook.js";
9
- const A = k(
4
+ import { useNavigationUlList as O } from "../../hooks/useNavigationList.js";
5
+ import { ListItem as i } from "../ListItem/ListItem.js";
6
+ import { listVariants as D } from "./List.variants.js";
7
+ import { S as E } from "../../../../index-DQH6odE9.js";
8
+ import { useDropdownContext as F } from "../../contexts/dropdown.hook.js";
9
+ const I = y(
10
10
  ({
11
- additionalOptions: f,
12
- className: p,
13
- inputRef: o,
14
- isLoading: u,
15
- itemClassName: r,
16
- name: d,
17
- options: i,
18
- searchable: c = !1,
19
- wrapperInputRef: g,
20
- wrapperRef: b
21
- }, h) => {
22
- const s = C(null), { isOpen: v, searchTerm: L } = S();
23
- y(h, () => s.current, [s]), j({
24
- ulRef: s,
25
- wrapperRef: b,
26
- wrapperInputRef: g,
27
- inputRef: o,
28
- searchable: c
11
+ additionalOptions: p,
12
+ className: u,
13
+ inputRef: r,
14
+ isLoading: d,
15
+ itemClassName: s,
16
+ name: g,
17
+ options: c,
18
+ searchable: m = !1,
19
+ listItemSecondRowClassName: a,
20
+ wrapperInputRef: b,
21
+ wrapperRef: h
22
+ }, v) => {
23
+ const o = j(null), { isOpen: L, searchTerm: x } = F();
24
+ C(v, () => o.current, [o]), O({
25
+ ulRef: o,
26
+ wrapperRef: h,
27
+ wrapperInputRef: b,
28
+ inputRef: r,
29
+ searchable: m
29
30
  });
30
- const m = c ? i.filter((e) => {
31
- const a = L.toLowerCase();
32
- return (typeof e.label == "string" ? e.label.toLowerCase() : "").includes(a);
33
- }) : i, w = m.length === 0;
31
+ const f = m ? c.filter((e) => {
32
+ const n = x.toLowerCase();
33
+ return (typeof e.label == "string" ? e.label.toLowerCase() : "").includes(n);
34
+ }) : c, k = f.length === 0;
34
35
  return /* @__PURE__ */ l(
35
36
  "ul",
36
37
  {
37
- ref: s,
38
- title: d,
38
+ ref: o,
39
+ title: g,
39
40
  role: "listbox",
40
- className: t(I({ className: p })),
41
- "data-state": v ? "open" : "closed",
42
- children: u ? /* @__PURE__ */ l(
43
- n,
41
+ className: t(D({ className: u })),
42
+ "data-state": L ? "open" : "closed",
43
+ children: d ? /* @__PURE__ */ l(
44
+ i,
44
45
  {
45
- className: t("select-none", r),
46
+ className: t("select-none", s),
46
47
  isClickable: !1,
47
- inputRef: o,
48
+ inputRef: r,
48
49
  value: "Loading...",
49
- label: "Loading..."
50
+ label: "Loading...",
51
+ listItemSecondRowClassName: a
50
52
  }
51
- ) : w ? /* @__PURE__ */ l(
52
- n,
53
+ ) : k ? /* @__PURE__ */ l(
54
+ i,
53
55
  {
54
- className: t("select-none", r),
56
+ className: t("select-none", s),
55
57
  isClickable: !1,
56
- inputRef: o,
58
+ inputRef: r,
57
59
  value: "No options",
58
- label: "No options"
60
+ label: "No options",
61
+ listItemSecondRowClassName: a
59
62
  }
60
- ) : /* @__PURE__ */ x(N, { children: [
61
- m.map((e) => /* @__PURE__ */ l(
62
- n,
63
+ ) : /* @__PURE__ */ w(N, { children: [
64
+ f.map((e) => /* @__PURE__ */ l(
65
+ i,
63
66
  {
64
- className: t("select-none", r),
67
+ className: t("select-none", s),
65
68
  isClickable: !0,
66
- inputRef: o,
69
+ inputRef: r,
70
+ listItemSecondRowClassName: a,
67
71
  ...e
68
72
  },
69
73
  e.value
70
74
  )),
71
- f?.map((e, a) => /* @__PURE__ */ l("li", { role: "option", "data-action": "true", children: /* @__PURE__ */ l(O, { className: "flex p-2 w-full h-full gap-1 items-center text-sm [&>svg]:w-3.5 [&>svg]:h-3.5 [&>svg]:shrink-0 cursor-pointer select-none hover:bg-gray-50 hover:dark:bg-slate-700 focus:outline-0", children: e }) }, a))
75
+ p?.map((e, n) => /* @__PURE__ */ l("li", { role: "option", "data-action": "true", children: /* @__PURE__ */ l(E, { className: "flex p-2 w-full h-full gap-1 items-center text-sm [&>svg]:w-3.5 [&>svg]:h-3.5 [&>svg]:shrink-0 cursor-pointer select-none hover:bg-gray-50 hover:dark:bg-slate-700 focus:outline-0", children: e }) }, n))
72
76
  ] })
73
77
  }
74
78
  );
75
79
  }
76
80
  );
77
81
  export {
78
- A as List
82
+ I as List
79
83
  };
@@ -1,67 +1,89 @@
1
- import { jsx as o, jsxs as u } from "react/jsx-runtime";
2
- import { useRef as b, useCallback as l } from "react";
3
- import { Typography as w } from "../../../Typography/Typography.js";
4
- import { cn as y } from "../../../../utils/index.js";
5
- import { listItemVariants as k } from "./ListItem.variants.js";
6
- import { useDropdownContext as C } from "../../contexts/dropdown.hook.js";
7
- const E = ({
8
- isClickable: f,
9
- className: p,
10
- inputRef: d,
1
+ import { jsx as l, jsxs as d } from "react/jsx-runtime";
2
+ import { useRef as w, useCallback as o } from "react";
3
+ import { Typography as C } from "../../../Typography/Typography.js";
4
+ import { cn as i } from "../../../../utils/index.js";
5
+ import { listItemVariants as L } from "./ListItem.variants.js";
6
+ import { useDropdownContext as I } from "../../contexts/dropdown.hook.js";
7
+ const K = ({
8
+ isClickable: p,
9
+ className: h,
10
+ inputRef: b,
11
+ listItemSecondRowClassName: x,
11
12
  ...t
12
13
  }) => {
13
- const { searchTerm: r, highlightSearchEnabled: i, setValue: c, toggleOpen: m } = C(), h = b(null), a = l(
14
+ const { searchTerm: a, highlightSearchEnabled: c, setValue: m, toggleOpen: f } = I(), g = w(null), n = o(
14
15
  (e) => {
15
- c(e.value, d), m(!1);
16
+ m(e.value, b), f(!1);
16
17
  },
17
- [c, m]
18
- ), g = l(
19
- (e, s) => {
20
- e.key === "Enter" && (e.stopPropagation(), a(s));
18
+ [m, f]
19
+ ), u = o(
20
+ (e, r) => {
21
+ e.key === "Enter" && (e.stopPropagation(), n(r));
21
22
  },
22
- [a]
23
- ), x = l(
24
- (e) => {
23
+ [n]
24
+ ), k = o(
25
+ (e, r) => {
25
26
  if (typeof e != "string")
26
27
  return e;
27
- const s = i && r.length > 0 ? e.split(new RegExp(`(${r})`, "gi")).map((n) => n.toLowerCase() === r.toLowerCase() ? /* @__PURE__ */ o(
28
+ const y = c && a.length > 0 ? e.split(new RegExp(`(${a})`, "gi")).map((s) => s.toLowerCase() === a.toLowerCase() ? /* @__PURE__ */ l(
28
29
  "mark",
29
30
  {
30
31
  className: "bg-transparent font-semibold text-slate-800 dark:text-slate-50",
31
- children: n
32
+ children: s
32
33
  },
33
- n
34
- ) : n) : [e];
35
- return /* @__PURE__ */ o(
36
- w,
34
+ s
35
+ ) : s) : [e];
36
+ return /* @__PURE__ */ d(
37
+ C,
37
38
  {
38
39
  variant: "body2",
39
- className: "text-zinc-700 dark:text-slate-50",
40
- children: s
40
+ className: "text-zinc-700 dark:text-slate-50 font-medium",
41
+ children: [
42
+ y,
43
+ r ? /* @__PURE__ */ l(
44
+ "span",
45
+ {
46
+ className: i(
47
+ "block font-normal text-sm text-slate-800 dark:text-slate-50",
48
+ x
49
+ ),
50
+ children: r
51
+ }
52
+ ) : null
53
+ ]
41
54
  }
42
55
  );
43
56
  },
44
- [i, r]
57
+ [c, a]
45
58
  );
46
- return /* @__PURE__ */ u(
59
+ return /* @__PURE__ */ d(
47
60
  "li",
48
61
  {
49
- ref: h,
62
+ ref: g,
50
63
  role: "option",
51
64
  "data-action": "false",
52
- className: y(k({ className: p })),
65
+ className: i(L({ className: h })),
53
66
  tabIndex: 0,
54
67
  onClick: (e) => {
55
- f && (a(t), e.stopPropagation());
68
+ p && (n(t), e.stopPropagation());
56
69
  },
57
- onKeyDown: (e) => g(e, t),
70
+ onKeyDown: (e) => u(e, t),
58
71
  children: [
59
- t.leftIcon ? /* @__PURE__ */ o("span", { className: "w-4 h-4 flex justify-center items-center", children: t.leftIcon }) : null,
60
- x(t.label)
72
+ t.leftIcon ? /* @__PURE__ */ l(
73
+ "span",
74
+ {
75
+ className: i("w-4 h-4 flex justify-center", {
76
+ "items-center": !t.subLabel,
77
+ "items-baseline -translate-y-2": !!t.subLabel
78
+ }),
79
+ children: t.leftIcon
80
+ }
81
+ ) : null,
82
+ k(t.label, t.subLabel)
61
83
  ]
62
84
  }
63
85
  );
64
86
  };
65
87
  export {
66
- E as ListItem
88
+ K as ListItem
67
89
  };
@@ -1,30 +1,30 @@
1
1
  import { jsxs as x, jsx as a } from "react/jsx-runtime";
2
- import { forwardRef as Q, useId as S, useRef as T, useImperativeHandle as X, useMemo as Y, useEffect as z } from "react";
3
- import { Loading as Z } from "../../Loading/Loading.js";
4
- import { Typography as B } from "../../Typography/Typography.js";
2
+ import { forwardRef as S, useId as X, useRef as T, useImperativeHandle as Y, useMemo as Z, useEffect as z } from "react";
3
+ import { Loading as B } from "../../Loading/Loading.js";
4
+ import { Typography as ee } from "../../Typography/Typography.js";
5
5
  import { cn as c } from "../../../utils/index.js";
6
- import { labelVariants as ee, inputVariants as te, dropdownVariants as ae } from "../Dropdown.variants.js";
7
- import { useDropdown as re } from "../hooks/useDropdown.js";
8
- import { List as ne } from "./List/List.js";
9
- import { c as V } from "../../../createLucideIcon-DnY-81vT.js";
10
- import { useDropdownContext as oe } from "../contexts/dropdown.hook.js";
6
+ import { labelVariants as te, inputVariants as ae, dropdownVariants as re } from "../Dropdown.variants.js";
7
+ import { useDropdown as ne } from "../hooks/useDropdown.js";
8
+ import { List as oe } from "./List/List.js";
9
+ import { c as V } from "../../../createLucideIcon-DGhJ8Z4k.js";
10
+ import { useDropdownContext as le } from "../contexts/dropdown.hook.js";
11
11
  /**
12
- * @license lucide-react v0.546.0 - ISC
12
+ * @license lucide-react v0.548.0 - ISC
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
16
  */
17
- const le = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]], se = V("chevron-up", le);
17
+ const se = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]], ce = V("chevron-up", se);
18
18
  /**
19
- * @license lucide-react v0.546.0 - ISC
19
+ * @license lucide-react v0.548.0 - ISC
20
20
  *
21
21
  * This source code is licensed under the ISC license.
22
22
  * See the LICENSE file in the root directory of this source tree.
23
23
  */
24
- const ce = [
24
+ const ie = [
25
25
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
26
26
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
27
- ], ie = V("search", ce), ke = Q(
27
+ ], ue = V("search", ie), Ce = S(
28
28
  ({
29
29
  additionalOptions: _,
30
30
  className: $,
@@ -39,23 +39,24 @@ const ce = [
39
39
  labelClassName: M,
40
40
  listClassName: A,
41
41
  listItemClassName: H,
42
+ listItemSecondRowClassName: P,
42
43
  name: i,
43
44
  options: o,
44
45
  placeholder: N,
45
46
  searchable: k = !1,
46
47
  showSearchIcon: C,
47
- theme: P,
48
- wrapperClassName: U,
48
+ theme: U,
49
+ wrapperClassName: W,
49
50
  onBlur: I,
50
51
  ...b
51
- }, W) => {
52
- const E = S(), t = T(null), O = T(null), { wrapperRef: u, wrapperInputRef: R, handleOpen: g } = re({
52
+ }, q) => {
53
+ const E = X(), t = T(null), O = T(null), { wrapperRef: u, wrapperInputRef: R, handleOpen: g } = ne({
53
54
  ulRef: O,
54
55
  inputRef: t,
55
56
  disabled: r
56
- }), { isOpen: p, searchTerm: q, value: l, toggleOpen: G, setValue: y, setSearchTerm: L } = oe(), f = i ? `${E}-${i}` : E;
57
- X(W, () => t.current, [t]);
58
- const n = Y(() => o.find(({ value: e }) => e === l), [o, l]);
57
+ }), { isOpen: p, searchTerm: G, value: l, toggleOpen: J, setValue: y, setSearchTerm: L } = le(), f = i ? `${E}-${i}` : E;
58
+ Y(q, () => t.current, [t]);
59
+ const n = Z(() => o.find(({ value: e }) => e === l), [o, l]);
59
60
  z(() => {
60
61
  t.current && (t.current.value = l ? n?.value : "");
61
62
  }, [n, l]), z(() => {
@@ -71,12 +72,12 @@ const ce = [
71
72
  }), () => {
72
73
  e.abort();
73
74
  };
74
- }, [G, u, L, I, l]);
75
- const J = (e) => {
75
+ }, [J, u, L, I, l]);
76
+ const K = (e) => {
76
77
  const s = e.target.value;
77
78
  L(s);
78
79
  const d = o.find(
79
- (K) => K.value.toLocaleLowerCase() === s.toLocaleLowerCase()
80
+ (Q) => Q.value.toLocaleLowerCase() === s.toLocaleLowerCase()
80
81
  );
81
82
  d && y(d.value);
82
83
  };
@@ -84,14 +85,14 @@ const ce = [
84
85
  "div",
85
86
  {
86
87
  ref: u,
87
- className: c("flex flex-col w-full relative", U),
88
- "data-theme": P,
88
+ className: c("flex flex-col w-full relative", W),
89
+ "data-theme": U,
89
90
  children: [
90
91
  w ? /* @__PURE__ */ x(
91
92
  "label",
92
93
  {
93
94
  id: f,
94
- className: c(ee({ className: M })),
95
+ className: c(te({ className: M })),
95
96
  htmlFor: f,
96
97
  onClick: () => !r && g(),
97
98
  children: [
@@ -106,7 +107,7 @@ const ce = [
106
107
  ref: R,
107
108
  id: f,
108
109
  className: c(
109
- ae({ className: $, hasError: !!m, disabled: r })
110
+ re({ className: $, hasError: !!m, disabled: r })
110
111
  ),
111
112
  role: "combobox",
112
113
  onClick: () => !r && g(),
@@ -116,17 +117,17 @@ const ce = [
116
117
  children: [
117
118
  /* @__PURE__ */ x("div", { className: "flex gap-2.5 items-center flex-1", children: [
118
119
  n?.leftIcon && !C && /* @__PURE__ */ a("span", { className: "w-4 h-4 flex justify-center items-center dark:text-slate-50", children: n.leftIcon }),
119
- C && /* @__PURE__ */ a(ie, { className: "w-4 h-4 text-zinc-500 select-none dark:text-slate-300 dark:group-focus-within:text-slate-50 transition-colors duration-300" }),
120
+ C && /* @__PURE__ */ a(ue, { className: "w-4 h-4 text-zinc-500 select-none dark:text-slate-300 dark:group-focus-within:text-slate-50 transition-colors duration-300" }),
120
121
  k ? /* @__PURE__ */ a(
121
122
  "input",
122
123
  {
123
124
  ref: t,
124
125
  type: "text",
125
- value: p ? q : n?.label || "",
126
+ value: p ? G : n?.label || "",
126
127
  name: i,
127
- onChange: J,
128
+ onChange: K,
128
129
  placeholder: N,
129
- className: c(te({ className: F }), {
130
+ className: c(ae({ className: F }), {
130
131
  "text-red-700 placeholder:text-red-700": !!m
131
132
  }),
132
133
  onClick: (e) => {
@@ -141,7 +142,7 @@ const ce = [
141
142
  ...b
142
143
  }
143
144
  ) : /* @__PURE__ */ a(
144
- B,
145
+ ee,
145
146
  {
146
147
  variant: "body2",
147
148
  className: c(
@@ -157,8 +158,8 @@ const ce = [
157
158
  }
158
159
  )
159
160
  ] }),
160
- j ? /* @__PURE__ */ a(Z, { className: "w-4 h-4 text-zinc-500 select-none" }) : !C && /* @__PURE__ */ a(
161
- se,
161
+ j ? /* @__PURE__ */ a(B, { className: "w-4 h-4 text-zinc-500 select-none" }) : !C && /* @__PURE__ */ a(
162
+ ce,
162
163
  {
163
164
  "data-state": p ? "open" : "closed",
164
165
  className: c(
@@ -188,7 +189,7 @@ const ce = [
188
189
  }
189
190
  ),
190
191
  p && /* @__PURE__ */ a(
191
- ne,
192
+ oe,
192
193
  {
193
194
  ref: O,
194
195
  additionalOptions: _,
@@ -200,7 +201,8 @@ const ce = [
200
201
  inputRef: t,
201
202
  options: o,
202
203
  isLoading: !!j,
203
- searchable: k
204
+ searchable: k,
205
+ listItemSecondRowClassName: P
204
206
  }
205
207
  )
206
208
  ]
@@ -209,5 +211,5 @@ const ce = [
209
211
  }
210
212
  );
211
213
  export {
212
- ke as Wrapper
214
+ Ce as Wrapper
213
215
  };
@@ -5,7 +5,7 @@ import { Checkbox as C } from "../../../Checkbox/Checkbox.js";
5
5
  import { cn as n } from "../../../../utils/index.js";
6
6
  import { filterButtonIconVariants as y, filterButtonVariants as N } from "../../Filter.variants.js";
7
7
  import { useBadgeMultiSelect as B } from "./BadgeMultiSelect.hook.js";
8
- import { C as O } from "../../../../chevron-down-Cx07rtLP.js";
8
+ import { C as O } from "../../../../chevron-down-J5nS1Tu0.js";
9
9
  const $ = ({
10
10
  options: i,
11
11
  label: p,
@@ -5,7 +5,7 @@ import { DatePicker as w } from "../../../Datepicker/DatePicker.js";
5
5
  import { cn as o } from "../../../../utils/index.js";
6
6
  import { filterButtonIconVariants as x, filterButtonVariants as y } from "../../Filter.variants.js";
7
7
  import { useDateFilterDropdown as D } from "./DateFilterDropdown.hook.js";
8
- import { C as N } from "../../../../chevron-down-Cx07rtLP.js";
8
+ import { C as N } from "../../../../chevron-down-J5nS1Tu0.js";
9
9
  const R = ({
10
10
  label: s,
11
11
  position: l = "left",
@@ -1,9 +1,9 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import { cn as c } from "../../utils/index.js";
3
3
  import { loadingVariants as i } from "./Loading.variants.js";
4
- import { c as t } from "../../createLucideIcon-DnY-81vT.js";
4
+ import { c as t } from "../../createLucideIcon-DGhJ8Z4k.js";
5
5
  /**
6
- * @license lucide-react v0.546.0 - ISC
6
+ * @license lucide-react v0.548.0 - ISC
7
7
  *
8
8
  * This source code is licensed under the ISC license.
9
9
  * See the LICENSE file in the root directory of this source tree.