impact-nova 1.7.50 → 1.7.51
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/ag-grid-react/index.js +1 -1
- package/dist/components/ui/choice-card/choice-card.d.ts +45 -0
- package/dist/components/ui/choice-card/choice-card.js +282 -0
- package/dist/components/ui/choice-card/index.d.ts +1 -0
- package/dist/components/ui/choice-card/index.js +12 -0
- package/dist/components/ui/data-table/data-table-saved-views.js +53 -53
- package/dist/components/ui/nested-list/components/NestedListContent.d.ts +2 -1
- package/dist/components/ui/nested-list/components/NestedListContent.js +46 -46
- package/dist/components/ui/nested-list/components/SortableItem.d.ts +1 -0
- package/dist/components/ui/nested-list/components/SortableItem.js +72 -70
- package/dist/components/ui/nested-list/nested-list.js +166 -152
- package/dist/components/ui/sheet.js +6 -6
- package/dist/components/ui/wizard/index.d.ts +1 -0
- package/dist/components/ui/wizard/index.js +17 -0
- package/dist/components/ui/wizard/wizard.d.ts +53 -0
- package/dist/components/ui/wizard/wizard.js +312 -0
- package/dist/impact-nova.css +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +339 -336
- package/dist/llms/rules/real-world-patterns.js +1 -1
- package/package.json +11 -11
- package/dist/components/ui/create-item-flow/create-item-flow.d.ts +0 -46
- package/dist/components/ui/create-item-flow/create-item-flow.js +0 -231
- package/dist/components/ui/create-item-flow/index.d.ts +0 -1
- package/dist/components/ui/create-item-flow/index.js +0 -16
- package/dist/components/ui/report-card/index.d.ts +0 -1
- package/dist/components/ui/report-card/index.js +0 -10
- package/dist/components/ui/report-card/report-card.d.ts +0 -19
- package/dist/components/ui/report-card/report-card.js +0 -146
|
@@ -110,7 +110,7 @@ function De({
|
|
|
110
110
|
applyAdvancedFilter: (e) => {
|
|
111
111
|
if (!c.current) return;
|
|
112
112
|
const t = ge(e);
|
|
113
|
-
c.current.setFilterModel(t), c.current.onFilterChanged();
|
|
113
|
+
c.current.setFilterModel(t), c.current.onFilterChanged(), c.current.refreshHeader();
|
|
114
114
|
},
|
|
115
115
|
openMenu: (e, t, o = "column") => {
|
|
116
116
|
S.current = e, T.current = t, E.current = o, L(!0);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type ChoiceCardGroupBaseProps = {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
orientation?: "horizontal" | "vertical";
|
|
5
|
+
className?: string;
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export type ChoiceCardGroupSingleProps = ChoiceCardGroupBaseProps & {
|
|
9
|
+
type?: "single";
|
|
10
|
+
value?: string;
|
|
11
|
+
defaultValue?: string;
|
|
12
|
+
onValueChange?: (value: string) => void;
|
|
13
|
+
};
|
|
14
|
+
export type ChoiceCardGroupMultipleProps = ChoiceCardGroupBaseProps & {
|
|
15
|
+
type: "multiple";
|
|
16
|
+
value?: string[];
|
|
17
|
+
defaultValue?: string[];
|
|
18
|
+
onValueChange?: (value: string[]) => void;
|
|
19
|
+
};
|
|
20
|
+
export type ChoiceCardGroupProps = ChoiceCardGroupSingleProps | ChoiceCardGroupMultipleProps;
|
|
21
|
+
export declare function useChoiceCardGroup(): {
|
|
22
|
+
value: string | string[];
|
|
23
|
+
type: "multiple" | "single";
|
|
24
|
+
setValue: (value: string | string[]) => void;
|
|
25
|
+
isSelected: (itemValue: string) => boolean;
|
|
26
|
+
};
|
|
27
|
+
declare const ChoiceCardGroup: React.FC<ChoiceCardGroupProps>;
|
|
28
|
+
export interface ChoiceCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
29
|
+
value: string;
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
}
|
|
32
|
+
declare const ChoiceCard: React.ForwardRefExoticComponent<ChoiceCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
declare const ChoiceCardIndicator: React.FC<{
|
|
34
|
+
className?: string;
|
|
35
|
+
}>;
|
|
36
|
+
export type ChoiceCardContentProps = React.HTMLAttributes<HTMLDivElement>;
|
|
37
|
+
declare const ChoiceCardContent: React.ForwardRefExoticComponent<ChoiceCardContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
38
|
+
declare const ChoiceCardMedia: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
39
|
+
declare const ChoiceCardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
|
|
40
|
+
export interface ChoiceCardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
41
|
+
children?: React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
declare const ChoiceCardHeader: React.ForwardRefExoticComponent<ChoiceCardHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
44
|
+
declare const ChoiceCardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
45
|
+
export { ChoiceCardGroup, ChoiceCard, ChoiceCardIndicator, ChoiceCardContent, ChoiceCardMedia, ChoiceCardTitle, ChoiceCardHeader, ChoiceCardDescription, };
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import * as c from "react";
|
|
3
|
+
import * as g from "@radix-ui/react-radio-group";
|
|
4
|
+
import { useControllableState as v } from "@radix-ui/react-use-controllable-state";
|
|
5
|
+
import { Check as R } from "../../../icons/index.js";
|
|
6
|
+
import { cn as l } from "../../../lib/utils.js";
|
|
7
|
+
const b = c.createContext(null), f = c.createContext({
|
|
8
|
+
selected: !1,
|
|
9
|
+
type: "single"
|
|
10
|
+
}), x = () => {
|
|
11
|
+
const e = c.useContext(b);
|
|
12
|
+
if (!e)
|
|
13
|
+
throw new Error("ChoiceCard components must be used within ChoiceCardGroup");
|
|
14
|
+
return e;
|
|
15
|
+
};
|
|
16
|
+
function B() {
|
|
17
|
+
const { value: e, type: t, setValue: o, isSelected: r } = x();
|
|
18
|
+
return c.useMemo(
|
|
19
|
+
() => ({
|
|
20
|
+
value: e,
|
|
21
|
+
type: t,
|
|
22
|
+
setValue: o,
|
|
23
|
+
isSelected: r
|
|
24
|
+
}),
|
|
25
|
+
[e, t, o, r]
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
const y = (e, t, o) => l(
|
|
29
|
+
"relative flex flex-col items-start gap-3 p-3 rounded-xl",
|
|
30
|
+
"border-t border-r border-b-2 border-l-4",
|
|
31
|
+
"cursor-pointer select-none transition-[border-color,background-color] duration-150",
|
|
32
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-focus-ring",
|
|
33
|
+
e ? "border-brand bg-brand-tint hover:bg-brand-tint-hover" : "border-stroke-subtle bg-canvas-elevated hover:border-brand hover:bg-canvas-muted",
|
|
34
|
+
t && "cursor-not-allowed opacity-60",
|
|
35
|
+
o
|
|
36
|
+
), G = ({
|
|
37
|
+
value: e,
|
|
38
|
+
defaultValue: t = "",
|
|
39
|
+
onValueChange: o,
|
|
40
|
+
disabled: r,
|
|
41
|
+
orientation: p = "horizontal",
|
|
42
|
+
className: u,
|
|
43
|
+
children: s
|
|
44
|
+
}) => {
|
|
45
|
+
const [n, i] = v({
|
|
46
|
+
prop: e,
|
|
47
|
+
defaultProp: t,
|
|
48
|
+
onChange: o
|
|
49
|
+
}), d = c.useCallback(
|
|
50
|
+
(C) => n === C,
|
|
51
|
+
[n]
|
|
52
|
+
), m = c.useMemo(
|
|
53
|
+
() => ({
|
|
54
|
+
type: "single",
|
|
55
|
+
disabled: r,
|
|
56
|
+
value: n,
|
|
57
|
+
setValue: (C) => i(C),
|
|
58
|
+
isSelected: d,
|
|
59
|
+
toggle: (C) => i(C)
|
|
60
|
+
}),
|
|
61
|
+
[r, n, i, d]
|
|
62
|
+
);
|
|
63
|
+
return /* @__PURE__ */ a(b.Provider, { value: m, children: /* @__PURE__ */ a(
|
|
64
|
+
g.Root,
|
|
65
|
+
{
|
|
66
|
+
value: n,
|
|
67
|
+
onValueChange: i,
|
|
68
|
+
disabled: r,
|
|
69
|
+
className: l(
|
|
70
|
+
"flex gap-4",
|
|
71
|
+
p === "vertical" && "flex-col gap-2",
|
|
72
|
+
u
|
|
73
|
+
),
|
|
74
|
+
"data-component": "choice-card-group",
|
|
75
|
+
"data-type": "single",
|
|
76
|
+
children: s
|
|
77
|
+
}
|
|
78
|
+
) });
|
|
79
|
+
}, M = ({
|
|
80
|
+
value: e,
|
|
81
|
+
defaultValue: t = [],
|
|
82
|
+
onValueChange: o,
|
|
83
|
+
disabled: r,
|
|
84
|
+
orientation: p = "horizontal",
|
|
85
|
+
className: u,
|
|
86
|
+
children: s
|
|
87
|
+
}) => {
|
|
88
|
+
const [n, i] = v({
|
|
89
|
+
prop: e,
|
|
90
|
+
defaultProp: t,
|
|
91
|
+
onChange: o
|
|
92
|
+
}), d = c.useMemo(() => n ?? [], [n]), m = c.useCallback(
|
|
93
|
+
(h) => d.includes(h),
|
|
94
|
+
[d]
|
|
95
|
+
), C = c.useCallback(
|
|
96
|
+
(h) => {
|
|
97
|
+
if (d.includes(h)) {
|
|
98
|
+
i(d.filter((k) => k !== h));
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
i([...d, h]);
|
|
102
|
+
},
|
|
103
|
+
[d, i]
|
|
104
|
+
), w = c.useMemo(
|
|
105
|
+
() => ({
|
|
106
|
+
type: "multiple",
|
|
107
|
+
disabled: r,
|
|
108
|
+
value: d,
|
|
109
|
+
setValue: (h) => i(h),
|
|
110
|
+
isSelected: m,
|
|
111
|
+
toggle: C
|
|
112
|
+
}),
|
|
113
|
+
[r, d, i, m, C]
|
|
114
|
+
);
|
|
115
|
+
return /* @__PURE__ */ a(b.Provider, { value: w, children: /* @__PURE__ */ a(
|
|
116
|
+
"div",
|
|
117
|
+
{
|
|
118
|
+
role: "group",
|
|
119
|
+
className: l(
|
|
120
|
+
"flex gap-4",
|
|
121
|
+
p === "vertical" && "flex-col gap-2",
|
|
122
|
+
u
|
|
123
|
+
),
|
|
124
|
+
"data-component": "choice-card-group",
|
|
125
|
+
"data-type": "multiple",
|
|
126
|
+
children: s
|
|
127
|
+
}
|
|
128
|
+
) });
|
|
129
|
+
}, S = (e) => e.type === "multiple" ? /* @__PURE__ */ a(M, { ...e }) : /* @__PURE__ */ a(G, { ...e });
|
|
130
|
+
S.displayName = "ChoiceCardGroup";
|
|
131
|
+
const N = c.forwardRef(({ className: e, selected: t, disabled: o, children: r, ...p }, u) => /* @__PURE__ */ a(
|
|
132
|
+
"div",
|
|
133
|
+
{
|
|
134
|
+
ref: u,
|
|
135
|
+
className: y(t, o, e),
|
|
136
|
+
"data-component": "choice-card",
|
|
137
|
+
"data-selected": t || void 0,
|
|
138
|
+
...p,
|
|
139
|
+
children: r
|
|
140
|
+
}
|
|
141
|
+
));
|
|
142
|
+
N.displayName = "ChoiceCardSurface";
|
|
143
|
+
const P = c.forwardRef(
|
|
144
|
+
({ value: e, className: t, children: o, disabled: r, ...p }, u) => {
|
|
145
|
+
const s = x(), n = r || s.disabled, i = s.isSelected(e), d = c.useMemo(
|
|
146
|
+
() => ({
|
|
147
|
+
selected: i,
|
|
148
|
+
disabled: n,
|
|
149
|
+
type: s.type
|
|
150
|
+
}),
|
|
151
|
+
[i, n, s.type]
|
|
152
|
+
);
|
|
153
|
+
return s.type === "single" ? /* @__PURE__ */ a(f.Provider, { value: d, children: /* @__PURE__ */ a(g.Item, { value: e, asChild: !0, disabled: n, children: /* @__PURE__ */ a(
|
|
154
|
+
N,
|
|
155
|
+
{
|
|
156
|
+
ref: u,
|
|
157
|
+
selected: i,
|
|
158
|
+
disabled: n,
|
|
159
|
+
className: t,
|
|
160
|
+
...p,
|
|
161
|
+
children: o
|
|
162
|
+
}
|
|
163
|
+
) }) }) : /* @__PURE__ */ a(f.Provider, { value: d, children: /* @__PURE__ */ a(
|
|
164
|
+
"button",
|
|
165
|
+
{
|
|
166
|
+
ref: u,
|
|
167
|
+
type: "button",
|
|
168
|
+
role: "checkbox",
|
|
169
|
+
"aria-checked": i,
|
|
170
|
+
disabled: n,
|
|
171
|
+
className: y(i, n, t),
|
|
172
|
+
"data-component": "choice-card",
|
|
173
|
+
"data-selected": i || void 0,
|
|
174
|
+
onClick: () => s.toggle(e),
|
|
175
|
+
children: o
|
|
176
|
+
}
|
|
177
|
+
) });
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
P.displayName = "ChoiceCard";
|
|
181
|
+
const V = ({ className: e }) => {
|
|
182
|
+
const { selected: t, type: o } = c.useContext(f);
|
|
183
|
+
return o === "multiple" ? /* @__PURE__ */ a(
|
|
184
|
+
"div",
|
|
185
|
+
{
|
|
186
|
+
className: l(
|
|
187
|
+
"w-5 h-5 rounded border-2 flex items-center justify-center shrink-0 transition-colors",
|
|
188
|
+
t ? "border-brand bg-brand text-brand-foreground" : "border-stroke-field bg-transparent",
|
|
189
|
+
e
|
|
190
|
+
),
|
|
191
|
+
"aria-hidden": "true",
|
|
192
|
+
children: t && /* @__PURE__ */ a(R, { size: 12 })
|
|
193
|
+
}
|
|
194
|
+
) : /* @__PURE__ */ a(
|
|
195
|
+
"div",
|
|
196
|
+
{
|
|
197
|
+
className: l(
|
|
198
|
+
"w-5 h-5 rounded-full border-2 flex items-center justify-center shrink-0 transition-colors",
|
|
199
|
+
t ? "border-brand" : "border-stroke-field",
|
|
200
|
+
e
|
|
201
|
+
),
|
|
202
|
+
"aria-hidden": "true",
|
|
203
|
+
children: t && /* @__PURE__ */ a("div", { className: "w-2.5 h-2.5 rounded-full bg-brand" })
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
};
|
|
207
|
+
V.displayName = "ChoiceCardIndicator";
|
|
208
|
+
const j = c.forwardRef(
|
|
209
|
+
({ className: e, children: t, ...o }, r) => /* @__PURE__ */ a(
|
|
210
|
+
"div",
|
|
211
|
+
{
|
|
212
|
+
ref: r,
|
|
213
|
+
className: l("flex flex-col items-start gap-2 w-full", e),
|
|
214
|
+
"data-slot": "choice-card-content",
|
|
215
|
+
...o,
|
|
216
|
+
children: t
|
|
217
|
+
}
|
|
218
|
+
)
|
|
219
|
+
);
|
|
220
|
+
j.displayName = "ChoiceCardContent";
|
|
221
|
+
const z = c.forwardRef(
|
|
222
|
+
({ className: e, children: t, ...o }, r) => /* @__PURE__ */ a(
|
|
223
|
+
"div",
|
|
224
|
+
{
|
|
225
|
+
ref: r,
|
|
226
|
+
className: l("flex items-center justify-center shrink-0", e),
|
|
227
|
+
"data-slot": "choice-card-media",
|
|
228
|
+
...o,
|
|
229
|
+
children: t
|
|
230
|
+
}
|
|
231
|
+
)
|
|
232
|
+
);
|
|
233
|
+
z.displayName = "ChoiceCardMedia";
|
|
234
|
+
const I = c.forwardRef(
|
|
235
|
+
({ className: e, children: t, ...o }, r) => /* @__PURE__ */ a(
|
|
236
|
+
"h3",
|
|
237
|
+
{
|
|
238
|
+
ref: r,
|
|
239
|
+
className: l(
|
|
240
|
+
"text-base font-medium leading-tight text-content capitalize",
|
|
241
|
+
e
|
|
242
|
+
),
|
|
243
|
+
...o,
|
|
244
|
+
children: t
|
|
245
|
+
}
|
|
246
|
+
)
|
|
247
|
+
);
|
|
248
|
+
I.displayName = "ChoiceCardTitle";
|
|
249
|
+
const D = c.forwardRef(
|
|
250
|
+
({ className: e, children: t, ...o }, r) => /* @__PURE__ */ a(
|
|
251
|
+
"div",
|
|
252
|
+
{
|
|
253
|
+
ref: r,
|
|
254
|
+
className: l("flex items-center gap-1 w-full", e),
|
|
255
|
+
"data-slot": "choice-card-header",
|
|
256
|
+
...o,
|
|
257
|
+
children: t
|
|
258
|
+
}
|
|
259
|
+
)
|
|
260
|
+
);
|
|
261
|
+
D.displayName = "ChoiceCardHeader";
|
|
262
|
+
const H = c.forwardRef(({ className: e, children: t, ...o }, r) => /* @__PURE__ */ a(
|
|
263
|
+
"p",
|
|
264
|
+
{
|
|
265
|
+
ref: r,
|
|
266
|
+
className: l("text-xs font-medium leading-4 text-content-secondary", e),
|
|
267
|
+
...o,
|
|
268
|
+
children: t
|
|
269
|
+
}
|
|
270
|
+
));
|
|
271
|
+
H.displayName = "ChoiceCardDescription";
|
|
272
|
+
export {
|
|
273
|
+
P as ChoiceCard,
|
|
274
|
+
j as ChoiceCardContent,
|
|
275
|
+
H as ChoiceCardDescription,
|
|
276
|
+
S as ChoiceCardGroup,
|
|
277
|
+
D as ChoiceCardHeader,
|
|
278
|
+
V as ChoiceCardIndicator,
|
|
279
|
+
z as ChoiceCardMedia,
|
|
280
|
+
I as ChoiceCardTitle,
|
|
281
|
+
B as useChoiceCardGroup
|
|
282
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ChoiceCardGroup, ChoiceCard, ChoiceCardIndicator, ChoiceCardContent, ChoiceCardMedia, ChoiceCardTitle, ChoiceCardHeader, ChoiceCardDescription, useChoiceCardGroup, type ChoiceCardGroupProps, type ChoiceCardGroupSingleProps, type ChoiceCardGroupMultipleProps, type ChoiceCardProps, type ChoiceCardContentProps, type ChoiceCardHeaderProps, } from './choice-card';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ChoiceCard as o, ChoiceCardContent as r, ChoiceCardDescription as i, ChoiceCardGroup as a, ChoiceCardHeader as d, ChoiceCardIndicator as c, ChoiceCardMedia as h, ChoiceCardTitle as t, useChoiceCardGroup as n } from "./choice-card.js";
|
|
2
|
+
export {
|
|
3
|
+
o as ChoiceCard,
|
|
4
|
+
r as ChoiceCardContent,
|
|
5
|
+
i as ChoiceCardDescription,
|
|
6
|
+
a as ChoiceCardGroup,
|
|
7
|
+
d as ChoiceCardHeader,
|
|
8
|
+
c as ChoiceCardIndicator,
|
|
9
|
+
h as ChoiceCardMedia,
|
|
10
|
+
t as ChoiceCardTitle,
|
|
11
|
+
n as useChoiceCardGroup
|
|
12
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs as i, Fragment as W, jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import * as n from "react";
|
|
3
|
-
import { ChevronDown as ge, Star as O, Search as ye, Bookmark as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { Popover as
|
|
3
|
+
import { ChevronDown as ge, Star as O, Search as ye, Bookmark as we, Pencil as Ne, Trash2 as Te } from "lucide-react";
|
|
4
|
+
import { cn as k } from "../../../lib/utils.js";
|
|
5
|
+
import { Popover as ke, PopoverTrigger as Ve, PopoverContent as Ce } from "../popover.js";
|
|
6
6
|
import { Tooltip as X, TooltipTrigger as Z, TooltipContent as q } from "../tooltip.js";
|
|
7
7
|
import { Button as m } from "../button.js";
|
|
8
8
|
import { Badge as E } from "../badge.js";
|
|
@@ -22,12 +22,12 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
22
22
|
menuOpen: j,
|
|
23
23
|
defaultMenuOpen: ne = !1,
|
|
24
24
|
onMenuOpenChange: R,
|
|
25
|
-
onSearch:
|
|
25
|
+
onSearch: V,
|
|
26
26
|
isLoadingViews: L = !1,
|
|
27
27
|
customListContent: _,
|
|
28
28
|
disableApply: ie = !1,
|
|
29
|
-
className:
|
|
30
|
-
onSaveViewClick:
|
|
29
|
+
className: re,
|
|
30
|
+
onSaveViewClick: le,
|
|
31
31
|
onApply: se,
|
|
32
32
|
onCancel: oe,
|
|
33
33
|
onEditView: de,
|
|
@@ -41,41 +41,41 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
41
41
|
C || pe(e), R?.(e);
|
|
42
42
|
},
|
|
43
43
|
[C, R]
|
|
44
|
-
), [v, D] = n.useState("All"), [
|
|
44
|
+
), [v, D] = n.useState("All"), [w, S] = n.useState(""), [F, z] = n.useState("");
|
|
45
45
|
n.useEffect(() => {
|
|
46
|
-
const e = window.setTimeout(() => z(
|
|
46
|
+
const e = window.setTimeout(() => z(w), 300);
|
|
47
47
|
return () => window.clearTimeout(e);
|
|
48
|
-
}, [
|
|
49
|
-
|
|
50
|
-
}, [F,
|
|
48
|
+
}, [w]), n.useEffect(() => {
|
|
49
|
+
V && V(F);
|
|
50
|
+
}, [F, V]);
|
|
51
51
|
const Q = n.useMemo(
|
|
52
52
|
() => o.find((e) => e.isActive),
|
|
53
53
|
[o]
|
|
54
|
-
), d = Q ?? null, Y = te ?? Q?.viewName ?? a("dataTable.savedViewsNotApplicable"), [
|
|
54
|
+
), d = Q ?? null, Y = te ?? Q?.viewName ?? a("dataTable.savedViewsNotApplicable"), [N, M] = n.useState(null), [x, $] = n.useState(null), K = n.useRef(!1);
|
|
55
55
|
n.useEffect(() => {
|
|
56
56
|
const e = u && !K.current;
|
|
57
57
|
if (K.current = u, e) {
|
|
58
|
-
const
|
|
59
|
-
M(
|
|
58
|
+
const r = o.find((c) => c.isActive);
|
|
59
|
+
M(r?.id ?? null), D("All"), S(""), z("");
|
|
60
60
|
}
|
|
61
61
|
}, [u, o]);
|
|
62
|
-
const g = n.useMemo(() => v === "All" ? o : o.filter((e) => e.viewType === v), [o, v]), f =
|
|
63
|
-
(e,
|
|
62
|
+
const g = n.useMemo(() => v === "All" ? o : o.filter((e) => e.viewType === v), [o, v]), f = w.trim().toLowerCase(), T = n.useCallback(
|
|
63
|
+
(e, r) => r ? (e.viewName ?? "").trim().toLowerCase().includes(r) : !0,
|
|
64
64
|
[]
|
|
65
65
|
), A = n.useMemo(() => {
|
|
66
66
|
let e = g;
|
|
67
|
-
return f && (e = e.filter((
|
|
67
|
+
return f && (e = e.filter((r) => T(r, f))), e;
|
|
68
68
|
}, [g, f, T]), h = n.useMemo(() => {
|
|
69
69
|
if (g.length === 0) return [];
|
|
70
70
|
const e = Object.groupBy(g, Me);
|
|
71
|
-
return Ae.flatMap((
|
|
72
|
-
const c = e[
|
|
71
|
+
return Ae.flatMap((r) => {
|
|
72
|
+
const c = e[r]?.[0];
|
|
73
73
|
return c ? f && !T(c, f) ? [] : [c] : [];
|
|
74
74
|
});
|
|
75
75
|
}, [g, f, T]), P = n.useMemo(() => {
|
|
76
|
-
const e = new Set(h.map((
|
|
77
|
-
return A.filter((
|
|
78
|
-
}, [A, h]), G =
|
|
76
|
+
const e = new Set(h.map((r) => r.id));
|
|
77
|
+
return A.filter((r) => !e.has(r.id));
|
|
78
|
+
}, [A, h]), G = N === null ? null : o.find((e) => e.id === N) ?? null, fe = () => {
|
|
79
79
|
se?.(G, { activeView: d }), p(!1);
|
|
80
80
|
}, he = () => {
|
|
81
81
|
oe?.({ activeView: d, pendingView: G }), p(!1);
|
|
@@ -84,14 +84,14 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
84
84
|
};
|
|
85
85
|
if (!b)
|
|
86
86
|
return null;
|
|
87
|
-
const ve = o.length > 0, H = (e,
|
|
88
|
-
const B =
|
|
87
|
+
const ve = o.length > 0, H = (e, r, c) => {
|
|
88
|
+
const B = N === e.id, s = me === e.id, J = r === "priority" && !!e.isActive, xe = r === "list" && !!e.isActive;
|
|
89
89
|
return /* @__PURE__ */ i(
|
|
90
90
|
"div",
|
|
91
91
|
{
|
|
92
92
|
role: "button",
|
|
93
93
|
tabIndex: 0,
|
|
94
|
-
className:
|
|
94
|
+
className: k(
|
|
95
95
|
"mb-1 flex cursor-pointer items-center justify-between rounded-lg px-3 py-2 text-left text-sm font-medium font-['Manrope'] transition-all duration-300 relative overflow-hidden",
|
|
96
96
|
!s && "hover:bg-muted",
|
|
97
97
|
!s && J && !B && "bg-primary/10 dark:bg-primary/15",
|
|
@@ -100,8 +100,8 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
100
100
|
s && "pointer-events-none"
|
|
101
101
|
),
|
|
102
102
|
onClick: () => !s && M(e.id),
|
|
103
|
-
onKeyDown: (
|
|
104
|
-
(
|
|
103
|
+
onKeyDown: (l) => {
|
|
104
|
+
(l.key === "Enter" || l.key === " ") && (l.preventDefault(), s || M(e.id));
|
|
105
105
|
},
|
|
106
106
|
children: [
|
|
107
107
|
s && /* @__PURE__ */ t(
|
|
@@ -118,7 +118,7 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
118
118
|
/* @__PURE__ */ t(Z, { asChild: !0, children: /* @__PURE__ */ t(
|
|
119
119
|
"span",
|
|
120
120
|
{
|
|
121
|
-
className:
|
|
121
|
+
className: k(
|
|
122
122
|
"min-w-0 flex-1 truncate relative z-10",
|
|
123
123
|
xe && "underline decoration-primary decoration-2 underline-offset-2"
|
|
124
124
|
),
|
|
@@ -136,10 +136,10 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
136
136
|
size: "iconSm",
|
|
137
137
|
className: "text-foreground hover:text-content-charcoal",
|
|
138
138
|
"aria-label": a("dataTable.savedViewsEdit"),
|
|
139
|
-
onClick: (
|
|
140
|
-
|
|
139
|
+
onClick: (l) => {
|
|
140
|
+
l.stopPropagation(), l.preventDefault(), p(!1), de?.(e, { activeView: d });
|
|
141
141
|
},
|
|
142
|
-
children: /* @__PURE__ */ t(
|
|
142
|
+
children: /* @__PURE__ */ t(Ne, { className: "size-3.5" })
|
|
143
143
|
}
|
|
144
144
|
) : null,
|
|
145
145
|
e.isDeletable ? /* @__PURE__ */ t(
|
|
@@ -150,8 +150,8 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
150
150
|
size: "iconSm",
|
|
151
151
|
className: "text-foreground hover:text-destructive",
|
|
152
152
|
"aria-label": a("dataTable.savedViewsDelete"),
|
|
153
|
-
onClick: (
|
|
154
|
-
|
|
153
|
+
onClick: (l) => {
|
|
154
|
+
l.stopPropagation(), l.preventDefault(), p(!1), $(e);
|
|
155
155
|
},
|
|
156
156
|
children: /* @__PURE__ */ t(Te, { className: "size-3.5" })
|
|
157
157
|
}
|
|
@@ -165,8 +165,8 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
165
165
|
className: "text-yellow-500 hover:text-yellow-600 disabled:opacity-50",
|
|
166
166
|
"aria-label": a("dataTable.savedViewsDefaultAction"),
|
|
167
167
|
disabled: s,
|
|
168
|
-
onClick: (
|
|
169
|
-
|
|
168
|
+
onClick: (l) => {
|
|
169
|
+
l.stopPropagation(), l.preventDefault(), s || (y(e.id), setTimeout(() => y(null), 1200), U?.(e, { activeView: d }));
|
|
170
170
|
},
|
|
171
171
|
children: s ? /* @__PURE__ */ t("div", { className: "size-3.5 animate-spin rounded-full border-2 border-yellow-500 border-t-transparent" }) : /* @__PURE__ */ t(O, { className: "size-3.5 fill-current" })
|
|
172
172
|
}
|
|
@@ -179,8 +179,8 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
179
179
|
className: "text-yellow-500 hover:text-yellow-600 disabled:opacity-50",
|
|
180
180
|
"aria-label": a("dataTable.savedViewsSetDefault"),
|
|
181
181
|
disabled: s,
|
|
182
|
-
onClick: (
|
|
183
|
-
|
|
182
|
+
onClick: (l) => {
|
|
183
|
+
l.stopPropagation(), l.preventDefault(), s || (y(e.id), setTimeout(() => y(null), 1200), U?.(e, { activeView: d }));
|
|
184
184
|
},
|
|
185
185
|
children: s ? /* @__PURE__ */ t("div", { className: "size-3.5 animate-spin rounded-full border-2 border-yellow-500 border-t-transparent" }) : /* @__PURE__ */ t(O, { className: "size-3.5" })
|
|
186
186
|
}
|
|
@@ -196,20 +196,20 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
196
196
|
"div",
|
|
197
197
|
{
|
|
198
198
|
"data-component": "data-table-saved-views",
|
|
199
|
-
className:
|
|
200
|
-
"mb-2 mx-4 rounded-lg bg-[linear-gradient(83.74deg,#F5F9EC_72.68%,#D7E5B2_108.88%)]
|
|
201
|
-
|
|
199
|
+
className: k(
|
|
200
|
+
"mb-2 mx-4 flex min-w-0 flex-nowrap items-center justify-between gap-2 rounded-lg bg-[linear-gradient(83.74deg,#F5F9EC_72.68%,#D7E5B2_108.88%)] px-2 py-3",
|
|
201
|
+
re
|
|
202
202
|
),
|
|
203
203
|
children: [
|
|
204
|
-
L ? /* @__PURE__ */ i("div", { className: "flex min-w-0 flex-1 items-center gap-1", children: [
|
|
204
|
+
L ? /* @__PURE__ */ i("div", { className: "flex min-w-0 flex-1 items-center gap-1 overflow-hidden", children: [
|
|
205
205
|
/* @__PURE__ */ t(I, { className: "h-6 w-24 rounded-full bg-black/10" }),
|
|
206
|
-
/* @__PURE__ */ t(I, { className: "h-6 w-6 rounded-md bg-black/10" })
|
|
207
|
-
] }) : ve ? /* @__PURE__ */ t("div", { className: "flex min-w-0 flex-1 items-center gap-1
|
|
208
|
-
/* @__PURE__ */ t(
|
|
206
|
+
/* @__PURE__ */ t(I, { className: "h-6 w-6 shrink-0 rounded-md bg-black/10" })
|
|
207
|
+
] }) : ve ? /* @__PURE__ */ t("div", { className: "flex min-w-0 flex-1 items-center justify-start gap-1 overflow-hidden", children: /* @__PURE__ */ i(ke, { open: u, onOpenChange: be, children: [
|
|
208
|
+
/* @__PURE__ */ t(Ve, { asChild: !0, children: /* @__PURE__ */ i(
|
|
209
209
|
"button",
|
|
210
210
|
{
|
|
211
211
|
type: "button",
|
|
212
|
-
className: "flex min-w-0 max-w-full cursor-pointer items-center gap-1 rounded-md border-none bg-transparent p-0 text-left outline-none focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2",
|
|
212
|
+
className: "inline-flex min-w-0 max-w-full cursor-pointer items-center gap-1 overflow-hidden rounded-md border-none bg-transparent p-0 text-left outline-none focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2",
|
|
213
213
|
"aria-expanded": u,
|
|
214
214
|
"aria-haspopup": "dialog",
|
|
215
215
|
"aria-label": a("dataTable.savedViewsOpenMenu"),
|
|
@@ -220,8 +220,8 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
220
220
|
{
|
|
221
221
|
color: "success",
|
|
222
222
|
variant: "outline",
|
|
223
|
-
className: "max-w-
|
|
224
|
-
children:
|
|
223
|
+
className: "w-fit max-w-full min-w-0 shrink font-['Manrope']",
|
|
224
|
+
children: Y
|
|
225
225
|
}
|
|
226
226
|
) }),
|
|
227
227
|
/* @__PURE__ */ t(q, { variant: "tertiary", side: "top", children: Y })
|
|
@@ -229,7 +229,7 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
229
229
|
/* @__PURE__ */ t(
|
|
230
230
|
"span",
|
|
231
231
|
{
|
|
232
|
-
className:
|
|
232
|
+
className: k(
|
|
233
233
|
"flex size-6 shrink-0 items-center justify-center rounded-md bg-white transition-transform duration-200",
|
|
234
234
|
u && "rotate-180"
|
|
235
235
|
),
|
|
@@ -298,7 +298,7 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
298
298
|
{
|
|
299
299
|
size: "sm",
|
|
300
300
|
placeholder: a("dataTable.savedViewsSearchPlaceholder"),
|
|
301
|
-
value:
|
|
301
|
+
value: w,
|
|
302
302
|
onChange: (e) => S(e.target.value),
|
|
303
303
|
prefix: /* @__PURE__ */ t(
|
|
304
304
|
ye,
|
|
@@ -349,7 +349,7 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
349
349
|
type: "button",
|
|
350
350
|
variant: "default",
|
|
351
351
|
size: "md",
|
|
352
|
-
disabled: ie ||
|
|
352
|
+
disabled: ie || N === d?.id,
|
|
353
353
|
onClick: fe,
|
|
354
354
|
children: a("dataTable.savedViewsApply")
|
|
355
355
|
}
|
|
@@ -358,8 +358,8 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
358
358
|
] })
|
|
359
359
|
}
|
|
360
360
|
)
|
|
361
|
-
] }) }) : /* @__PURE__ */ i("div", { className: "flex min-w-0 flex-1 items-center gap-2 text-content-tertiary", children: [
|
|
362
|
-
/* @__PURE__ */ t(
|
|
361
|
+
] }) }) : /* @__PURE__ */ i("div", { className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden text-content-tertiary", children: [
|
|
362
|
+
/* @__PURE__ */ t(we, { className: "size-4 shrink-0", "aria-hidden": !0 }),
|
|
363
363
|
/* @__PURE__ */ t("span", { className: "text-sm font-medium font-['Manrope']", children: a("dataTable.savedViewsNoneYet") })
|
|
364
364
|
] }),
|
|
365
365
|
/* @__PURE__ */ t(
|
|
@@ -370,7 +370,7 @@ const Ae = ["default", "active", "system"], Ye = ({
|
|
|
370
370
|
size: "sm",
|
|
371
371
|
className: "shrink-0 font-['Manrope']",
|
|
372
372
|
onClick: () => {
|
|
373
|
-
p(!1),
|
|
373
|
+
p(!1), le?.({ activeView: d });
|
|
374
374
|
},
|
|
375
375
|
children: a("dataTable.savedViewsSave")
|
|
376
376
|
}
|
|
@@ -8,8 +8,9 @@ interface NestedListContentProps {
|
|
|
8
8
|
items: {
|
|
9
9
|
item: NestedListItem;
|
|
10
10
|
level: number;
|
|
11
|
+
indentLevel: number;
|
|
11
12
|
}[];
|
|
12
|
-
renderItem: (item: NestedListItem, level: number) => React.ReactNode;
|
|
13
|
+
renderItem: (item: NestedListItem, level: number, indentLevel: number) => React.ReactNode;
|
|
13
14
|
onDragStart: (event: DragStartEvent) => void;
|
|
14
15
|
onDragOver: (event: DragOverEvent) => void;
|
|
15
16
|
onDragEnd: (event: DragEndEvent) => void;
|