laif-ds 0.1.86 → 0.1.88
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/components/ui/app-multiple-select-dropdown.js +109 -86
- package/dist/components/ui/async-select.js +182 -151
- package/dist/components/ui/multiple-selector.js +203 -191
- package/dist/components/ui/weekly-calendar/appointment-card.js +39 -39
- package/dist/components/ui/weekly-calendar/day-column.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/styles.v3.css +1 -1
- package/package.json +1 -1
- package/dist/components/ui/command-portal.js +0 -67
|
@@ -1,131 +1,155 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as r, jsxs as l, Fragment as
|
|
3
|
-
import * as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
const
|
|
16
|
-
function
|
|
2
|
+
import { jsx as r, jsxs as l, Fragment as F } from "react/jsx-runtime";
|
|
3
|
+
import * as t from "react";
|
|
4
|
+
import { useEffect as T } from "react";
|
|
5
|
+
import { cn as p } from "../../lib/utils.js";
|
|
6
|
+
import { Label as G } from "./label.js";
|
|
7
|
+
import { Badge as V } from "./badge.js";
|
|
8
|
+
import { Button as N } from "./button.js";
|
|
9
|
+
import { Popover as X, PopoverTrigger as $, PopoverContent as q } from "./popover.js";
|
|
10
|
+
import { Command as H, CommandList as I, CommandEmpty as J, CommandGroup as K, CommandItem as Q } from "./command.js";
|
|
11
|
+
import { inputVariants as U } from "./input.js";
|
|
12
|
+
import { Checkbox as Y } from "./checkbox.js";
|
|
13
|
+
import { Icon as y } from "./icon.js";
|
|
14
|
+
import Z from "../../node_modules/lucide-react/dist/esm/icons/chevron-down.js";
|
|
15
|
+
const _ = t.createContext({ size: "default" });
|
|
16
|
+
function me({
|
|
17
17
|
options: s,
|
|
18
|
-
value:
|
|
18
|
+
value: n,
|
|
19
19
|
onChange: o,
|
|
20
|
-
onClear:
|
|
20
|
+
onClear: h,
|
|
21
21
|
placeholder: k = "Seleziona...",
|
|
22
22
|
disabled: z = !1,
|
|
23
|
-
size:
|
|
24
|
-
label:
|
|
23
|
+
size: g = "default",
|
|
24
|
+
label: b,
|
|
25
25
|
labelClassName: M,
|
|
26
|
-
emptyMessage:
|
|
27
|
-
className:
|
|
28
|
-
filterPlaceholder:
|
|
29
|
-
filterable:
|
|
30
|
-
cancelLabel:
|
|
26
|
+
emptyMessage: P = "Nessun risultato trovato",
|
|
27
|
+
className: R,
|
|
28
|
+
filterPlaceholder: j = "Cerca...",
|
|
29
|
+
filterable: D = !1,
|
|
30
|
+
cancelLabel: O = "Cancella selezione",
|
|
31
31
|
cancelButtonLabel: S = "Cancella",
|
|
32
|
-
maxSelectedItems:
|
|
32
|
+
maxSelectedItems: a
|
|
33
33
|
}) {
|
|
34
|
-
const m =
|
|
34
|
+
const m = t.useId(), [d, L] = t.useState(!1), [c, v] = t.useState(""), [B, W] = t.useState(
|
|
35
|
+
void 0
|
|
36
|
+
), A = t.useRef(null), f = t.useRef(null), w = t.useCallback(
|
|
35
37
|
(e) => {
|
|
36
|
-
if (
|
|
37
|
-
o(
|
|
38
|
+
if (n.includes(e))
|
|
39
|
+
o(n.filter((i) => i !== e));
|
|
38
40
|
else {
|
|
39
|
-
if (
|
|
41
|
+
if (a && n.length >= a)
|
|
40
42
|
return;
|
|
41
|
-
o([...
|
|
43
|
+
o([...n, e]);
|
|
42
44
|
}
|
|
43
45
|
},
|
|
44
|
-
[
|
|
45
|
-
), x =
|
|
46
|
-
o([]),
|
|
47
|
-
}, [o]),
|
|
48
|
-
(e) => e.label.toLowerCase().includes(
|
|
49
|
-
) : s, [s,
|
|
50
|
-
return
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
[n, o, a]
|
|
47
|
+
), x = t.useCallback(() => {
|
|
48
|
+
o([]), v(""), h && h();
|
|
49
|
+
}, [o]), u = t.useMemo(() => s.filter((e) => n.includes(e.value)), [s, n]), E = t.useMemo(() => c ? s.filter(
|
|
50
|
+
(e) => e.label.toLowerCase().includes(c.toLowerCase())
|
|
51
|
+
) : s, [s, c]), C = t.useMemo(() => a ? n.length >= a : !1, [n, a]);
|
|
52
|
+
return T(() => {
|
|
53
|
+
if (d && f.current) {
|
|
54
|
+
const e = f.current.getBoundingClientRect();
|
|
55
|
+
W(e.width);
|
|
56
|
+
}
|
|
57
|
+
}, [d]), /* @__PURE__ */ r(_.Provider, { value: { size: g, id: m }, children: /* @__PURE__ */ l("div", { className: "space-y-1.5", children: [
|
|
58
|
+
b && /* @__PURE__ */ r(G, { htmlFor: m, className: M, children: b }),
|
|
59
|
+
/* @__PURE__ */ r(
|
|
53
60
|
"div",
|
|
54
61
|
{
|
|
55
|
-
ref:
|
|
62
|
+
ref: A,
|
|
56
63
|
className: "relative w-full",
|
|
57
64
|
"data-slot": "app-multiple-select-dropdown",
|
|
58
|
-
children: [
|
|
59
|
-
/* @__PURE__ */ l(
|
|
60
|
-
|
|
65
|
+
children: /* @__PURE__ */ l(X, { open: d, onOpenChange: L, children: [
|
|
66
|
+
/* @__PURE__ */ r($, { asChild: !0, children: /* @__PURE__ */ l(
|
|
67
|
+
N,
|
|
61
68
|
{
|
|
62
69
|
id: m,
|
|
63
70
|
type: "button",
|
|
64
71
|
variant: "outline",
|
|
65
72
|
role: "combobox",
|
|
66
|
-
"aria-expanded":
|
|
73
|
+
"aria-expanded": d,
|
|
67
74
|
disabled: z,
|
|
68
|
-
|
|
75
|
+
ref: f,
|
|
76
|
+
className: p(
|
|
69
77
|
"!bg-d-input relative w-full justify-between border font-normal",
|
|
70
78
|
"border-d-input ring-offset-background focus:ring-ring flex items-center rounded-md border whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
71
79
|
"aria-invalid:ring-d-destructive/20 dark:aria-invalid:ring-d-destructive/40 aria-invalid:border-d-destructive",
|
|
72
|
-
|
|
80
|
+
R
|
|
73
81
|
),
|
|
74
|
-
onClick: () => b(!u),
|
|
75
82
|
children: [
|
|
76
|
-
/* @__PURE__ */ r("div", { className: "flex w-full items-center gap-2 overflow-hidden", children:
|
|
83
|
+
/* @__PURE__ */ r("div", { className: "flex w-full items-center justify-between gap-2 overflow-hidden", children: u.length > 0 ? /* @__PURE__ */ l(F, { children: [
|
|
77
84
|
/* @__PURE__ */ l(
|
|
78
|
-
|
|
85
|
+
V,
|
|
79
86
|
{
|
|
80
87
|
variant: "secondary",
|
|
81
|
-
className: "flex items-center gap-1",
|
|
88
|
+
className: "!bg-d-accent flex items-center gap-1",
|
|
82
89
|
children: [
|
|
83
|
-
/* @__PURE__ */ r("span", { children:
|
|
84
|
-
|
|
90
|
+
/* @__PURE__ */ r("span", { children: u.length }),
|
|
91
|
+
u.length === 1 ? " elemento selezionato" : " elementi selezionati"
|
|
85
92
|
]
|
|
86
93
|
}
|
|
87
94
|
),
|
|
88
|
-
/* @__PURE__ */
|
|
95
|
+
/* @__PURE__ */ r(
|
|
89
96
|
"div",
|
|
90
97
|
{
|
|
91
|
-
className: "
|
|
98
|
+
className: "border-d-input bg-d-accent cursor-pointer rounded-full p-1",
|
|
92
99
|
onClick: (e) => {
|
|
93
100
|
e.stopPropagation(), e.preventDefault(), x();
|
|
94
101
|
},
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
103
|
+
"aria-label": O,
|
|
104
|
+
children: /* @__PURE__ */ r(
|
|
105
|
+
y,
|
|
106
|
+
{
|
|
107
|
+
name: "X",
|
|
108
|
+
size: "xs",
|
|
109
|
+
className: "!text-d-foreground opacity-50"
|
|
110
|
+
}
|
|
111
|
+
)
|
|
99
112
|
}
|
|
100
113
|
)
|
|
101
114
|
] }) : /* @__PURE__ */ r("span", { className: "text-d-muted-foreground", children: k }) }),
|
|
102
|
-
/* @__PURE__ */ r(
|
|
115
|
+
/* @__PURE__ */ r(Z, { className: "ml-1 h-4 w-4 shrink-0 opacity-50" })
|
|
103
116
|
]
|
|
104
117
|
}
|
|
105
|
-
),
|
|
118
|
+
) }),
|
|
106
119
|
/* @__PURE__ */ r(
|
|
107
|
-
|
|
120
|
+
q,
|
|
108
121
|
{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
122
|
+
className: p("p-0"),
|
|
123
|
+
style: { width: B },
|
|
124
|
+
align: "start",
|
|
125
|
+
side: "bottom",
|
|
126
|
+
sideOffset: 4,
|
|
127
|
+
onWheel: (e) => e.stopPropagation(),
|
|
128
|
+
avoidCollisions: !1,
|
|
129
|
+
children: /* @__PURE__ */ l(H, { className: "bg-d-popover w-full rounded-md border border-none shadow-lg", children: [
|
|
130
|
+
D && /* @__PURE__ */ l("div", { className: "border-d-border flex items-center justify-between border-b px-3", children: [
|
|
114
131
|
/* @__PURE__ */ l("div", { className: "flex items-center", children: [
|
|
115
|
-
/* @__PURE__ */ r(
|
|
132
|
+
/* @__PURE__ */ r(
|
|
133
|
+
y,
|
|
134
|
+
{
|
|
135
|
+
name: "Search",
|
|
136
|
+
className: "text-d-accent-foreground",
|
|
137
|
+
size: "sm"
|
|
138
|
+
}
|
|
139
|
+
),
|
|
116
140
|
/* @__PURE__ */ r(
|
|
117
141
|
"input",
|
|
118
142
|
{
|
|
119
143
|
id: "app-multiple-select-dropdown-filter",
|
|
120
|
-
placeholder:
|
|
121
|
-
value:
|
|
122
|
-
onChange: (e) =>
|
|
123
|
-
className: `focus-visible:ring-none border-none focus-visible:border-none disabled:opacity-50 ${
|
|
144
|
+
placeholder: j,
|
|
145
|
+
value: c,
|
|
146
|
+
onChange: (e) => v(e.target.value),
|
|
147
|
+
className: `focus-visible:ring-none border-none focus-visible:border-none disabled:opacity-50 ${U({ size: g })} !shadow-none`
|
|
124
148
|
}
|
|
125
149
|
)
|
|
126
150
|
] }),
|
|
127
|
-
|
|
128
|
-
|
|
151
|
+
u.length > 0 && /* @__PURE__ */ r(
|
|
152
|
+
N,
|
|
129
153
|
{
|
|
130
154
|
variant: "ghost",
|
|
131
155
|
size: "sm",
|
|
@@ -135,24 +159,23 @@ function ie({
|
|
|
135
159
|
}
|
|
136
160
|
)
|
|
137
161
|
] }),
|
|
138
|
-
/* @__PURE__ */ l(
|
|
139
|
-
/* @__PURE__ */ r(
|
|
140
|
-
/* @__PURE__ */ r(
|
|
141
|
-
const i =
|
|
162
|
+
/* @__PURE__ */ l(I, { className: "max-h-60 w-full", children: [
|
|
163
|
+
/* @__PURE__ */ r(J, { children: P }),
|
|
164
|
+
/* @__PURE__ */ r(K, { children: E.map((e) => {
|
|
165
|
+
const i = n.includes(e.value);
|
|
142
166
|
return /* @__PURE__ */ l(
|
|
143
|
-
|
|
167
|
+
Q,
|
|
144
168
|
{
|
|
145
169
|
value: e.value,
|
|
146
|
-
disabled: e.disabled || !i &&
|
|
170
|
+
disabled: e.disabled || !i && C,
|
|
147
171
|
onSelect: () => w(e.value),
|
|
148
|
-
className:
|
|
172
|
+
className: p(
|
|
149
173
|
"aria-selected:!bg-d-accent aria-selected:text-d-accent-foreground flex cursor-pointer items-center gap-2 px-2 py-1.5",
|
|
150
|
-
(e.disabled || !i &&
|
|
174
|
+
(e.disabled || !i && C) && "cursor-not-allowed opacity-50"
|
|
151
175
|
),
|
|
152
|
-
onPointerDown: (A) => A.stopPropagation(),
|
|
153
176
|
children: [
|
|
154
177
|
/* @__PURE__ */ r(
|
|
155
|
-
|
|
178
|
+
Y,
|
|
156
179
|
{
|
|
157
180
|
checked: i,
|
|
158
181
|
className: "z-10 mr-2 flex-shrink-0",
|
|
@@ -168,14 +191,14 @@ function ie({
|
|
|
168
191
|
);
|
|
169
192
|
}) })
|
|
170
193
|
] })
|
|
171
|
-
] })
|
|
194
|
+
] })
|
|
172
195
|
}
|
|
173
196
|
)
|
|
174
|
-
]
|
|
197
|
+
] })
|
|
175
198
|
}
|
|
176
199
|
)
|
|
177
200
|
] }) });
|
|
178
201
|
}
|
|
179
202
|
export {
|
|
180
|
-
|
|
203
|
+
me as AppMultipleSelectDropdown
|
|
181
204
|
};
|