@elqnt/react 1.0.11 → 2.0.1
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/index.d.mts +3 -26
- package/dist/components/index.d.ts +3 -26
- package/dist/components/index.js +928 -1397
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +972 -1440
- package/dist/components/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -8
- package/dist/index.d.ts +2 -8
- package/dist/index.js +928 -1484
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +967 -1521
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -8
package/dist/components/index.js
CHANGED
|
@@ -53,7 +53,6 @@ __export(components_exports, {
|
|
|
53
53
|
DurationInput: () => DurationInput,
|
|
54
54
|
EloquentActionBar: () => EloquentActionBar,
|
|
55
55
|
FilterCombobox: () => FilterCombobox,
|
|
56
|
-
FilterDialog: () => FilterDialog,
|
|
57
56
|
Form: () => Form,
|
|
58
57
|
FormCombobox: () => FormCombobox,
|
|
59
58
|
FormControl: () => FormControl,
|
|
@@ -65,15 +64,12 @@ __export(components_exports, {
|
|
|
65
64
|
FormMessage: () => FormMessage,
|
|
66
65
|
FormRow: () => FormRow,
|
|
67
66
|
FormWithActionButtons: () => FormWithActionButtons,
|
|
68
|
-
Icon: () =>
|
|
67
|
+
Icon: () => Icon,
|
|
69
68
|
IconButton: () => IconButton,
|
|
70
69
|
Input: () => Input2,
|
|
71
|
-
KnowledgeGraphWordCloud: () => KnowledgeGraphWordCloud,
|
|
72
|
-
LeftNav: () => LeftNav,
|
|
73
70
|
MarkdownRenderer: () => MarkdownRenderer,
|
|
74
71
|
MultiSelect: () => MultiSelect,
|
|
75
72
|
MultiStepProcess: () => MultiStepProcess,
|
|
76
|
-
OrgSelector: () => OrgSelector,
|
|
77
73
|
PageHeader: () => PageHeader,
|
|
78
74
|
Popover: () => Popover2,
|
|
79
75
|
ProfileMenu: () => ProfileMenu,
|
|
@@ -101,6 +97,9 @@ __export(components_exports, {
|
|
|
101
97
|
});
|
|
102
98
|
module.exports = __toCommonJS(components_exports);
|
|
103
99
|
|
|
100
|
+
// components/form-controls/button.tsx
|
|
101
|
+
var React2 = __toESM(require("react"));
|
|
102
|
+
|
|
104
103
|
// components/ui/button.tsx
|
|
105
104
|
var React = __toESM(require("react"));
|
|
106
105
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
@@ -155,516 +154,12 @@ var Button = React.forwardRef(
|
|
|
155
154
|
);
|
|
156
155
|
Button.displayName = "Button";
|
|
157
156
|
|
|
158
|
-
// components/ui/dialog.tsx
|
|
159
|
-
var React2 = __toESM(require("react"));
|
|
160
|
-
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
161
|
-
var import_react_icons = require("@radix-ui/react-icons");
|
|
162
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
163
|
-
var Dialog = DialogPrimitive.Root;
|
|
164
|
-
var DialogTrigger = DialogPrimitive.Trigger;
|
|
165
|
-
var DialogPortal = DialogPrimitive.Portal;
|
|
166
|
-
var DialogOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
167
|
-
DialogPrimitive.Overlay,
|
|
168
|
-
{
|
|
169
|
-
ref,
|
|
170
|
-
className: cn(
|
|
171
|
-
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
172
|
-
className
|
|
173
|
-
),
|
|
174
|
-
...props
|
|
175
|
-
}
|
|
176
|
-
));
|
|
177
|
-
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
178
|
-
var DialogContent = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(DialogPortal, { children: [
|
|
179
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(DialogOverlay, {}),
|
|
180
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
181
|
-
DialogPrimitive.Content,
|
|
182
|
-
{
|
|
183
|
-
ref,
|
|
184
|
-
className: cn(
|
|
185
|
-
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
|
|
186
|
-
className
|
|
187
|
-
),
|
|
188
|
-
...props,
|
|
189
|
-
children: [
|
|
190
|
-
children,
|
|
191
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
192
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_icons.Cross2Icon, { className: "h-4 w-4" }),
|
|
193
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "sr-only", children: "Close" })
|
|
194
|
-
] })
|
|
195
|
-
]
|
|
196
|
-
}
|
|
197
|
-
)
|
|
198
|
-
] }));
|
|
199
|
-
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
200
|
-
var DialogHeader = ({
|
|
201
|
-
className,
|
|
202
|
-
...props
|
|
203
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
204
|
-
"div",
|
|
205
|
-
{
|
|
206
|
-
className: cn(
|
|
207
|
-
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
208
|
-
className
|
|
209
|
-
),
|
|
210
|
-
...props
|
|
211
|
-
}
|
|
212
|
-
);
|
|
213
|
-
DialogHeader.displayName = "DialogHeader";
|
|
214
|
-
var DialogFooter = ({
|
|
215
|
-
className,
|
|
216
|
-
...props
|
|
217
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
218
|
-
"div",
|
|
219
|
-
{
|
|
220
|
-
className: cn(
|
|
221
|
-
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
222
|
-
className
|
|
223
|
-
),
|
|
224
|
-
...props
|
|
225
|
-
}
|
|
226
|
-
);
|
|
227
|
-
DialogFooter.displayName = "DialogFooter";
|
|
228
|
-
var DialogTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
229
|
-
DialogPrimitive.Title,
|
|
230
|
-
{
|
|
231
|
-
ref,
|
|
232
|
-
className: cn(
|
|
233
|
-
"text-lg font-semibold leading-none tracking-tight",
|
|
234
|
-
className
|
|
235
|
-
),
|
|
236
|
-
...props
|
|
237
|
-
}
|
|
238
|
-
));
|
|
239
|
-
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
240
|
-
var DialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
241
|
-
DialogPrimitive.Description,
|
|
242
|
-
{
|
|
243
|
-
ref,
|
|
244
|
-
className: cn("text-sm text-muted-foreground", className),
|
|
245
|
-
...props
|
|
246
|
-
}
|
|
247
|
-
));
|
|
248
|
-
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
249
|
-
|
|
250
|
-
// components/ui/input.tsx
|
|
251
|
-
var React3 = __toESM(require("react"));
|
|
252
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
253
|
-
var Input = React3.forwardRef(
|
|
254
|
-
({ className, type, ...props }, ref) => {
|
|
255
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
256
|
-
"input",
|
|
257
|
-
{
|
|
258
|
-
type,
|
|
259
|
-
className: cn(
|
|
260
|
-
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
261
|
-
className
|
|
262
|
-
),
|
|
263
|
-
ref,
|
|
264
|
-
...props
|
|
265
|
-
}
|
|
266
|
-
);
|
|
267
|
-
}
|
|
268
|
-
);
|
|
269
|
-
Input.displayName = "Input";
|
|
270
|
-
|
|
271
|
-
// components/ui/select.tsx
|
|
272
|
-
var React4 = __toESM(require("react"));
|
|
273
|
-
var import_react_icons2 = require("@radix-ui/react-icons");
|
|
274
|
-
var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
|
|
275
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
276
|
-
var Select = SelectPrimitive.Root;
|
|
277
|
-
var SelectValue = SelectPrimitive.Value;
|
|
278
|
-
var SelectTrigger = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
279
|
-
SelectPrimitive.Trigger,
|
|
280
|
-
{
|
|
281
|
-
ref,
|
|
282
|
-
className: cn(
|
|
283
|
-
"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
284
|
-
className
|
|
285
|
-
),
|
|
286
|
-
...props,
|
|
287
|
-
children: [
|
|
288
|
-
children,
|
|
289
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_icons2.CaretSortIcon, { className: "h-4 w-4 opacity-50" }) })
|
|
290
|
-
]
|
|
291
|
-
}
|
|
292
|
-
));
|
|
293
|
-
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
294
|
-
var SelectScrollUpButton = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
295
|
-
SelectPrimitive.ScrollUpButton,
|
|
296
|
-
{
|
|
297
|
-
ref,
|
|
298
|
-
className: cn(
|
|
299
|
-
"flex cursor-default items-center justify-center py-1",
|
|
300
|
-
className
|
|
301
|
-
),
|
|
302
|
-
...props,
|
|
303
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_icons2.ChevronUpIcon, {})
|
|
304
|
-
}
|
|
305
|
-
));
|
|
306
|
-
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
307
|
-
var SelectScrollDownButton = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
308
|
-
SelectPrimitive.ScrollDownButton,
|
|
309
|
-
{
|
|
310
|
-
ref,
|
|
311
|
-
className: cn(
|
|
312
|
-
"flex cursor-default items-center justify-center py-1",
|
|
313
|
-
className
|
|
314
|
-
),
|
|
315
|
-
...props,
|
|
316
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_icons2.ChevronDownIcon, {})
|
|
317
|
-
}
|
|
318
|
-
));
|
|
319
|
-
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
320
|
-
var SelectContent = React4.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
321
|
-
SelectPrimitive.Content,
|
|
322
|
-
{
|
|
323
|
-
ref,
|
|
324
|
-
className: cn(
|
|
325
|
-
"relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
326
|
-
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
327
|
-
className
|
|
328
|
-
),
|
|
329
|
-
position,
|
|
330
|
-
...props,
|
|
331
|
-
children: [
|
|
332
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectScrollUpButton, {}),
|
|
333
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
334
|
-
SelectPrimitive.Viewport,
|
|
335
|
-
{
|
|
336
|
-
className: cn(
|
|
337
|
-
"p-1",
|
|
338
|
-
position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
|
|
339
|
-
),
|
|
340
|
-
children
|
|
341
|
-
}
|
|
342
|
-
),
|
|
343
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectScrollDownButton, {})
|
|
344
|
-
]
|
|
345
|
-
}
|
|
346
|
-
) }));
|
|
347
|
-
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
348
|
-
var SelectLabel = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
349
|
-
SelectPrimitive.Label,
|
|
350
|
-
{
|
|
351
|
-
ref,
|
|
352
|
-
className: cn("px-2 py-1.5 text-sm font-semibold", className),
|
|
353
|
-
...props
|
|
354
|
-
}
|
|
355
|
-
));
|
|
356
|
-
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
357
|
-
var SelectItem = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
358
|
-
SelectPrimitive.Item,
|
|
359
|
-
{
|
|
360
|
-
ref,
|
|
361
|
-
className: cn(
|
|
362
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
363
|
-
className
|
|
364
|
-
),
|
|
365
|
-
...props,
|
|
366
|
-
children: [
|
|
367
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_icons2.CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
368
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectPrimitive.ItemText, { children })
|
|
369
|
-
]
|
|
370
|
-
}
|
|
371
|
-
));
|
|
372
|
-
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
373
|
-
var SelectSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
374
|
-
SelectPrimitive.Separator,
|
|
375
|
-
{
|
|
376
|
-
ref,
|
|
377
|
-
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
378
|
-
...props
|
|
379
|
-
}
|
|
380
|
-
));
|
|
381
|
-
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
382
|
-
|
|
383
|
-
// components/entities/filter-dialog.tsx
|
|
384
|
-
var import_entity = require("@elqnt/entity");
|
|
385
|
-
|
|
386
|
-
// components/ui/badge.tsx
|
|
387
|
-
var import_class_variance_authority2 = require("class-variance-authority");
|
|
388
|
-
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
389
|
-
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
390
|
-
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
391
|
-
{
|
|
392
|
-
variants: {
|
|
393
|
-
variant: {
|
|
394
|
-
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
|
|
395
|
-
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
396
|
-
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
|
|
397
|
-
outline: "text-foreground"
|
|
398
|
-
}
|
|
399
|
-
},
|
|
400
|
-
defaultVariants: {
|
|
401
|
-
variant: "default"
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
);
|
|
405
|
-
function Badge({ className, variant, ...props }) {
|
|
406
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
// components/entities/filter-dialog.tsx
|
|
410
|
-
var import_lucide_react = require("lucide-react");
|
|
411
|
-
var import_react = require("react");
|
|
412
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
413
|
-
var OPERATORS = {
|
|
414
|
-
string: ["eq", "ne", "contains", "startsWith", "endsWith"],
|
|
415
|
-
text: ["contains", "startsWith", "endsWith"],
|
|
416
|
-
int: ["eq", "ne", "gt", "gte", "lt", "lte", "between"],
|
|
417
|
-
float: ["eq", "ne", "gt", "gte", "lt", "lte", "between"],
|
|
418
|
-
date: ["eq", "ne", "gt", "gte", "lt", "lte", "between"],
|
|
419
|
-
datetime: ["eq", "ne", "gt", "gte", "lt", "lte", "between"],
|
|
420
|
-
dropdown: ["eq", "ne", "in", "nin"],
|
|
421
|
-
multiselect: ["in", "nin", "contains"],
|
|
422
|
-
boolean: ["eq", "ne"]
|
|
423
|
-
};
|
|
424
|
-
var OPERATOR_LABELS = {
|
|
425
|
-
eq: "Equals",
|
|
426
|
-
ne: "Not equals",
|
|
427
|
-
gt: "Greater than",
|
|
428
|
-
gte: "Greater than or equal",
|
|
429
|
-
lt: "Less than",
|
|
430
|
-
lte: "Less than or equal",
|
|
431
|
-
in: "In",
|
|
432
|
-
nin: "Not in",
|
|
433
|
-
contains: "Contains",
|
|
434
|
-
startsWith: "Starts with",
|
|
435
|
-
endsWith: "Ends with",
|
|
436
|
-
between: "Between"
|
|
437
|
-
};
|
|
438
|
-
var DEFAULT_CONDITION = {
|
|
439
|
-
field: "",
|
|
440
|
-
operator: "",
|
|
441
|
-
value: ""
|
|
442
|
-
};
|
|
443
|
-
function FilterDialog({ open, onOpenChange }) {
|
|
444
|
-
const { selectedDefinition } = (0, import_entity.useEntityDefinitionContext)();
|
|
445
|
-
const { updateParams, params } = (0, import_entity.useEntityRecordContext)();
|
|
446
|
-
const [conditions, setConditions] = (0, import_react.useState)([
|
|
447
|
-
DEFAULT_CONDITION
|
|
448
|
-
]);
|
|
449
|
-
const [hasActiveFilters, setHasActiveFilters] = (0, import_react.useState)(false);
|
|
450
|
-
(0, import_react.useEffect)(() => {
|
|
451
|
-
const hasFilters = params.filters && Object.keys(params.filters).length > 0;
|
|
452
|
-
setHasActiveFilters(hasFilters);
|
|
453
|
-
}, [params.filters]);
|
|
454
|
-
const fields = [];
|
|
455
|
-
const getOperatorsForField = (fieldType) => {
|
|
456
|
-
return OPERATORS[fieldType] || OPERATORS.string;
|
|
457
|
-
};
|
|
458
|
-
const handleAddCondition = () => {
|
|
459
|
-
setConditions([...conditions, { ...DEFAULT_CONDITION }]);
|
|
460
|
-
};
|
|
461
|
-
const handleRemoveCondition = (index) => {
|
|
462
|
-
setConditions(conditions.filter((_, i) => i !== index));
|
|
463
|
-
};
|
|
464
|
-
const handleFieldChange = (index, fieldName) => {
|
|
465
|
-
const newConditions = [...conditions];
|
|
466
|
-
newConditions[index] = {
|
|
467
|
-
...newConditions[index],
|
|
468
|
-
field: fieldName,
|
|
469
|
-
operator: "",
|
|
470
|
-
value: ""
|
|
471
|
-
};
|
|
472
|
-
setConditions(newConditions);
|
|
473
|
-
};
|
|
474
|
-
const handleOperatorChange = (index, operator) => {
|
|
475
|
-
const newConditions = [...conditions];
|
|
476
|
-
newConditions[index] = {
|
|
477
|
-
...newConditions[index],
|
|
478
|
-
operator
|
|
479
|
-
};
|
|
480
|
-
setConditions(newConditions);
|
|
481
|
-
};
|
|
482
|
-
const handleValueChange = (index, value) => {
|
|
483
|
-
const newConditions = [...conditions];
|
|
484
|
-
newConditions[index] = {
|
|
485
|
-
...newConditions[index],
|
|
486
|
-
value
|
|
487
|
-
};
|
|
488
|
-
setConditions(newConditions);
|
|
489
|
-
};
|
|
490
|
-
const handleClearFilters = () => {
|
|
491
|
-
setConditions([{ ...DEFAULT_CONDITION }]);
|
|
492
|
-
updateParams({ filters: {} });
|
|
493
|
-
setHasActiveFilters(false);
|
|
494
|
-
};
|
|
495
|
-
const handleApplyFilters = () => {
|
|
496
|
-
const validConditions = conditions.filter(
|
|
497
|
-
(c) => c.field && c.operator && c.value
|
|
498
|
-
);
|
|
499
|
-
if (validConditions.length === 0) {
|
|
500
|
-
updateParams({ filters: {} });
|
|
501
|
-
setHasActiveFilters(false);
|
|
502
|
-
onOpenChange(false);
|
|
503
|
-
return;
|
|
504
|
-
}
|
|
505
|
-
const filters = {};
|
|
506
|
-
validConditions.forEach(({ field, operator, value }) => {
|
|
507
|
-
const fieldPath = `fields.${field}.valueString`;
|
|
508
|
-
switch (operator) {
|
|
509
|
-
case "contains":
|
|
510
|
-
filters[fieldPath] = { $regex: value, $options: "i" };
|
|
511
|
-
break;
|
|
512
|
-
case "startsWith":
|
|
513
|
-
filters[fieldPath] = { $regex: `^${value}`, $options: "i" };
|
|
514
|
-
break;
|
|
515
|
-
case "endsWith":
|
|
516
|
-
filters[fieldPath] = { $regex: `${value}$`, $options: "i" };
|
|
517
|
-
break;
|
|
518
|
-
default:
|
|
519
|
-
filters[fieldPath] = { [`$${operator}`]: value };
|
|
520
|
-
}
|
|
521
|
-
});
|
|
522
|
-
const query = {
|
|
523
|
-
filters: validConditions.length > 1 ? { $and: Object.entries(filters).map(([k, v]) => ({ [k]: v })) } : filters
|
|
524
|
-
};
|
|
525
|
-
updateParams(query);
|
|
526
|
-
setHasActiveFilters(true);
|
|
527
|
-
onOpenChange(false);
|
|
528
|
-
};
|
|
529
|
-
const getFieldByName = (fieldName) => {
|
|
530
|
-
return fields.find((f) => f.name === fieldName);
|
|
531
|
-
};
|
|
532
|
-
const activeFilterCount = conditions.filter(
|
|
533
|
-
(c) => c.field && c.operator && c.value
|
|
534
|
-
).length;
|
|
535
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
536
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center", children: [
|
|
537
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
538
|
-
Button,
|
|
539
|
-
{
|
|
540
|
-
onClick: () => onOpenChange(true),
|
|
541
|
-
variant: hasActiveFilters ? "secondary" : "outline",
|
|
542
|
-
className: cn("relative group", hasActiveFilters && "rounded-r-none"),
|
|
543
|
-
children: [
|
|
544
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react.Filter, { className: "w-4 h-4 mr-2" }),
|
|
545
|
-
"Filter",
|
|
546
|
-
activeFilterCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
547
|
-
Badge,
|
|
548
|
-
{
|
|
549
|
-
variant: "secondary",
|
|
550
|
-
className: "ml-2 bg-primary text-primary-foreground",
|
|
551
|
-
children: activeFilterCount
|
|
552
|
-
}
|
|
553
|
-
)
|
|
554
|
-
]
|
|
555
|
-
}
|
|
556
|
-
),
|
|
557
|
-
hasActiveFilters && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
558
|
-
Button,
|
|
559
|
-
{
|
|
560
|
-
variant: "secondary",
|
|
561
|
-
size: "icon",
|
|
562
|
-
onClick: handleClearFilters,
|
|
563
|
-
className: "text-muted-foreground -ml-2 rounded-l-none",
|
|
564
|
-
title: "Clear filters",
|
|
565
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react.Paintbrush, { className: "h-4 w-4" })
|
|
566
|
-
}
|
|
567
|
-
)
|
|
568
|
-
] }),
|
|
569
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Dialog, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(DialogContent, { className: "max-w-3xl", children: [
|
|
570
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DialogHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
571
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(DialogTitle, { children: [
|
|
572
|
-
"Filter ",
|
|
573
|
-
selectedDefinition?.displayName
|
|
574
|
-
] }),
|
|
575
|
-
hasActiveFilters && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
576
|
-
Button,
|
|
577
|
-
{
|
|
578
|
-
variant: "ghost",
|
|
579
|
-
size: "sm",
|
|
580
|
-
onClick: handleClearFilters,
|
|
581
|
-
className: "text-muted-foreground hover:text-primary",
|
|
582
|
-
children: [
|
|
583
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react.XCircle, { className: "w-4 h-4 mr-2" }),
|
|
584
|
-
"Clear Filters"
|
|
585
|
-
]
|
|
586
|
-
}
|
|
587
|
-
)
|
|
588
|
-
] }) }),
|
|
589
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "space-y-4", children: [
|
|
590
|
-
conditions.map((condition, index) => {
|
|
591
|
-
const selectedField = getFieldByName(condition.field);
|
|
592
|
-
const operators = selectedField ? getOperatorsForField(selectedField.type) : [];
|
|
593
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
594
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
595
|
-
Select,
|
|
596
|
-
{
|
|
597
|
-
value: condition.field,
|
|
598
|
-
onValueChange: (value) => handleFieldChange(index, value),
|
|
599
|
-
children: [
|
|
600
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectTrigger, { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectValue, { placeholder: "Select field" }) }),
|
|
601
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectContent, { children: fields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectItem, { value: field.name, children: field.displayName }, field.name)) })
|
|
602
|
-
]
|
|
603
|
-
}
|
|
604
|
-
),
|
|
605
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
606
|
-
Select,
|
|
607
|
-
{
|
|
608
|
-
value: condition.operator,
|
|
609
|
-
onValueChange: (value) => handleOperatorChange(index, value),
|
|
610
|
-
disabled: !condition.field,
|
|
611
|
-
children: [
|
|
612
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectTrigger, { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectValue, { placeholder: "Select operator" }) }),
|
|
613
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectContent, { children: operators.map((op) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectItem, { value: op, children: OPERATOR_LABELS[op] }, op)) })
|
|
614
|
-
]
|
|
615
|
-
}
|
|
616
|
-
),
|
|
617
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
618
|
-
Input,
|
|
619
|
-
{
|
|
620
|
-
placeholder: "Value",
|
|
621
|
-
value: condition.value,
|
|
622
|
-
onChange: (e) => handleValueChange(index, e.target.value),
|
|
623
|
-
disabled: !condition.operator,
|
|
624
|
-
className: "flex-1"
|
|
625
|
-
}
|
|
626
|
-
),
|
|
627
|
-
conditions.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
628
|
-
Button,
|
|
629
|
-
{
|
|
630
|
-
variant: "ghost",
|
|
631
|
-
size: "icon",
|
|
632
|
-
onClick: () => handleRemoveCondition(index),
|
|
633
|
-
className: "text-muted-foreground hover:text-destructive",
|
|
634
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react.X, { className: "h-4 w-4" })
|
|
635
|
-
}
|
|
636
|
-
)
|
|
637
|
-
] }, index);
|
|
638
|
-
}),
|
|
639
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
640
|
-
Button,
|
|
641
|
-
{
|
|
642
|
-
variant: "outline",
|
|
643
|
-
size: "sm",
|
|
644
|
-
className: "w-full",
|
|
645
|
-
onClick: handleAddCondition,
|
|
646
|
-
children: [
|
|
647
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react.Plus, { className: "h-4 w-4 mr-2" }),
|
|
648
|
-
"Add Condition"
|
|
649
|
-
]
|
|
650
|
-
}
|
|
651
|
-
)
|
|
652
|
-
] }),
|
|
653
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(DialogFooter, { children: [
|
|
654
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Button, { variant: "outline", onClick: () => onOpenChange(false), children: "Cancel" }),
|
|
655
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Button, { onClick: handleApplyFilters, children: "Apply Filters" })
|
|
656
|
-
] })
|
|
657
|
-
] }) })
|
|
658
|
-
] });
|
|
659
|
-
}
|
|
660
|
-
|
|
661
157
|
// components/form-controls/button.tsx
|
|
662
|
-
var
|
|
663
|
-
var
|
|
664
|
-
var Button2 = React5.forwardRef(
|
|
158
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
159
|
+
var Button2 = React2.forwardRef(
|
|
665
160
|
({ children, variant = "default", className = "", type, ...props }, ref) => {
|
|
666
161
|
const buttonClass = `${variant === "secondary" ? "button-secondary" : ""} ${className}`;
|
|
667
|
-
return /* @__PURE__ */ (0,
|
|
162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
668
163
|
Button,
|
|
669
164
|
{
|
|
670
165
|
className: buttonClass,
|
|
@@ -680,22 +175,22 @@ var Button2 = React5.forwardRef(
|
|
|
680
175
|
Button2.displayName = "Button";
|
|
681
176
|
|
|
682
177
|
// components/form-controls/action-bar/back-button.tsx
|
|
683
|
-
var
|
|
178
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
684
179
|
function BackButton() {
|
|
685
|
-
return /* @__PURE__ */ (0,
|
|
180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button2, { onClick: () => {
|
|
686
181
|
}, children: "Back" });
|
|
687
182
|
}
|
|
688
183
|
|
|
689
184
|
// components/form-controls/icon.tsx
|
|
690
|
-
var
|
|
691
|
-
var
|
|
692
|
-
var
|
|
693
|
-
var
|
|
694
|
-
const IconComponent =
|
|
185
|
+
var import_lucide_react = require("lucide-react");
|
|
186
|
+
var import_react = require("react");
|
|
187
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
188
|
+
var Icon = (0, import_react.memo)(({ name, className, strokeWidth, size }) => {
|
|
189
|
+
const IconComponent = import_lucide_react.icons[name];
|
|
695
190
|
if (!IconComponent) {
|
|
696
191
|
return null;
|
|
697
192
|
}
|
|
698
|
-
return /* @__PURE__ */ (0,
|
|
193
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
699
194
|
IconComponent,
|
|
700
195
|
{
|
|
701
196
|
className: cn(className),
|
|
@@ -704,37 +199,37 @@ var Icon2 = (0, import_react2.memo)(({ name, className, strokeWidth, size }) =>
|
|
|
704
199
|
}
|
|
705
200
|
);
|
|
706
201
|
});
|
|
707
|
-
|
|
202
|
+
Icon.displayName = "Icon";
|
|
708
203
|
|
|
709
204
|
// components/form-controls/action-bar/action-bar-button.tsx
|
|
710
|
-
var
|
|
205
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
711
206
|
function ActionBarButton({
|
|
712
207
|
label,
|
|
713
208
|
onClick,
|
|
714
209
|
icon
|
|
715
210
|
}) {
|
|
716
|
-
return /* @__PURE__ */ (0,
|
|
717
|
-
/* @__PURE__ */ (0,
|
|
211
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Button2, { onClick, className: "flex items-center gap-2", children: [
|
|
212
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Icon, { name: icon, size: 20, strokeWidth: 1 }),
|
|
718
213
|
label
|
|
719
214
|
] });
|
|
720
215
|
}
|
|
721
216
|
|
|
722
217
|
// components/form-controls/action-bar/action-bar.tsx
|
|
723
|
-
var
|
|
218
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
724
219
|
var ActionBar = ({ actions }) => {
|
|
725
220
|
function backHandler() {
|
|
726
221
|
window.history.back();
|
|
727
222
|
}
|
|
728
|
-
return /* @__PURE__ */ (0,
|
|
729
|
-
/* @__PURE__ */ (0,
|
|
730
|
-
actions.map((item) => /* @__PURE__ */ (0,
|
|
223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center justify-center gap-4 bg-primary text-primary-foreground shadow rounded-md text-sm font-medium w-fit divide-solid divide-x", children: [
|
|
224
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "cursor-pointer pl-4 py-2", onClick: backHandler, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { name: "ArrowBigLeft" }) }),
|
|
225
|
+
actions.map((item) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
731
226
|
"div",
|
|
732
227
|
{
|
|
733
228
|
className: "flex items-center justify-center gap-2 cursor-pointer py-2 px-4",
|
|
734
229
|
onClick: item.onClick,
|
|
735
230
|
children: [
|
|
736
|
-
/* @__PURE__ */ (0,
|
|
737
|
-
/* @__PURE__ */ (0,
|
|
231
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { name: item.icon }),
|
|
232
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { children: item.label })
|
|
738
233
|
]
|
|
739
234
|
},
|
|
740
235
|
item.label
|
|
@@ -743,10 +238,10 @@ var ActionBar = ({ actions }) => {
|
|
|
743
238
|
};
|
|
744
239
|
|
|
745
240
|
// components/ui/alert.tsx
|
|
746
|
-
var
|
|
747
|
-
var
|
|
748
|
-
var
|
|
749
|
-
var alertVariants = (0,
|
|
241
|
+
var React3 = __toESM(require("react"));
|
|
242
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
243
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
244
|
+
var alertVariants = (0, import_class_variance_authority2.cva)(
|
|
750
245
|
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
|
|
751
246
|
{
|
|
752
247
|
variants: {
|
|
@@ -760,7 +255,7 @@ var alertVariants = (0, import_class_variance_authority3.cva)(
|
|
|
760
255
|
}
|
|
761
256
|
}
|
|
762
257
|
);
|
|
763
|
-
var Alert =
|
|
258
|
+
var Alert = React3.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
764
259
|
"div",
|
|
765
260
|
{
|
|
766
261
|
ref,
|
|
@@ -770,7 +265,7 @@ var Alert = React6.forwardRef(({ className, variant, ...props }, ref) => /* @__P
|
|
|
770
265
|
}
|
|
771
266
|
));
|
|
772
267
|
Alert.displayName = "Alert";
|
|
773
|
-
var AlertTitle =
|
|
268
|
+
var AlertTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
774
269
|
"h5",
|
|
775
270
|
{
|
|
776
271
|
ref,
|
|
@@ -779,7 +274,7 @@ var AlertTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
779
274
|
}
|
|
780
275
|
));
|
|
781
276
|
AlertTitle.displayName = "AlertTitle";
|
|
782
|
-
var AlertDescription =
|
|
277
|
+
var AlertDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
783
278
|
"div",
|
|
784
279
|
{
|
|
785
280
|
ref,
|
|
@@ -790,21 +285,21 @@ var AlertDescription = React6.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
790
285
|
AlertDescription.displayName = "AlertDescription";
|
|
791
286
|
|
|
792
287
|
// components/form-controls/alert.tsx
|
|
793
|
-
var
|
|
794
|
-
var
|
|
288
|
+
var import_react_icons = require("@radix-ui/react-icons");
|
|
289
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
795
290
|
var Alert2 = ({ title, description }) => {
|
|
796
|
-
return /* @__PURE__ */ (0,
|
|
797
|
-
/* @__PURE__ */ (0,
|
|
798
|
-
/* @__PURE__ */ (0,
|
|
799
|
-
/* @__PURE__ */ (0,
|
|
291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Alert, { children: [
|
|
292
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_icons.RocketIcon, { className: "h-4 w-4" }),
|
|
293
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(AlertTitle, { children: title }),
|
|
294
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(AlertDescription, { children: description })
|
|
800
295
|
] });
|
|
801
296
|
};
|
|
802
297
|
|
|
803
298
|
// components/ui/avatar.tsx
|
|
804
|
-
var
|
|
299
|
+
var React4 = __toESM(require("react"));
|
|
805
300
|
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
|
|
806
|
-
var
|
|
807
|
-
var Avatar =
|
|
301
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
302
|
+
var Avatar = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
808
303
|
AvatarPrimitive.Root,
|
|
809
304
|
{
|
|
810
305
|
ref,
|
|
@@ -816,7 +311,7 @@ var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
816
311
|
}
|
|
817
312
|
));
|
|
818
313
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
819
|
-
var AvatarImage =
|
|
314
|
+
var AvatarImage = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
820
315
|
AvatarPrimitive.Image,
|
|
821
316
|
{
|
|
822
317
|
ref,
|
|
@@ -825,7 +320,7 @@ var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
825
320
|
}
|
|
826
321
|
));
|
|
827
322
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
828
|
-
var AvatarFallback =
|
|
323
|
+
var AvatarFallback = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
829
324
|
AvatarPrimitive.Fallback,
|
|
830
325
|
{
|
|
831
326
|
ref,
|
|
@@ -839,25 +334,25 @@ var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
839
334
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
840
335
|
|
|
841
336
|
// components/form-controls/avatar.tsx
|
|
842
|
-
var
|
|
337
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
843
338
|
var Avatar2 = ({ image, fallback }) => {
|
|
844
|
-
return /* @__PURE__ */ (0,
|
|
845
|
-
/* @__PURE__ */ (0,
|
|
846
|
-
/* @__PURE__ */ (0,
|
|
339
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Avatar, { className: "w-fit", children: [
|
|
340
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AvatarImage, { src: image }),
|
|
341
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AvatarFallback, { children: fallback })
|
|
847
342
|
] });
|
|
848
343
|
};
|
|
849
344
|
|
|
850
345
|
// components/form-controls/breadcrumb.tsx
|
|
851
|
-
var
|
|
346
|
+
var import_react2 = require("react");
|
|
852
347
|
|
|
853
348
|
// components/ui/breadcrumb.tsx
|
|
854
|
-
var
|
|
855
|
-
var
|
|
349
|
+
var React5 = __toESM(require("react"));
|
|
350
|
+
var import_react_icons2 = require("@radix-ui/react-icons");
|
|
856
351
|
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
857
|
-
var
|
|
858
|
-
var Breadcrumb =
|
|
352
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
353
|
+
var Breadcrumb = React5.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
859
354
|
Breadcrumb.displayName = "Breadcrumb";
|
|
860
|
-
var BreadcrumbList =
|
|
355
|
+
var BreadcrumbList = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
861
356
|
"ol",
|
|
862
357
|
{
|
|
863
358
|
ref,
|
|
@@ -869,7 +364,7 @@ var BreadcrumbList = React8.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
869
364
|
}
|
|
870
365
|
));
|
|
871
366
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
872
|
-
var BreadcrumbItem =
|
|
367
|
+
var BreadcrumbItem = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
873
368
|
"li",
|
|
874
369
|
{
|
|
875
370
|
ref,
|
|
@@ -878,9 +373,9 @@ var BreadcrumbItem = React8.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
878
373
|
}
|
|
879
374
|
));
|
|
880
375
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
881
|
-
var BreadcrumbLink =
|
|
376
|
+
var BreadcrumbLink = React5.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
882
377
|
const Comp = asChild ? import_react_slot2.Slot : "a";
|
|
883
|
-
return /* @__PURE__ */ (0,
|
|
378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
884
379
|
Comp,
|
|
885
380
|
{
|
|
886
381
|
ref,
|
|
@@ -890,7 +385,7 @@ var BreadcrumbLink = React8.forwardRef(({ asChild, className, ...props }, ref) =
|
|
|
890
385
|
);
|
|
891
386
|
});
|
|
892
387
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
893
|
-
var BreadcrumbPage =
|
|
388
|
+
var BreadcrumbPage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
894
389
|
"span",
|
|
895
390
|
{
|
|
896
391
|
ref,
|
|
@@ -906,21 +401,21 @@ var BreadcrumbSeparator = ({
|
|
|
906
401
|
children,
|
|
907
402
|
className,
|
|
908
403
|
...props
|
|
909
|
-
}) => /* @__PURE__ */ (0,
|
|
404
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
910
405
|
"li",
|
|
911
406
|
{
|
|
912
407
|
role: "presentation",
|
|
913
408
|
"aria-hidden": "true",
|
|
914
409
|
className: cn("[&>svg]:size-3.5", className),
|
|
915
410
|
...props,
|
|
916
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
411
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_icons2.ChevronRightIcon, {})
|
|
917
412
|
}
|
|
918
413
|
);
|
|
919
414
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
920
415
|
var BreadcrumbEllipsis = ({
|
|
921
416
|
className,
|
|
922
417
|
...props
|
|
923
|
-
}) => /* @__PURE__ */ (0,
|
|
418
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
924
419
|
"span",
|
|
925
420
|
{
|
|
926
421
|
role: "presentation",
|
|
@@ -928,26 +423,26 @@ var BreadcrumbEllipsis = ({
|
|
|
928
423
|
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
929
424
|
...props,
|
|
930
425
|
children: [
|
|
931
|
-
/* @__PURE__ */ (0,
|
|
932
|
-
/* @__PURE__ */ (0,
|
|
426
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_icons2.DotsHorizontalIcon, { className: "h-4 w-4" }),
|
|
427
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sr-only", children: "More" })
|
|
933
428
|
]
|
|
934
429
|
}
|
|
935
430
|
);
|
|
936
431
|
BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
|
|
937
432
|
|
|
938
433
|
// components/form-controls/breadcrumb.tsx
|
|
939
|
-
var
|
|
434
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
940
435
|
var Breadcrumb2 = ({ breadcrumb }) => {
|
|
941
|
-
return /* @__PURE__ */ (0,
|
|
942
|
-
/* @__PURE__ */ (0,
|
|
943
|
-
index < breadcrumb.length - 1 && /* @__PURE__ */ (0,
|
|
436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Breadcrumb, { className: "p-4", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BreadcrumbList, { children: breadcrumb.map(({ href, label }, index) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react2.Fragment, { children: [
|
|
437
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BreadcrumbItem, { children: index !== breadcrumb.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BreadcrumbLink, { className: "cursor-pointer", href, children: label.replace(/-/g, " ") }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BreadcrumbPage, { children: label.replace(/-/g, " ") }) }),
|
|
438
|
+
index < breadcrumb.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BreadcrumbSeparator, {})
|
|
944
439
|
] }, index)) }) });
|
|
945
440
|
};
|
|
946
441
|
|
|
947
442
|
// components/ui/card.tsx
|
|
948
|
-
var
|
|
949
|
-
var
|
|
950
|
-
var Card =
|
|
443
|
+
var React6 = __toESM(require("react"));
|
|
444
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
445
|
+
var Card = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
951
446
|
"div",
|
|
952
447
|
{
|
|
953
448
|
ref,
|
|
@@ -959,7 +454,7 @@ var Card = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (
|
|
|
959
454
|
}
|
|
960
455
|
));
|
|
961
456
|
Card.displayName = "Card";
|
|
962
|
-
var CardHeader =
|
|
457
|
+
var CardHeader = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
963
458
|
"div",
|
|
964
459
|
{
|
|
965
460
|
ref,
|
|
@@ -968,7 +463,7 @@ var CardHeader = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
968
463
|
}
|
|
969
464
|
));
|
|
970
465
|
CardHeader.displayName = "CardHeader";
|
|
971
|
-
var CardTitle =
|
|
466
|
+
var CardTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
972
467
|
"h3",
|
|
973
468
|
{
|
|
974
469
|
ref,
|
|
@@ -977,7 +472,7 @@ var CardTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
977
472
|
}
|
|
978
473
|
));
|
|
979
474
|
CardTitle.displayName = "CardTitle";
|
|
980
|
-
var CardDescription =
|
|
475
|
+
var CardDescription = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
981
476
|
"p",
|
|
982
477
|
{
|
|
983
478
|
ref,
|
|
@@ -986,9 +481,9 @@ var CardDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
986
481
|
}
|
|
987
482
|
));
|
|
988
483
|
CardDescription.displayName = "CardDescription";
|
|
989
|
-
var CardContent =
|
|
484
|
+
var CardContent = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
990
485
|
CardContent.displayName = "CardContent";
|
|
991
|
-
var CardFooter =
|
|
486
|
+
var CardFooter = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
992
487
|
"div",
|
|
993
488
|
{
|
|
994
489
|
ref,
|
|
@@ -999,27 +494,27 @@ var CardFooter = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
999
494
|
CardFooter.displayName = "CardFooter";
|
|
1000
495
|
|
|
1001
496
|
// components/form-controls/card.tsx
|
|
1002
|
-
var
|
|
497
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1003
498
|
var Card2 = ({ title, description, content, footer }) => {
|
|
1004
|
-
return /* @__PURE__ */ (0,
|
|
1005
|
-
/* @__PURE__ */ (0,
|
|
1006
|
-
/* @__PURE__ */ (0,
|
|
1007
|
-
description && /* @__PURE__ */ (0,
|
|
499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Card, { children: [
|
|
500
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(CardHeader, { children: [
|
|
501
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CardTitle, { children: title }),
|
|
502
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CardDescription, { children: description })
|
|
1008
503
|
] }),
|
|
1009
|
-
/* @__PURE__ */ (0,
|
|
1010
|
-
footer && /* @__PURE__ */ (0,
|
|
504
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CardContent, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { children: content }) }),
|
|
505
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CardFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { children: footer }) })
|
|
1011
506
|
] });
|
|
1012
507
|
};
|
|
1013
508
|
|
|
1014
509
|
// components/form-controls/checkbox.tsx
|
|
1015
|
-
var
|
|
510
|
+
var React10 = __toESM(require("react"));
|
|
1016
511
|
|
|
1017
512
|
// components/ui/checkbox.tsx
|
|
1018
|
-
var
|
|
513
|
+
var React7 = __toESM(require("react"));
|
|
1019
514
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
|
|
1020
|
-
var
|
|
1021
|
-
var
|
|
1022
|
-
var Checkbox =
|
|
515
|
+
var import_react_icons3 = require("@radix-ui/react-icons");
|
|
516
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
517
|
+
var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1023
518
|
CheckboxPrimitive.Root,
|
|
1024
519
|
{
|
|
1025
520
|
ref,
|
|
@@ -1028,11 +523,11 @@ var Checkbox = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1028
523
|
className
|
|
1029
524
|
),
|
|
1030
525
|
...props,
|
|
1031
|
-
children: /* @__PURE__ */ (0,
|
|
526
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1032
527
|
CheckboxPrimitive.Indicator,
|
|
1033
528
|
{
|
|
1034
529
|
className: cn("flex items-center justify-center text-current"),
|
|
1035
|
-
children: /* @__PURE__ */ (0,
|
|
530
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_icons3.CheckIcon, { className: "h-4 w-4" })
|
|
1036
531
|
}
|
|
1037
532
|
)
|
|
1038
533
|
}
|
|
@@ -1040,19 +535,19 @@ var Checkbox = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1040
535
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
1041
536
|
|
|
1042
537
|
// components/ui/form.tsx
|
|
1043
|
-
var
|
|
538
|
+
var React9 = __toESM(require("react"));
|
|
1044
539
|
var import_react_slot3 = require("@radix-ui/react-slot");
|
|
1045
540
|
var import_react_hook_form = require("react-hook-form");
|
|
1046
541
|
|
|
1047
542
|
// components/ui/label.tsx
|
|
1048
|
-
var
|
|
543
|
+
var React8 = __toESM(require("react"));
|
|
1049
544
|
var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
|
|
1050
|
-
var
|
|
1051
|
-
var
|
|
1052
|
-
var labelVariants = (0,
|
|
545
|
+
var import_class_variance_authority3 = require("class-variance-authority");
|
|
546
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
547
|
+
var labelVariants = (0, import_class_variance_authority3.cva)(
|
|
1053
548
|
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1054
549
|
);
|
|
1055
|
-
var
|
|
550
|
+
var Label = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1056
551
|
LabelPrimitive.Root,
|
|
1057
552
|
{
|
|
1058
553
|
ref,
|
|
@@ -1060,22 +555,22 @@ var Label2 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1060
555
|
...props
|
|
1061
556
|
}
|
|
1062
557
|
));
|
|
1063
|
-
|
|
558
|
+
Label.displayName = LabelPrimitive.Root.displayName;
|
|
1064
559
|
|
|
1065
560
|
// components/ui/form.tsx
|
|
1066
|
-
var
|
|
561
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1067
562
|
var Form = import_react_hook_form.FormProvider;
|
|
1068
|
-
var FormFieldContext =
|
|
563
|
+
var FormFieldContext = React9.createContext(
|
|
1069
564
|
{}
|
|
1070
565
|
);
|
|
1071
566
|
var FormField = ({
|
|
1072
567
|
...props
|
|
1073
568
|
}) => {
|
|
1074
|
-
return /* @__PURE__ */ (0,
|
|
569
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_hook_form.Controller, { ...props }) });
|
|
1075
570
|
};
|
|
1076
571
|
var useFormField = () => {
|
|
1077
|
-
const fieldContext =
|
|
1078
|
-
const itemContext =
|
|
572
|
+
const fieldContext = React9.useContext(FormFieldContext);
|
|
573
|
+
const itemContext = React9.useContext(FormItemContext);
|
|
1079
574
|
const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
|
|
1080
575
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
1081
576
|
if (!fieldContext) {
|
|
@@ -1091,18 +586,18 @@ var useFormField = () => {
|
|
|
1091
586
|
...fieldState
|
|
1092
587
|
};
|
|
1093
588
|
};
|
|
1094
|
-
var FormItemContext =
|
|
589
|
+
var FormItemContext = React9.createContext(
|
|
1095
590
|
{}
|
|
1096
591
|
);
|
|
1097
|
-
var FormItem =
|
|
1098
|
-
const id =
|
|
1099
|
-
return /* @__PURE__ */ (0,
|
|
592
|
+
var FormItem = React9.forwardRef(({ className, ...props }, ref) => {
|
|
593
|
+
const id = React9.useId();
|
|
594
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
1100
595
|
});
|
|
1101
596
|
FormItem.displayName = "FormItem";
|
|
1102
|
-
var FormLabel =
|
|
597
|
+
var FormLabel = React9.forwardRef(({ className, ...props }, ref) => {
|
|
1103
598
|
const { error, formItemId } = useFormField();
|
|
1104
|
-
return /* @__PURE__ */ (0,
|
|
1105
|
-
|
|
599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
600
|
+
Label,
|
|
1106
601
|
{
|
|
1107
602
|
ref,
|
|
1108
603
|
className: cn(error && "text-destructive", className),
|
|
@@ -1112,9 +607,9 @@ var FormLabel = React12.forwardRef(({ className, ...props }, ref) => {
|
|
|
1112
607
|
);
|
|
1113
608
|
});
|
|
1114
609
|
FormLabel.displayName = "FormLabel";
|
|
1115
|
-
var FormControl =
|
|
610
|
+
var FormControl = React9.forwardRef(({ ...props }, ref) => {
|
|
1116
611
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
1117
|
-
return /* @__PURE__ */ (0,
|
|
612
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1118
613
|
import_react_slot3.Slot,
|
|
1119
614
|
{
|
|
1120
615
|
ref,
|
|
@@ -1126,9 +621,9 @@ var FormControl = React12.forwardRef(({ ...props }, ref) => {
|
|
|
1126
621
|
);
|
|
1127
622
|
});
|
|
1128
623
|
FormControl.displayName = "FormControl";
|
|
1129
|
-
var FormDescription =
|
|
624
|
+
var FormDescription = React9.forwardRef(({ className, ...props }, ref) => {
|
|
1130
625
|
const { formDescriptionId } = useFormField();
|
|
1131
|
-
return /* @__PURE__ */ (0,
|
|
626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1132
627
|
"p",
|
|
1133
628
|
{
|
|
1134
629
|
ref,
|
|
@@ -1139,13 +634,13 @@ var FormDescription = React12.forwardRef(({ className, ...props }, ref) => {
|
|
|
1139
634
|
);
|
|
1140
635
|
});
|
|
1141
636
|
FormDescription.displayName = "FormDescription";
|
|
1142
|
-
var FormMessage =
|
|
637
|
+
var FormMessage = React9.forwardRef(({ className, children, ...props }, ref) => {
|
|
1143
638
|
const { error, formMessageId } = useFormField();
|
|
1144
639
|
const body = error ? String(error?.message) : children;
|
|
1145
640
|
if (!body) {
|
|
1146
641
|
return null;
|
|
1147
642
|
}
|
|
1148
|
-
return /* @__PURE__ */ (0,
|
|
643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1149
644
|
"p",
|
|
1150
645
|
{
|
|
1151
646
|
ref,
|
|
@@ -1159,16 +654,16 @@ var FormMessage = React12.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
1159
654
|
FormMessage.displayName = "FormMessage";
|
|
1160
655
|
|
|
1161
656
|
// components/form-controls/checkbox.tsx
|
|
1162
|
-
var
|
|
1163
|
-
var Checkbox2 =
|
|
1164
|
-
({ className, title, name, control, isFormField, ...props }, ref) => isFormField ? /* @__PURE__ */ (0,
|
|
657
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
658
|
+
var Checkbox2 = React10.forwardRef(
|
|
659
|
+
({ className, title, name, control, isFormField, ...props }, ref) => isFormField ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1165
660
|
FormField,
|
|
1166
661
|
{
|
|
1167
662
|
control,
|
|
1168
663
|
name,
|
|
1169
|
-
render: ({ field }) => /* @__PURE__ */ (0,
|
|
1170
|
-
/* @__PURE__ */ (0,
|
|
1171
|
-
/* @__PURE__ */ (0,
|
|
664
|
+
render: ({ field }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(FormItem, { children: [
|
|
665
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(FormLabel, { children: title }),
|
|
666
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(FormControl, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1172
667
|
Checkbox,
|
|
1173
668
|
{
|
|
1174
669
|
className,
|
|
@@ -1176,23 +671,117 @@ var Checkbox2 = React13.forwardRef(
|
|
|
1176
671
|
onCheckedChange: field.onChange
|
|
1177
672
|
}
|
|
1178
673
|
) }),
|
|
1179
|
-
/* @__PURE__ */ (0,
|
|
674
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(FormMessage, {})
|
|
1180
675
|
] })
|
|
1181
676
|
}
|
|
1182
|
-
) : /* @__PURE__ */ (0,
|
|
677
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Checkbox, { ref, className, ...props })
|
|
1183
678
|
);
|
|
1184
679
|
Checkbox2.displayName = "Checkbox";
|
|
1185
680
|
|
|
1186
681
|
// components/form-controls/combobox.tsx
|
|
1187
|
-
var
|
|
1188
|
-
var
|
|
682
|
+
var import_lucide_react2 = require("lucide-react");
|
|
683
|
+
var import_react3 = require("react");
|
|
1189
684
|
|
|
1190
685
|
// components/ui/command.tsx
|
|
1191
|
-
var
|
|
1192
|
-
var
|
|
686
|
+
var React12 = __toESM(require("react"));
|
|
687
|
+
var import_react_icons5 = require("@radix-ui/react-icons");
|
|
1193
688
|
var import_cmdk = require("cmdk");
|
|
1194
|
-
|
|
1195
|
-
|
|
689
|
+
|
|
690
|
+
// components/ui/dialog.tsx
|
|
691
|
+
var React11 = __toESM(require("react"));
|
|
692
|
+
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
693
|
+
var import_react_icons4 = require("@radix-ui/react-icons");
|
|
694
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
695
|
+
var Dialog = DialogPrimitive.Root;
|
|
696
|
+
var DialogTrigger = DialogPrimitive.Trigger;
|
|
697
|
+
var DialogPortal = DialogPrimitive.Portal;
|
|
698
|
+
var DialogOverlay = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
699
|
+
DialogPrimitive.Overlay,
|
|
700
|
+
{
|
|
701
|
+
ref,
|
|
702
|
+
className: cn(
|
|
703
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
704
|
+
className
|
|
705
|
+
),
|
|
706
|
+
...props
|
|
707
|
+
}
|
|
708
|
+
));
|
|
709
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
710
|
+
var DialogContent = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DialogPortal, { children: [
|
|
711
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogOverlay, {}),
|
|
712
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
713
|
+
DialogPrimitive.Content,
|
|
714
|
+
{
|
|
715
|
+
ref,
|
|
716
|
+
className: cn(
|
|
717
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
|
|
718
|
+
className
|
|
719
|
+
),
|
|
720
|
+
...props,
|
|
721
|
+
children: [
|
|
722
|
+
children,
|
|
723
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
724
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_icons4.Cross2Icon, { className: "h-4 w-4" }),
|
|
725
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "sr-only", children: "Close" })
|
|
726
|
+
] })
|
|
727
|
+
]
|
|
728
|
+
}
|
|
729
|
+
)
|
|
730
|
+
] }));
|
|
731
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
732
|
+
var DialogHeader = ({
|
|
733
|
+
className,
|
|
734
|
+
...props
|
|
735
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
736
|
+
"div",
|
|
737
|
+
{
|
|
738
|
+
className: cn(
|
|
739
|
+
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
740
|
+
className
|
|
741
|
+
),
|
|
742
|
+
...props
|
|
743
|
+
}
|
|
744
|
+
);
|
|
745
|
+
DialogHeader.displayName = "DialogHeader";
|
|
746
|
+
var DialogFooter = ({
|
|
747
|
+
className,
|
|
748
|
+
...props
|
|
749
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
750
|
+
"div",
|
|
751
|
+
{
|
|
752
|
+
className: cn(
|
|
753
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
754
|
+
className
|
|
755
|
+
),
|
|
756
|
+
...props
|
|
757
|
+
}
|
|
758
|
+
);
|
|
759
|
+
DialogFooter.displayName = "DialogFooter";
|
|
760
|
+
var DialogTitle = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
761
|
+
DialogPrimitive.Title,
|
|
762
|
+
{
|
|
763
|
+
ref,
|
|
764
|
+
className: cn(
|
|
765
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
766
|
+
className
|
|
767
|
+
),
|
|
768
|
+
...props
|
|
769
|
+
}
|
|
770
|
+
));
|
|
771
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
772
|
+
var DialogDescription = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
773
|
+
DialogPrimitive.Description,
|
|
774
|
+
{
|
|
775
|
+
ref,
|
|
776
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
777
|
+
...props
|
|
778
|
+
}
|
|
779
|
+
));
|
|
780
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
781
|
+
|
|
782
|
+
// components/ui/command.tsx
|
|
783
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
784
|
+
var Command = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1196
785
|
import_cmdk.Command,
|
|
1197
786
|
{
|
|
1198
787
|
ref,
|
|
@@ -1204,9 +793,9 @@ var Command = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1204
793
|
}
|
|
1205
794
|
));
|
|
1206
795
|
Command.displayName = import_cmdk.Command.displayName;
|
|
1207
|
-
var CommandInput =
|
|
1208
|
-
/* @__PURE__ */ (0,
|
|
1209
|
-
/* @__PURE__ */ (0,
|
|
796
|
+
var CommandInput = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
797
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_icons5.MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
798
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1210
799
|
import_cmdk.Command.Input,
|
|
1211
800
|
{
|
|
1212
801
|
ref,
|
|
@@ -1219,7 +808,7 @@ var CommandInput = React14.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1219
808
|
)
|
|
1220
809
|
] }));
|
|
1221
810
|
CommandInput.displayName = import_cmdk.Command.Input.displayName;
|
|
1222
|
-
var CommandList =
|
|
811
|
+
var CommandList = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1223
812
|
import_cmdk.Command.List,
|
|
1224
813
|
{
|
|
1225
814
|
ref,
|
|
@@ -1228,7 +817,7 @@ var CommandList = React14.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1228
817
|
}
|
|
1229
818
|
));
|
|
1230
819
|
CommandList.displayName = import_cmdk.Command.List.displayName;
|
|
1231
|
-
var CommandEmpty =
|
|
820
|
+
var CommandEmpty = React12.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1232
821
|
import_cmdk.Command.Empty,
|
|
1233
822
|
{
|
|
1234
823
|
ref,
|
|
@@ -1237,7 +826,7 @@ var CommandEmpty = React14.forwardRef((props, ref) => /* @__PURE__ */ (0, import
|
|
|
1237
826
|
}
|
|
1238
827
|
));
|
|
1239
828
|
CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
|
|
1240
|
-
var CommandGroup =
|
|
829
|
+
var CommandGroup = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1241
830
|
import_cmdk.Command.Group,
|
|
1242
831
|
{
|
|
1243
832
|
ref,
|
|
@@ -1249,7 +838,7 @@ var CommandGroup = React14.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1249
838
|
}
|
|
1250
839
|
));
|
|
1251
840
|
CommandGroup.displayName = import_cmdk.Command.Group.displayName;
|
|
1252
|
-
var CommandSeparator =
|
|
841
|
+
var CommandSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1253
842
|
import_cmdk.Command.Separator,
|
|
1254
843
|
{
|
|
1255
844
|
ref,
|
|
@@ -1258,7 +847,7 @@ var CommandSeparator = React14.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
1258
847
|
}
|
|
1259
848
|
));
|
|
1260
849
|
CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
|
|
1261
|
-
var CommandItem =
|
|
850
|
+
var CommandItem = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1262
851
|
import_cmdk.Command.Item,
|
|
1263
852
|
{
|
|
1264
853
|
ref,
|
|
@@ -1274,7 +863,7 @@ var CommandShortcut = ({
|
|
|
1274
863
|
className,
|
|
1275
864
|
...props
|
|
1276
865
|
}) => {
|
|
1277
|
-
return /* @__PURE__ */ (0,
|
|
866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1278
867
|
"span",
|
|
1279
868
|
{
|
|
1280
869
|
className: cn(
|
|
@@ -1288,12 +877,12 @@ var CommandShortcut = ({
|
|
|
1288
877
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1289
878
|
|
|
1290
879
|
// components/ui/popover.tsx
|
|
1291
|
-
var
|
|
880
|
+
var React13 = __toESM(require("react"));
|
|
1292
881
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
1293
|
-
var
|
|
882
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1294
883
|
var Popover = PopoverPrimitive.Root;
|
|
1295
884
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1296
|
-
var PopoverContent =
|
|
885
|
+
var PopoverContent = React13.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1297
886
|
PopoverPrimitive.Content,
|
|
1298
887
|
{
|
|
1299
888
|
ref,
|
|
@@ -1309,7 +898,7 @@ var PopoverContent = React15.forwardRef(({ className, align = "center", sideOffs
|
|
|
1309
898
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1310
899
|
|
|
1311
900
|
// components/form-controls/combobox.tsx
|
|
1312
|
-
var
|
|
901
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1313
902
|
function Combobox({
|
|
1314
903
|
label,
|
|
1315
904
|
options,
|
|
@@ -1319,14 +908,14 @@ function Combobox({
|
|
|
1319
908
|
control,
|
|
1320
909
|
name
|
|
1321
910
|
}) {
|
|
1322
|
-
const [open, setOpen] = (0,
|
|
1323
|
-
const [value, setValue] = (0,
|
|
1324
|
-
(0,
|
|
911
|
+
const [open, setOpen] = (0, import_react3.useState)(false);
|
|
912
|
+
const [value, setValue] = (0, import_react3.useState)(defaultValue);
|
|
913
|
+
(0, import_react3.useEffect)(() => {
|
|
1325
914
|
setValue(defaultValue);
|
|
1326
915
|
}, [defaultValue]);
|
|
1327
916
|
if (!isFormField) {
|
|
1328
|
-
return /* @__PURE__ */ (0,
|
|
1329
|
-
/* @__PURE__ */ (0,
|
|
917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
918
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1330
919
|
Button,
|
|
1331
920
|
{
|
|
1332
921
|
variant: "outline",
|
|
@@ -1335,14 +924,14 @@ function Combobox({
|
|
|
1335
924
|
className: "w-full justify-between capitalize",
|
|
1336
925
|
children: [
|
|
1337
926
|
value ? options.find((option) => option.value === value)?.label || label : label,
|
|
1338
|
-
/* @__PURE__ */ (0,
|
|
927
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react2.ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
|
|
1339
928
|
]
|
|
1340
929
|
}
|
|
1341
930
|
) }),
|
|
1342
|
-
/* @__PURE__ */ (0,
|
|
1343
|
-
/* @__PURE__ */ (0,
|
|
1344
|
-
/* @__PURE__ */ (0,
|
|
1345
|
-
/* @__PURE__ */ (0,
|
|
931
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PopoverContent, { className: "w-full p-0", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Command, { children: [
|
|
932
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandInput, { placeholder: "Search..." }),
|
|
933
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandEmpty, { children: "No item found." }),
|
|
934
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandList, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandGroup, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1346
935
|
CommandItem,
|
|
1347
936
|
{
|
|
1348
937
|
value: option.value,
|
|
@@ -1352,8 +941,8 @@ function Combobox({
|
|
|
1352
941
|
setOpen(false);
|
|
1353
942
|
},
|
|
1354
943
|
children: [
|
|
1355
|
-
/* @__PURE__ */ (0,
|
|
1356
|
-
|
|
944
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
945
|
+
import_lucide_react2.Check,
|
|
1357
946
|
{
|
|
1358
947
|
className: cn(
|
|
1359
948
|
"mr-2 h-4 w-4",
|
|
@@ -1369,15 +958,15 @@ function Combobox({
|
|
|
1369
958
|
] }) })
|
|
1370
959
|
] });
|
|
1371
960
|
}
|
|
1372
|
-
return /* @__PURE__ */ (0,
|
|
961
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1373
962
|
FormField,
|
|
1374
963
|
{
|
|
1375
964
|
control,
|
|
1376
965
|
name,
|
|
1377
|
-
render: ({ field }) => /* @__PURE__ */ (0,
|
|
1378
|
-
/* @__PURE__ */ (0,
|
|
1379
|
-
/* @__PURE__ */ (0,
|
|
1380
|
-
/* @__PURE__ */ (0,
|
|
966
|
+
render: ({ field }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(FormItem, { children: [
|
|
967
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(FormLabel, { children: label }),
|
|
968
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(FormControl, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
969
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1381
970
|
Button,
|
|
1382
971
|
{
|
|
1383
972
|
variant: "outline",
|
|
@@ -1386,14 +975,14 @@ function Combobox({
|
|
|
1386
975
|
className: "w-full justify-between capitalize",
|
|
1387
976
|
children: [
|
|
1388
977
|
field.value ? options.find((option) => option.value === field.value)?.label || label : label,
|
|
1389
|
-
/* @__PURE__ */ (0,
|
|
978
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react2.ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
|
|
1390
979
|
]
|
|
1391
980
|
}
|
|
1392
981
|
) }),
|
|
1393
|
-
/* @__PURE__ */ (0,
|
|
1394
|
-
/* @__PURE__ */ (0,
|
|
1395
|
-
/* @__PURE__ */ (0,
|
|
1396
|
-
/* @__PURE__ */ (0,
|
|
982
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PopoverContent, { className: "w-full p-0", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Command, { children: [
|
|
983
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandInput, { placeholder: "Search..." }),
|
|
984
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandEmpty, { children: "No item found." }),
|
|
985
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandList, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CommandGroup, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1397
986
|
CommandItem,
|
|
1398
987
|
{
|
|
1399
988
|
value: option.value,
|
|
@@ -1404,8 +993,8 @@ function Combobox({
|
|
|
1404
993
|
setOpen(false);
|
|
1405
994
|
},
|
|
1406
995
|
children: [
|
|
1407
|
-
/* @__PURE__ */ (0,
|
|
1408
|
-
|
|
996
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
997
|
+
import_lucide_react2.Check,
|
|
1409
998
|
{
|
|
1410
999
|
className: cn(
|
|
1411
1000
|
"mr-2 h-4 w-4",
|
|
@@ -1420,22 +1009,22 @@ function Combobox({
|
|
|
1420
1009
|
)) }) })
|
|
1421
1010
|
] }) })
|
|
1422
1011
|
] }) }),
|
|
1423
|
-
/* @__PURE__ */ (0,
|
|
1012
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(FormMessage, {})
|
|
1424
1013
|
] })
|
|
1425
1014
|
}
|
|
1426
1015
|
);
|
|
1427
1016
|
}
|
|
1428
1017
|
|
|
1429
1018
|
// components/form-controls/command.tsx
|
|
1430
|
-
var
|
|
1431
|
-
var
|
|
1432
|
-
var Command2 =
|
|
1433
|
-
/* @__PURE__ */ (0,
|
|
1434
|
-
/* @__PURE__ */ (0,
|
|
1435
|
-
/* @__PURE__ */ (0,
|
|
1436
|
-
commandGroup.map((group, index) => /* @__PURE__ */ (0,
|
|
1437
|
-
/* @__PURE__ */ (0,
|
|
1438
|
-
commandGroup.length - 1 !== index && /* @__PURE__ */ (0,
|
|
1019
|
+
var React14 = __toESM(require("react"));
|
|
1020
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1021
|
+
var Command2 = React14.forwardRef(({ className, placeholder, commandGroup, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Command, { ...props, ref, className, children: [
|
|
1022
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CommandInput, { placeholder }),
|
|
1023
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(CommandList, { children: [
|
|
1024
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CommandEmpty, { children: "No results found." }),
|
|
1025
|
+
commandGroup.map((group, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(React14.Fragment, { children: [
|
|
1026
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CommandGroup, { heading: group.header, children: group.items.map((item, itemIndex) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CommandItem, { children: item }, itemIndex)) }, index),
|
|
1027
|
+
commandGroup.length - 1 !== index && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CommandSeparator, {})
|
|
1439
1028
|
] }, index))
|
|
1440
1029
|
] })
|
|
1441
1030
|
] }));
|
|
@@ -1444,17 +1033,17 @@ Command2.displayName = "Command";
|
|
|
1444
1033
|
// components/form-controls/data-table.tsx
|
|
1445
1034
|
var import_react_icons8 = require("@radix-ui/react-icons");
|
|
1446
1035
|
var import_react_table = require("@tanstack/react-table");
|
|
1447
|
-
var
|
|
1036
|
+
var import_lucide_react3 = require("lucide-react");
|
|
1448
1037
|
var React19 = __toESM(require("react"));
|
|
1449
1038
|
|
|
1450
1039
|
// components/ui/dropdown-menu.tsx
|
|
1451
|
-
var
|
|
1040
|
+
var React15 = __toESM(require("react"));
|
|
1452
1041
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
1453
|
-
var
|
|
1454
|
-
var
|
|
1042
|
+
var import_react_icons6 = require("@radix-ui/react-icons");
|
|
1043
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1455
1044
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1456
1045
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1457
|
-
var DropdownMenuSubTrigger =
|
|
1046
|
+
var DropdownMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1458
1047
|
DropdownMenuPrimitive.SubTrigger,
|
|
1459
1048
|
{
|
|
1460
1049
|
ref,
|
|
@@ -1466,12 +1055,12 @@ var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, .
|
|
|
1466
1055
|
...props,
|
|
1467
1056
|
children: [
|
|
1468
1057
|
children,
|
|
1469
|
-
/* @__PURE__ */ (0,
|
|
1058
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_icons6.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
1470
1059
|
]
|
|
1471
1060
|
}
|
|
1472
1061
|
));
|
|
1473
1062
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1474
|
-
var DropdownMenuSubContent =
|
|
1063
|
+
var DropdownMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1475
1064
|
DropdownMenuPrimitive.SubContent,
|
|
1476
1065
|
{
|
|
1477
1066
|
ref,
|
|
@@ -1483,7 +1072,7 @@ var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) =
|
|
|
1483
1072
|
}
|
|
1484
1073
|
));
|
|
1485
1074
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1486
|
-
var DropdownMenuContent =
|
|
1075
|
+
var DropdownMenuContent = React15.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1487
1076
|
DropdownMenuPrimitive.Content,
|
|
1488
1077
|
{
|
|
1489
1078
|
ref,
|
|
@@ -1497,7 +1086,7 @@ var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, ...pr
|
|
|
1497
1086
|
}
|
|
1498
1087
|
) }));
|
|
1499
1088
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1500
|
-
var DropdownMenuItem =
|
|
1089
|
+
var DropdownMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1501
1090
|
DropdownMenuPrimitive.Item,
|
|
1502
1091
|
{
|
|
1503
1092
|
ref,
|
|
@@ -1510,7 +1099,7 @@ var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1510
1099
|
}
|
|
1511
1100
|
));
|
|
1512
1101
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1513
|
-
var DropdownMenuCheckboxItem =
|
|
1102
|
+
var DropdownMenuCheckboxItem = React15.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1514
1103
|
DropdownMenuPrimitive.CheckboxItem,
|
|
1515
1104
|
{
|
|
1516
1105
|
ref,
|
|
@@ -1521,13 +1110,13 @@ var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, checke
|
|
|
1521
1110
|
checked,
|
|
1522
1111
|
...props,
|
|
1523
1112
|
children: [
|
|
1524
|
-
/* @__PURE__ */ (0,
|
|
1113
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_icons6.CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
1525
1114
|
children
|
|
1526
1115
|
]
|
|
1527
1116
|
}
|
|
1528
1117
|
));
|
|
1529
1118
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1530
|
-
var DropdownMenuRadioItem =
|
|
1119
|
+
var DropdownMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1531
1120
|
DropdownMenuPrimitive.RadioItem,
|
|
1532
1121
|
{
|
|
1533
1122
|
ref,
|
|
@@ -1537,13 +1126,13 @@ var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props
|
|
|
1537
1126
|
),
|
|
1538
1127
|
...props,
|
|
1539
1128
|
children: [
|
|
1540
|
-
/* @__PURE__ */ (0,
|
|
1129
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_icons6.DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
1541
1130
|
children
|
|
1542
1131
|
]
|
|
1543
1132
|
}
|
|
1544
1133
|
));
|
|
1545
1134
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1546
|
-
var DropdownMenuLabel =
|
|
1135
|
+
var DropdownMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1547
1136
|
DropdownMenuPrimitive.Label,
|
|
1548
1137
|
{
|
|
1549
1138
|
ref,
|
|
@@ -1556,7 +1145,7 @@ var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1556
1145
|
}
|
|
1557
1146
|
));
|
|
1558
1147
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1559
|
-
var DropdownMenuSeparator =
|
|
1148
|
+
var DropdownMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1560
1149
|
DropdownMenuPrimitive.Separator,
|
|
1561
1150
|
{
|
|
1562
1151
|
ref,
|
|
@@ -1569,7 +1158,7 @@ var DropdownMenuShortcut = ({
|
|
|
1569
1158
|
className,
|
|
1570
1159
|
...props
|
|
1571
1160
|
}) => {
|
|
1572
|
-
return /* @__PURE__ */ (0,
|
|
1161
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1573
1162
|
"span",
|
|
1574
1163
|
{
|
|
1575
1164
|
className: cn("ml-auto text-xs tracking-widest opacity-60", className),
|
|
@@ -1579,10 +1168,143 @@ var DropdownMenuShortcut = ({
|
|
|
1579
1168
|
};
|
|
1580
1169
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1581
1170
|
|
|
1171
|
+
// components/ui/input.tsx
|
|
1172
|
+
var React16 = __toESM(require("react"));
|
|
1173
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1174
|
+
var Input = React16.forwardRef(
|
|
1175
|
+
({ className, type, ...props }, ref) => {
|
|
1176
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1177
|
+
"input",
|
|
1178
|
+
{
|
|
1179
|
+
type,
|
|
1180
|
+
className: cn(
|
|
1181
|
+
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
1182
|
+
className
|
|
1183
|
+
),
|
|
1184
|
+
ref,
|
|
1185
|
+
...props
|
|
1186
|
+
}
|
|
1187
|
+
);
|
|
1188
|
+
}
|
|
1189
|
+
);
|
|
1190
|
+
Input.displayName = "Input";
|
|
1191
|
+
|
|
1192
|
+
// components/ui/select.tsx
|
|
1193
|
+
var React17 = __toESM(require("react"));
|
|
1194
|
+
var import_react_icons7 = require("@radix-ui/react-icons");
|
|
1195
|
+
var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
|
|
1196
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1197
|
+
var Select = SelectPrimitive.Root;
|
|
1198
|
+
var SelectValue = SelectPrimitive.Value;
|
|
1199
|
+
var SelectTrigger = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1200
|
+
SelectPrimitive.Trigger,
|
|
1201
|
+
{
|
|
1202
|
+
ref,
|
|
1203
|
+
className: cn(
|
|
1204
|
+
"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
1205
|
+
className
|
|
1206
|
+
),
|
|
1207
|
+
...props,
|
|
1208
|
+
children: [
|
|
1209
|
+
children,
|
|
1210
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_icons7.CaretSortIcon, { className: "h-4 w-4 opacity-50" }) })
|
|
1211
|
+
]
|
|
1212
|
+
}
|
|
1213
|
+
));
|
|
1214
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
1215
|
+
var SelectScrollUpButton = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1216
|
+
SelectPrimitive.ScrollUpButton,
|
|
1217
|
+
{
|
|
1218
|
+
ref,
|
|
1219
|
+
className: cn(
|
|
1220
|
+
"flex cursor-default items-center justify-center py-1",
|
|
1221
|
+
className
|
|
1222
|
+
),
|
|
1223
|
+
...props,
|
|
1224
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_icons7.ChevronUpIcon, {})
|
|
1225
|
+
}
|
|
1226
|
+
));
|
|
1227
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
1228
|
+
var SelectScrollDownButton = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1229
|
+
SelectPrimitive.ScrollDownButton,
|
|
1230
|
+
{
|
|
1231
|
+
ref,
|
|
1232
|
+
className: cn(
|
|
1233
|
+
"flex cursor-default items-center justify-center py-1",
|
|
1234
|
+
className
|
|
1235
|
+
),
|
|
1236
|
+
...props,
|
|
1237
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_icons7.ChevronDownIcon, {})
|
|
1238
|
+
}
|
|
1239
|
+
));
|
|
1240
|
+
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
1241
|
+
var SelectContent = React17.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1242
|
+
SelectPrimitive.Content,
|
|
1243
|
+
{
|
|
1244
|
+
ref,
|
|
1245
|
+
className: cn(
|
|
1246
|
+
"relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1247
|
+
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
1248
|
+
className
|
|
1249
|
+
),
|
|
1250
|
+
position,
|
|
1251
|
+
...props,
|
|
1252
|
+
children: [
|
|
1253
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SelectScrollUpButton, {}),
|
|
1254
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1255
|
+
SelectPrimitive.Viewport,
|
|
1256
|
+
{
|
|
1257
|
+
className: cn(
|
|
1258
|
+
"p-1",
|
|
1259
|
+
position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
|
|
1260
|
+
),
|
|
1261
|
+
children
|
|
1262
|
+
}
|
|
1263
|
+
),
|
|
1264
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SelectScrollDownButton, {})
|
|
1265
|
+
]
|
|
1266
|
+
}
|
|
1267
|
+
) }));
|
|
1268
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
1269
|
+
var SelectLabel = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1270
|
+
SelectPrimitive.Label,
|
|
1271
|
+
{
|
|
1272
|
+
ref,
|
|
1273
|
+
className: cn("px-2 py-1.5 text-sm font-semibold", className),
|
|
1274
|
+
...props
|
|
1275
|
+
}
|
|
1276
|
+
));
|
|
1277
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
1278
|
+
var SelectItem = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1279
|
+
SelectPrimitive.Item,
|
|
1280
|
+
{
|
|
1281
|
+
ref,
|
|
1282
|
+
className: cn(
|
|
1283
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1284
|
+
className
|
|
1285
|
+
),
|
|
1286
|
+
...props,
|
|
1287
|
+
children: [
|
|
1288
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_icons7.CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
1289
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SelectPrimitive.ItemText, { children })
|
|
1290
|
+
]
|
|
1291
|
+
}
|
|
1292
|
+
));
|
|
1293
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
1294
|
+
var SelectSeparator = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1295
|
+
SelectPrimitive.Separator,
|
|
1296
|
+
{
|
|
1297
|
+
ref,
|
|
1298
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
1299
|
+
...props
|
|
1300
|
+
}
|
|
1301
|
+
));
|
|
1302
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
1303
|
+
|
|
1582
1304
|
// components/ui/table.tsx
|
|
1583
1305
|
var React18 = __toESM(require("react"));
|
|
1584
|
-
var
|
|
1585
|
-
var Table = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1306
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1307
|
+
var Table = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1586
1308
|
"table",
|
|
1587
1309
|
{
|
|
1588
1310
|
ref,
|
|
@@ -1591,9 +1313,9 @@ var Table = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
1591
1313
|
}
|
|
1592
1314
|
) }));
|
|
1593
1315
|
Table.displayName = "Table";
|
|
1594
|
-
var TableHeader = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1316
|
+
var TableHeader = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
1595
1317
|
TableHeader.displayName = "TableHeader";
|
|
1596
|
-
var TableBody = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1318
|
+
var TableBody = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1597
1319
|
"tbody",
|
|
1598
1320
|
{
|
|
1599
1321
|
ref,
|
|
@@ -1602,7 +1324,7 @@ var TableBody = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1602
1324
|
}
|
|
1603
1325
|
));
|
|
1604
1326
|
TableBody.displayName = "TableBody";
|
|
1605
|
-
var TableFooter = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1327
|
+
var TableFooter = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1606
1328
|
"tfoot",
|
|
1607
1329
|
{
|
|
1608
1330
|
ref,
|
|
@@ -1614,7 +1336,7 @@ var TableFooter = React18.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1614
1336
|
}
|
|
1615
1337
|
));
|
|
1616
1338
|
TableFooter.displayName = "TableFooter";
|
|
1617
|
-
var TableRow = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1339
|
+
var TableRow = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1618
1340
|
"tr",
|
|
1619
1341
|
{
|
|
1620
1342
|
ref,
|
|
@@ -1626,7 +1348,7 @@ var TableRow = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1626
1348
|
}
|
|
1627
1349
|
));
|
|
1628
1350
|
TableRow.displayName = "TableRow";
|
|
1629
|
-
var TableHead = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1351
|
+
var TableHead = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1630
1352
|
"th",
|
|
1631
1353
|
{
|
|
1632
1354
|
ref,
|
|
@@ -1638,7 +1360,7 @@ var TableHead = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1638
1360
|
}
|
|
1639
1361
|
));
|
|
1640
1362
|
TableHead.displayName = "TableHead";
|
|
1641
|
-
var TableCell = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1363
|
+
var TableCell = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1642
1364
|
"td",
|
|
1643
1365
|
{
|
|
1644
1366
|
ref,
|
|
@@ -1650,7 +1372,7 @@ var TableCell = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1650
1372
|
}
|
|
1651
1373
|
));
|
|
1652
1374
|
TableCell.displayName = "TableCell";
|
|
1653
|
-
var TableCaption = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1375
|
+
var TableCaption = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1654
1376
|
"caption",
|
|
1655
1377
|
{
|
|
1656
1378
|
ref,
|
|
@@ -1661,7 +1383,7 @@ var TableCaption = React18.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1661
1383
|
TableCaption.displayName = "TableCaption";
|
|
1662
1384
|
|
|
1663
1385
|
// components/form-controls/data-table.tsx
|
|
1664
|
-
var
|
|
1386
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1665
1387
|
function DataTable({
|
|
1666
1388
|
data,
|
|
1667
1389
|
columns,
|
|
@@ -1693,10 +1415,10 @@ function DataTable({
|
|
|
1693
1415
|
rowSelection
|
|
1694
1416
|
}
|
|
1695
1417
|
});
|
|
1696
|
-
return /* @__PURE__ */ (0,
|
|
1697
|
-
isLoading && /* @__PURE__ */ (0,
|
|
1698
|
-
filterField && /* @__PURE__ */ (0,
|
|
1699
|
-
/* @__PURE__ */ (0,
|
|
1418
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "w-full mt-4 relative", children: [
|
|
1419
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react3.Loader2, { className: "h-4 w-4 animate-spin absolute top-2 right-32" }),
|
|
1420
|
+
filterField && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
1421
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1700
1422
|
Input,
|
|
1701
1423
|
{
|
|
1702
1424
|
placeholder: `Filter by ${filterField}...`,
|
|
@@ -1705,15 +1427,15 @@ function DataTable({
|
|
|
1705
1427
|
className: "max-w-sm"
|
|
1706
1428
|
}
|
|
1707
1429
|
),
|
|
1708
|
-
/* @__PURE__ */ (0,
|
|
1709
|
-
refresh && /* @__PURE__ */ (0,
|
|
1710
|
-
/* @__PURE__ */ (0,
|
|
1711
|
-
/* @__PURE__ */ (0,
|
|
1430
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center space-x-4", children: [
|
|
1431
|
+
refresh && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Button, { variant: "outline", onClick: refresh, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "RotateCcw", strokeWidth: 2, size: 20 }) }),
|
|
1432
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(DropdownMenu, { children: [
|
|
1433
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Button, { variant: "outline", children: [
|
|
1712
1434
|
"Columns ",
|
|
1713
|
-
/* @__PURE__ */ (0,
|
|
1435
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_icons8.ChevronDownIcon, { className: "ml-2 h-4 w-4" })
|
|
1714
1436
|
] }) }),
|
|
1715
|
-
/* @__PURE__ */ (0,
|
|
1716
|
-
return /* @__PURE__ */ (0,
|
|
1437
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DropdownMenuContent, { align: "end", children: table.getAllColumns().filter((column) => column.getCanHide()).map((column) => {
|
|
1438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1717
1439
|
DropdownMenuCheckboxItem,
|
|
1718
1440
|
{
|
|
1719
1441
|
className: "capitalize",
|
|
@@ -1727,24 +1449,24 @@ function DataTable({
|
|
|
1727
1449
|
] })
|
|
1728
1450
|
] })
|
|
1729
1451
|
] }),
|
|
1730
|
-
/* @__PURE__ */ (0,
|
|
1731
|
-
/* @__PURE__ */ (0,
|
|
1732
|
-
return /* @__PURE__ */ (0,
|
|
1452
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "rounded-md border mt-4", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Table, { children: [
|
|
1453
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TableRow, { children: headerGroup.headers.map((header) => {
|
|
1454
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TableHead, { children: header.isPlaceholder ? null : (0, import_react_table.flexRender)(
|
|
1733
1455
|
header.column.columnDef.header,
|
|
1734
1456
|
header.getContext()
|
|
1735
1457
|
) }, header.id);
|
|
1736
1458
|
}) }, headerGroup.id)) }),
|
|
1737
|
-
/* @__PURE__ */ (0,
|
|
1459
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TableBody, { children: table.getRowModel().rows?.length > 0 ? table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1738
1460
|
TableRow,
|
|
1739
1461
|
{
|
|
1740
1462
|
"data-state": row.getIsSelected() && "selected",
|
|
1741
|
-
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0,
|
|
1463
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TableCell, { children: (0, import_react_table.flexRender)(
|
|
1742
1464
|
cell.column.columnDef.cell,
|
|
1743
1465
|
cell.getContext()
|
|
1744
1466
|
) }, cell.id))
|
|
1745
1467
|
},
|
|
1746
1468
|
row.id
|
|
1747
|
-
)) : /* @__PURE__ */ (0,
|
|
1469
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1748
1470
|
TableCell,
|
|
1749
1471
|
{
|
|
1750
1472
|
colSpan: columns.length,
|
|
@@ -1752,18 +1474,18 @@ function DataTable({
|
|
|
1752
1474
|
}
|
|
1753
1475
|
) }) })
|
|
1754
1476
|
] }) }),
|
|
1755
|
-
/* @__PURE__ */ (0,
|
|
1756
|
-
table.getAllColumns().some((col) => col.id === "select") && /* @__PURE__ */ (0,
|
|
1477
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center justify-end space-x-2 py-4", children: [
|
|
1478
|
+
table.getAllColumns().some((col) => col.id === "select") && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex-1 text-sm text-muted-foreground", children: [
|
|
1757
1479
|
table.getFilteredSelectedRowModel().rows.length,
|
|
1758
1480
|
" of",
|
|
1759
1481
|
" ",
|
|
1760
1482
|
table.getFilteredRowModel().rows.length,
|
|
1761
1483
|
" row(s) selected."
|
|
1762
1484
|
] }),
|
|
1763
|
-
/* @__PURE__ */ (0,
|
|
1764
|
-
/* @__PURE__ */ (0,
|
|
1765
|
-
/* @__PURE__ */ (0,
|
|
1766
|
-
/* @__PURE__ */ (0,
|
|
1485
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center space-x-6 lg:space-x-8", children: [
|
|
1486
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
1487
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "text-sm font-medium", children: "Rows per page" }),
|
|
1488
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1767
1489
|
Select,
|
|
1768
1490
|
{
|
|
1769
1491
|
value: `${table.getState().pagination.pageSize}`,
|
|
@@ -1771,26 +1493,26 @@ function DataTable({
|
|
|
1771
1493
|
table.setPageSize(Number(value));
|
|
1772
1494
|
},
|
|
1773
1495
|
children: [
|
|
1774
|
-
/* @__PURE__ */ (0,
|
|
1496
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectTrigger, { className: "h-8 w-[70px]", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1775
1497
|
SelectValue,
|
|
1776
1498
|
{
|
|
1777
1499
|
placeholder: table.getState().pagination.pageSize
|
|
1778
1500
|
}
|
|
1779
1501
|
) }),
|
|
1780
|
-
/* @__PURE__ */ (0,
|
|
1502
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectContent, { side: "top", children: [10, 20, 30, 40, 50].map((pageSize) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectItem, { value: `${pageSize}`, children: pageSize }, pageSize)) })
|
|
1781
1503
|
]
|
|
1782
1504
|
}
|
|
1783
1505
|
)
|
|
1784
1506
|
] }),
|
|
1785
|
-
/* @__PURE__ */ (0,
|
|
1507
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex w-[100px] items-center justify-center text-sm font-medium", children: [
|
|
1786
1508
|
"Page ",
|
|
1787
1509
|
table.getState().pagination.pageIndex + 1,
|
|
1788
1510
|
" of",
|
|
1789
1511
|
" ",
|
|
1790
1512
|
table.getPageCount()
|
|
1791
1513
|
] }),
|
|
1792
|
-
/* @__PURE__ */ (0,
|
|
1793
|
-
/* @__PURE__ */ (0,
|
|
1514
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
1515
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1794
1516
|
Button,
|
|
1795
1517
|
{
|
|
1796
1518
|
variant: "outline",
|
|
@@ -1798,12 +1520,12 @@ function DataTable({
|
|
|
1798
1520
|
onClick: () => table.setPageIndex(0),
|
|
1799
1521
|
disabled: !table.getCanPreviousPage(),
|
|
1800
1522
|
children: [
|
|
1801
|
-
/* @__PURE__ */ (0,
|
|
1802
|
-
/* @__PURE__ */ (0,
|
|
1523
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "sr-only", children: "Go to first page" }),
|
|
1524
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_icons8.DoubleArrowLeftIcon, { className: "h-4 w-4" })
|
|
1803
1525
|
]
|
|
1804
1526
|
}
|
|
1805
1527
|
),
|
|
1806
|
-
/* @__PURE__ */ (0,
|
|
1528
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1807
1529
|
Button,
|
|
1808
1530
|
{
|
|
1809
1531
|
variant: "outline",
|
|
@@ -1811,12 +1533,12 @@ function DataTable({
|
|
|
1811
1533
|
onClick: () => table.previousPage(),
|
|
1812
1534
|
disabled: !table.getCanPreviousPage(),
|
|
1813
1535
|
children: [
|
|
1814
|
-
/* @__PURE__ */ (0,
|
|
1815
|
-
/* @__PURE__ */ (0,
|
|
1536
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "sr-only", children: "Go to previous page" }),
|
|
1537
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_icons8.ChevronLeftIcon, { className: "h-4 w-4" })
|
|
1816
1538
|
]
|
|
1817
1539
|
}
|
|
1818
1540
|
),
|
|
1819
|
-
/* @__PURE__ */ (0,
|
|
1541
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1820
1542
|
Button,
|
|
1821
1543
|
{
|
|
1822
1544
|
variant: "outline",
|
|
@@ -1824,12 +1546,12 @@ function DataTable({
|
|
|
1824
1546
|
onClick: () => table.nextPage(),
|
|
1825
1547
|
disabled: !table.getCanNextPage(),
|
|
1826
1548
|
children: [
|
|
1827
|
-
/* @__PURE__ */ (0,
|
|
1828
|
-
/* @__PURE__ */ (0,
|
|
1549
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "sr-only", children: "Go to next page" }),
|
|
1550
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_icons8.ChevronRightIcon, { className: "h-4 w-4" })
|
|
1829
1551
|
]
|
|
1830
1552
|
}
|
|
1831
1553
|
),
|
|
1832
|
-
/* @__PURE__ */ (0,
|
|
1554
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1833
1555
|
Button,
|
|
1834
1556
|
{
|
|
1835
1557
|
variant: "outline",
|
|
@@ -1837,8 +1559,8 @@ function DataTable({
|
|
|
1837
1559
|
onClick: () => table.setPageIndex(table.getPageCount() - 1),
|
|
1838
1560
|
disabled: !table.getCanNextPage(),
|
|
1839
1561
|
children: [
|
|
1840
|
-
/* @__PURE__ */ (0,
|
|
1841
|
-
/* @__PURE__ */ (0,
|
|
1562
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "sr-only", children: "Go to last page" }),
|
|
1563
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_icons8.DoubleArrowRightIcon, { className: "h-4 w-4" })
|
|
1842
1564
|
]
|
|
1843
1565
|
}
|
|
1844
1566
|
)
|
|
@@ -3422,14 +3144,14 @@ function cleanEscapedString(input) {
|
|
|
3422
3144
|
|
|
3423
3145
|
// components/ui/calendar.tsx
|
|
3424
3146
|
var import_react_day_picker = require("react-day-picker");
|
|
3425
|
-
var
|
|
3147
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3426
3148
|
function Calendar({
|
|
3427
3149
|
className,
|
|
3428
3150
|
classNames,
|
|
3429
3151
|
showOutsideDays = true,
|
|
3430
3152
|
...props
|
|
3431
3153
|
}) {
|
|
3432
|
-
return /* @__PURE__ */ (0,
|
|
3154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3433
3155
|
import_react_day_picker.DayPicker,
|
|
3434
3156
|
{
|
|
3435
3157
|
showOutsideDays,
|
|
@@ -3479,10 +3201,10 @@ function Calendar({
|
|
|
3479
3201
|
Calendar.displayName = "Calendar";
|
|
3480
3202
|
|
|
3481
3203
|
// components/form-controls/date-filter.tsx
|
|
3482
|
-
var
|
|
3204
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3483
3205
|
function DateFilter({ className, date, setDate }) {
|
|
3484
|
-
return /* @__PURE__ */ (0,
|
|
3485
|
-
/* @__PURE__ */ (0,
|
|
3206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: cn("grid gap-2", className), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Popover, { children: [
|
|
3207
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
3486
3208
|
Button,
|
|
3487
3209
|
{
|
|
3488
3210
|
id: "date",
|
|
@@ -3492,17 +3214,17 @@ function DateFilter({ className, date, setDate }) {
|
|
|
3492
3214
|
!date && "text-muted-foreground"
|
|
3493
3215
|
),
|
|
3494
3216
|
children: [
|
|
3495
|
-
/* @__PURE__ */ (0,
|
|
3496
|
-
date?.from ? date.to ? /* @__PURE__ */ (0,
|
|
3217
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_icons9.CalendarIcon, { className: "mr-2 h-4 w-4" }),
|
|
3218
|
+
date?.from ? date.to ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
|
|
3497
3219
|
format(date.from, "LLL dd, y"),
|
|
3498
3220
|
" -",
|
|
3499
3221
|
" ",
|
|
3500
3222
|
format(date.to, "LLL dd, y")
|
|
3501
|
-
] }) : format(date.from, "LLL dd, y") : /* @__PURE__ */ (0,
|
|
3223
|
+
] }) : format(date.from, "LLL dd, y") : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: "Pick a date" })
|
|
3502
3224
|
]
|
|
3503
3225
|
}
|
|
3504
3226
|
) }),
|
|
3505
|
-
/* @__PURE__ */ (0,
|
|
3227
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3506
3228
|
Calendar,
|
|
3507
3229
|
{
|
|
3508
3230
|
initialFocus: true,
|
|
@@ -3517,8 +3239,8 @@ function DateFilter({ className, date, setDate }) {
|
|
|
3517
3239
|
}
|
|
3518
3240
|
|
|
3519
3241
|
// components/form-controls/dialog.tsx
|
|
3520
|
-
var
|
|
3521
|
-
var
|
|
3242
|
+
var import_lucide_react4 = require("lucide-react");
|
|
3243
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3522
3244
|
var Dialog2 = ({
|
|
3523
3245
|
title,
|
|
3524
3246
|
description,
|
|
@@ -3531,14 +3253,14 @@ var Dialog2 = ({
|
|
|
3531
3253
|
iconClassName,
|
|
3532
3254
|
actions
|
|
3533
3255
|
}) => {
|
|
3534
|
-
const IconComponent = icon ?
|
|
3535
|
-
return /* @__PURE__ */ (0,
|
|
3536
|
-
/* @__PURE__ */ (0,
|
|
3537
|
-
/* @__PURE__ */ (0,
|
|
3538
|
-
/* @__PURE__ */ (0,
|
|
3539
|
-
/* @__PURE__ */ (0,
|
|
3540
|
-
/* @__PURE__ */ (0,
|
|
3541
|
-
IconComponent && /* @__PURE__ */ (0,
|
|
3256
|
+
const IconComponent = icon ? import_lucide_react4.icons[icon] : null;
|
|
3257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Dialog, { open, onOpenChange, children: [
|
|
3258
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DialogTrigger, { children: trigger }),
|
|
3259
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(DialogContent, { className, children: [
|
|
3260
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(DialogHeader, { children: [
|
|
3261
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(DialogTitle, { className: "capitalize flex items-center gap-2 justify-between pr-8", children: [
|
|
3262
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
3263
|
+
IconComponent && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3542
3264
|
IconComponent,
|
|
3543
3265
|
{
|
|
3544
3266
|
size: 20,
|
|
@@ -3548,7 +3270,7 @@ var Dialog2 = ({
|
|
|
3548
3270
|
),
|
|
3549
3271
|
title
|
|
3550
3272
|
] }),
|
|
3551
|
-
actions && /* @__PURE__ */ (0,
|
|
3273
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "flex items-center gap-2", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
3552
3274
|
Button2,
|
|
3553
3275
|
{
|
|
3554
3276
|
variant: action.type,
|
|
@@ -3557,8 +3279,8 @@ var Dialog2 = ({
|
|
|
3557
3279
|
disabled: action.disabled,
|
|
3558
3280
|
children: [
|
|
3559
3281
|
action.label,
|
|
3560
|
-
action.icon && /* @__PURE__ */ (0,
|
|
3561
|
-
|
|
3282
|
+
action.icon && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3283
|
+
Icon,
|
|
3562
3284
|
{
|
|
3563
3285
|
name: action.icon,
|
|
3564
3286
|
className: cn(action.iconClassName),
|
|
@@ -3571,7 +3293,7 @@ var Dialog2 = ({
|
|
|
3571
3293
|
action.label
|
|
3572
3294
|
)) })
|
|
3573
3295
|
] }),
|
|
3574
|
-
/* @__PURE__ */ (0,
|
|
3296
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DialogDescription, { children: description })
|
|
3575
3297
|
] }),
|
|
3576
3298
|
children
|
|
3577
3299
|
] })
|
|
@@ -3581,11 +3303,11 @@ var Dialog2 = ({
|
|
|
3581
3303
|
// components/ui/drawer.tsx
|
|
3582
3304
|
var React20 = __toESM(require("react"));
|
|
3583
3305
|
var import_vaul = require("vaul");
|
|
3584
|
-
var
|
|
3306
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3585
3307
|
var Drawer = ({
|
|
3586
3308
|
shouldScaleBackground = true,
|
|
3587
3309
|
...props
|
|
3588
|
-
}) => /* @__PURE__ */ (0,
|
|
3310
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3589
3311
|
import_vaul.Drawer.Root,
|
|
3590
3312
|
{
|
|
3591
3313
|
shouldScaleBackground,
|
|
@@ -3596,7 +3318,7 @@ Drawer.displayName = "Drawer";
|
|
|
3596
3318
|
var DrawerTrigger = import_vaul.Drawer.Trigger;
|
|
3597
3319
|
var DrawerPortal = import_vaul.Drawer.Portal;
|
|
3598
3320
|
var DrawerClose = import_vaul.Drawer.Close;
|
|
3599
|
-
var DrawerOverlay = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3321
|
+
var DrawerOverlay = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3600
3322
|
import_vaul.Drawer.Overlay,
|
|
3601
3323
|
{
|
|
3602
3324
|
ref,
|
|
@@ -3605,9 +3327,9 @@ var DrawerOverlay = React20.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
3605
3327
|
}
|
|
3606
3328
|
));
|
|
3607
3329
|
DrawerOverlay.displayName = import_vaul.Drawer.Overlay.displayName;
|
|
3608
|
-
var DrawerContent = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3609
|
-
/* @__PURE__ */ (0,
|
|
3610
|
-
/* @__PURE__ */ (0,
|
|
3330
|
+
var DrawerContent = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(DrawerPortal, { children: [
|
|
3331
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DrawerOverlay, {}),
|
|
3332
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
3611
3333
|
import_vaul.Drawer.Content,
|
|
3612
3334
|
{
|
|
3613
3335
|
ref,
|
|
@@ -3617,7 +3339,7 @@ var DrawerContent = React20.forwardRef(({ className, children, ...props }, ref)
|
|
|
3617
3339
|
),
|
|
3618
3340
|
...props,
|
|
3619
3341
|
children: [
|
|
3620
|
-
/* @__PURE__ */ (0,
|
|
3342
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
|
|
3621
3343
|
children
|
|
3622
3344
|
]
|
|
3623
3345
|
}
|
|
@@ -3627,7 +3349,7 @@ DrawerContent.displayName = "DrawerContent";
|
|
|
3627
3349
|
var DrawerHeader = ({
|
|
3628
3350
|
className,
|
|
3629
3351
|
...props
|
|
3630
|
-
}) => /* @__PURE__ */ (0,
|
|
3352
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3631
3353
|
"div",
|
|
3632
3354
|
{
|
|
3633
3355
|
className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
|
|
@@ -3638,7 +3360,7 @@ DrawerHeader.displayName = "DrawerHeader";
|
|
|
3638
3360
|
var DrawerFooter = ({
|
|
3639
3361
|
className,
|
|
3640
3362
|
...props
|
|
3641
|
-
}) => /* @__PURE__ */ (0,
|
|
3363
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3642
3364
|
"div",
|
|
3643
3365
|
{
|
|
3644
3366
|
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
@@ -3646,7 +3368,7 @@ var DrawerFooter = ({
|
|
|
3646
3368
|
}
|
|
3647
3369
|
);
|
|
3648
3370
|
DrawerFooter.displayName = "DrawerFooter";
|
|
3649
|
-
var DrawerTitle = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3371
|
+
var DrawerTitle = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3650
3372
|
import_vaul.Drawer.Title,
|
|
3651
3373
|
{
|
|
3652
3374
|
ref,
|
|
@@ -3658,7 +3380,7 @@ var DrawerTitle = React20.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3658
3380
|
}
|
|
3659
3381
|
));
|
|
3660
3382
|
DrawerTitle.displayName = import_vaul.Drawer.Title.displayName;
|
|
3661
|
-
var DrawerDescription = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3383
|
+
var DrawerDescription = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3662
3384
|
import_vaul.Drawer.Description,
|
|
3663
3385
|
{
|
|
3664
3386
|
ref,
|
|
@@ -3671,22 +3393,22 @@ DrawerDescription.displayName = import_vaul.Drawer.Description.displayName;
|
|
|
3671
3393
|
// components/ui/scroll-area.tsx
|
|
3672
3394
|
var React21 = __toESM(require("react"));
|
|
3673
3395
|
var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3674
|
-
var
|
|
3675
|
-
var ScrollArea = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3396
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
3397
|
+
var ScrollArea = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
3676
3398
|
ScrollAreaPrimitive.Root,
|
|
3677
3399
|
{
|
|
3678
3400
|
ref,
|
|
3679
3401
|
className: cn("relative overflow-hidden", className),
|
|
3680
3402
|
...props,
|
|
3681
3403
|
children: [
|
|
3682
|
-
/* @__PURE__ */ (0,
|
|
3683
|
-
/* @__PURE__ */ (0,
|
|
3684
|
-
/* @__PURE__ */ (0,
|
|
3404
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
3405
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ScrollBar, {}),
|
|
3406
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ScrollAreaPrimitive.Corner, {})
|
|
3685
3407
|
]
|
|
3686
3408
|
}
|
|
3687
3409
|
));
|
|
3688
3410
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
3689
|
-
var ScrollBar = React21.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0,
|
|
3411
|
+
var ScrollBar = React21.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
3690
3412
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
3691
3413
|
{
|
|
3692
3414
|
ref,
|
|
@@ -3698,13 +3420,13 @@ var ScrollBar = React21.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
3698
3420
|
className
|
|
3699
3421
|
),
|
|
3700
3422
|
...props,
|
|
3701
|
-
children: /* @__PURE__ */ (0,
|
|
3423
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
3702
3424
|
}
|
|
3703
3425
|
));
|
|
3704
3426
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
3705
3427
|
|
|
3706
3428
|
// components/form-controls/drawer.tsx
|
|
3707
|
-
var
|
|
3429
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
3708
3430
|
var Drawer2 = ({
|
|
3709
3431
|
title,
|
|
3710
3432
|
trigger,
|
|
@@ -3714,7 +3436,7 @@ var Drawer2 = ({
|
|
|
3714
3436
|
setOpenDrawer,
|
|
3715
3437
|
...props
|
|
3716
3438
|
}) => {
|
|
3717
|
-
return /* @__PURE__ */ (0,
|
|
3439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
3718
3440
|
Drawer,
|
|
3719
3441
|
{
|
|
3720
3442
|
direction: "right",
|
|
@@ -3722,11 +3444,11 @@ var Drawer2 = ({
|
|
|
3722
3444
|
onOpenChange: setOpenDrawer,
|
|
3723
3445
|
...props,
|
|
3724
3446
|
children: [
|
|
3725
|
-
trigger && /* @__PURE__ */ (0,
|
|
3726
|
-
/* @__PURE__ */ (0,
|
|
3727
|
-
/* @__PURE__ */ (0,
|
|
3728
|
-
/* @__PURE__ */ (0,
|
|
3729
|
-
/* @__PURE__ */ (0,
|
|
3447
|
+
trigger && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DrawerTrigger, { children: trigger }),
|
|
3448
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DrawerContent, { className: "h-screen top-0 right-0 left-auto mt-0 w-[500px] rounded-none", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ScrollArea, { className: "h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "mx-auto w-full p-5", children: [
|
|
3449
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(DrawerHeader, { children: [
|
|
3450
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DrawerTitle, { children: title }),
|
|
3451
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DrawerDescription, { children: description })
|
|
3730
3452
|
] }),
|
|
3731
3453
|
children
|
|
3732
3454
|
] }) }) })
|
|
@@ -3736,16 +3458,16 @@ var Drawer2 = ({
|
|
|
3736
3458
|
};
|
|
3737
3459
|
|
|
3738
3460
|
// components/form-controls/dropdown-menu.tsx
|
|
3739
|
-
var
|
|
3461
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
3740
3462
|
var DropdownMenu2 = ({
|
|
3741
3463
|
trigger,
|
|
3742
3464
|
items,
|
|
3743
3465
|
className = "",
|
|
3744
3466
|
onClick
|
|
3745
3467
|
}) => {
|
|
3746
|
-
return /* @__PURE__ */ (0,
|
|
3747
|
-
/* @__PURE__ */ (0,
|
|
3748
|
-
/* @__PURE__ */ (0,
|
|
3468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(DropdownMenu, { children: [
|
|
3469
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className, children: trigger }) }),
|
|
3470
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropdownMenuContent, { className: "cursor-pointer", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3749
3471
|
DropdownMenuItem,
|
|
3750
3472
|
{
|
|
3751
3473
|
className: "cursor-pointer!",
|
|
@@ -3758,8 +3480,8 @@ var DropdownMenu2 = ({
|
|
|
3758
3480
|
};
|
|
3759
3481
|
|
|
3760
3482
|
// components/form-controls/duration-input.tsx
|
|
3761
|
-
var
|
|
3762
|
-
var
|
|
3483
|
+
var import_react4 = require("react");
|
|
3484
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
3763
3485
|
var unitOptions = [
|
|
3764
3486
|
{ label: "Seconds", value: "s", ns: 1e9 },
|
|
3765
3487
|
{ label: "Minutes", value: "m", ns: 6e10 },
|
|
@@ -3790,10 +3512,10 @@ function toGoCompatibleDuration(amount, unit) {
|
|
|
3790
3512
|
}
|
|
3791
3513
|
}
|
|
3792
3514
|
function DurationInput({ value, onChange }) {
|
|
3793
|
-
const [amount, setAmount] = (0,
|
|
3794
|
-
const [unit, setUnit] = (0,
|
|
3795
|
-
const [userInteracted, setUserInteracted] = (0,
|
|
3796
|
-
(0,
|
|
3515
|
+
const [amount, setAmount] = (0, import_react4.useState)("");
|
|
3516
|
+
const [unit, setUnit] = (0, import_react4.useState)("h");
|
|
3517
|
+
const [userInteracted, setUserInteracted] = (0, import_react4.useState)(false);
|
|
3518
|
+
(0, import_react4.useEffect)(() => {
|
|
3797
3519
|
if (userInteracted) return;
|
|
3798
3520
|
if (value === void 0 || value === null || value === "") {
|
|
3799
3521
|
setAmount("");
|
|
@@ -3842,8 +3564,8 @@ function DurationInput({ value, onChange }) {
|
|
|
3842
3564
|
onChange("");
|
|
3843
3565
|
}
|
|
3844
3566
|
};
|
|
3845
|
-
return /* @__PURE__ */ (0,
|
|
3846
|
-
/* @__PURE__ */ (0,
|
|
3567
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
3568
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3847
3569
|
Input,
|
|
3848
3570
|
{
|
|
3849
3571
|
type: "number",
|
|
@@ -3853,23 +3575,46 @@ function DurationInput({ value, onChange }) {
|
|
|
3853
3575
|
className: "w-20"
|
|
3854
3576
|
}
|
|
3855
3577
|
),
|
|
3856
|
-
/* @__PURE__ */ (0,
|
|
3857
|
-
/* @__PURE__ */ (0,
|
|
3858
|
-
/* @__PURE__ */ (0,
|
|
3578
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Select, { value: unit, onValueChange: handleUnitChange, children: [
|
|
3579
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectTrigger, { className: "w-24", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectValue, {}) }),
|
|
3580
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectContent, { children: unitOptions.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
3859
3581
|
] })
|
|
3860
3582
|
] });
|
|
3861
3583
|
}
|
|
3862
3584
|
|
|
3863
3585
|
// components/form-controls/filter-combobox.tsx
|
|
3864
|
-
var
|
|
3586
|
+
var import_react5 = require("react");
|
|
3865
3587
|
var import_react_icons10 = require("@radix-ui/react-icons");
|
|
3866
3588
|
|
|
3589
|
+
// components/ui/badge.tsx
|
|
3590
|
+
var import_class_variance_authority4 = require("class-variance-authority");
|
|
3591
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
3592
|
+
var badgeVariants = (0, import_class_variance_authority4.cva)(
|
|
3593
|
+
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
3594
|
+
{
|
|
3595
|
+
variants: {
|
|
3596
|
+
variant: {
|
|
3597
|
+
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
|
|
3598
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
3599
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
|
|
3600
|
+
outline: "text-foreground"
|
|
3601
|
+
}
|
|
3602
|
+
},
|
|
3603
|
+
defaultVariants: {
|
|
3604
|
+
variant: "default"
|
|
3605
|
+
}
|
|
3606
|
+
}
|
|
3607
|
+
);
|
|
3608
|
+
function Badge({ className, variant, ...props }) {
|
|
3609
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
3610
|
+
}
|
|
3611
|
+
|
|
3867
3612
|
// components/ui/separator.tsx
|
|
3868
3613
|
var React22 = __toESM(require("react"));
|
|
3869
3614
|
var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"));
|
|
3870
|
-
var
|
|
3615
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3871
3616
|
var Separator3 = React22.forwardRef(
|
|
3872
|
-
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3617
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3873
3618
|
SeparatorPrimitive.Root,
|
|
3874
3619
|
{
|
|
3875
3620
|
ref,
|
|
@@ -3887,9 +3632,9 @@ var Separator3 = React22.forwardRef(
|
|
|
3887
3632
|
Separator3.displayName = SeparatorPrimitive.Root.displayName;
|
|
3888
3633
|
|
|
3889
3634
|
// components/form-controls/filter-combobox.tsx
|
|
3890
|
-
var
|
|
3635
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3891
3636
|
function FilterCombobox({ title, options, clearLabel }) {
|
|
3892
|
-
const [selectedValues, setSelectedValues] = (0,
|
|
3637
|
+
const [selectedValues, setSelectedValues] = (0, import_react5.useState)([]);
|
|
3893
3638
|
const handleValueSelect = (value) => {
|
|
3894
3639
|
if (selectedValues.some((v) => v.value === value.value)) {
|
|
3895
3640
|
setSelectedValues(selectedValues.filter((v) => v.value !== value.value));
|
|
@@ -3897,13 +3642,13 @@ function FilterCombobox({ title, options, clearLabel }) {
|
|
|
3897
3642
|
setSelectedValues([...selectedValues, value]);
|
|
3898
3643
|
}
|
|
3899
3644
|
};
|
|
3900
|
-
return /* @__PURE__ */ (0,
|
|
3901
|
-
/* @__PURE__ */ (0,
|
|
3902
|
-
/* @__PURE__ */ (0,
|
|
3645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Popover, { children: [
|
|
3646
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PopoverTrigger, { asChild: true, className: "w-fit", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Button, { variant: "outline", size: "sm", className: "h-8 border-dashed", children: [
|
|
3647
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Icon, { name: "CirclePlus", className: "h-4 w-4 mr-2" }),
|
|
3903
3648
|
title,
|
|
3904
|
-
selectedValues?.length > 0 && /* @__PURE__ */ (0,
|
|
3905
|
-
/* @__PURE__ */ (0,
|
|
3906
|
-
/* @__PURE__ */ (0,
|
|
3649
|
+
selectedValues?.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2 ml-2", children: [
|
|
3650
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Separator3, { orientation: "vertical", className: "h-4" }),
|
|
3651
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: selectedValues.length > 2 ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
3907
3652
|
Badge,
|
|
3908
3653
|
{
|
|
3909
3654
|
variant: "secondary",
|
|
@@ -3915,7 +3660,7 @@ function FilterCombobox({ title, options, clearLabel }) {
|
|
|
3915
3660
|
}
|
|
3916
3661
|
) : options.filter(
|
|
3917
3662
|
(option) => selectedValues.some((item) => item.value === option.value)
|
|
3918
|
-
).map((option) => /* @__PURE__ */ (0,
|
|
3663
|
+
).map((option) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3919
3664
|
Badge,
|
|
3920
3665
|
{
|
|
3921
3666
|
variant: "secondary",
|
|
@@ -3926,40 +3671,40 @@ function FilterCombobox({ title, options, clearLabel }) {
|
|
|
3926
3671
|
)) })
|
|
3927
3672
|
] })
|
|
3928
3673
|
] }) }),
|
|
3929
|
-
/* @__PURE__ */ (0,
|
|
3930
|
-
/* @__PURE__ */ (0,
|
|
3931
|
-
/* @__PURE__ */ (0,
|
|
3932
|
-
/* @__PURE__ */ (0,
|
|
3933
|
-
/* @__PURE__ */ (0,
|
|
3674
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PopoverContent, { className: "w-[200px] p-0", align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Command, { children: [
|
|
3675
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CommandInput, { placeholder: title }),
|
|
3676
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(CommandList, { children: [
|
|
3677
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CommandEmpty, { children: "No results found." }),
|
|
3678
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CommandGroup, { children: options.map((option) => {
|
|
3934
3679
|
const isSelected = selectedValues.some(
|
|
3935
3680
|
(item) => item.value === option.value
|
|
3936
3681
|
);
|
|
3937
|
-
return /* @__PURE__ */ (0,
|
|
3682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
3938
3683
|
CommandItem,
|
|
3939
3684
|
{
|
|
3940
3685
|
onSelect: () => handleValueSelect(option),
|
|
3941
3686
|
className: "cursor-pointer",
|
|
3942
3687
|
children: [
|
|
3943
|
-
/* @__PURE__ */ (0,
|
|
3688
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3944
3689
|
"div",
|
|
3945
3690
|
{
|
|
3946
3691
|
className: cn(
|
|
3947
3692
|
"mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",
|
|
3948
3693
|
isSelected ? "bg-primary text-primary-foreground" : "opacity-50 [&_svg]:invisible"
|
|
3949
3694
|
),
|
|
3950
|
-
children: /* @__PURE__ */ (0,
|
|
3695
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons10.CheckIcon, { className: cn("h-4 w-4") })
|
|
3951
3696
|
}
|
|
3952
3697
|
),
|
|
3953
|
-
option?.icon && /* @__PURE__ */ (0,
|
|
3954
|
-
/* @__PURE__ */ (0,
|
|
3698
|
+
option?.icon && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Icon, { name: option?.icon, className: "mr-2 h-4 w-4 text-muted-foreground" }),
|
|
3699
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: option.label })
|
|
3955
3700
|
]
|
|
3956
3701
|
},
|
|
3957
3702
|
option.value
|
|
3958
3703
|
);
|
|
3959
3704
|
}) }),
|
|
3960
|
-
selectedValues.length > 0 && /* @__PURE__ */ (0,
|
|
3961
|
-
/* @__PURE__ */ (0,
|
|
3962
|
-
/* @__PURE__ */ (0,
|
|
3705
|
+
selectedValues.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
3706
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CommandSeparator, {}),
|
|
3707
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CommandGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3963
3708
|
CommandItem,
|
|
3964
3709
|
{
|
|
3965
3710
|
onSelect: () => setSelectedValues([]),
|
|
@@ -3974,7 +3719,7 @@ function FilterCombobox({ title, options, clearLabel }) {
|
|
|
3974
3719
|
}
|
|
3975
3720
|
|
|
3976
3721
|
// components/form-controls/form-combobox.tsx
|
|
3977
|
-
var
|
|
3722
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3978
3723
|
function FormCombobox({
|
|
3979
3724
|
title,
|
|
3980
3725
|
name,
|
|
@@ -3983,15 +3728,15 @@ function FormCombobox({
|
|
|
3983
3728
|
data,
|
|
3984
3729
|
label
|
|
3985
3730
|
}) {
|
|
3986
|
-
return /* @__PURE__ */ (0,
|
|
3731
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3987
3732
|
FormField,
|
|
3988
3733
|
{
|
|
3989
3734
|
control,
|
|
3990
3735
|
name,
|
|
3991
3736
|
rules,
|
|
3992
|
-
render: ({ field }) => /* @__PURE__ */ (0,
|
|
3993
|
-
title && /* @__PURE__ */ (0,
|
|
3994
|
-
/* @__PURE__ */ (0,
|
|
3737
|
+
render: ({ field }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(FormItem, { children: [
|
|
3738
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(FormLabel, { children: title }),
|
|
3739
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(FormControl, { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3995
3740
|
Combobox,
|
|
3996
3741
|
{
|
|
3997
3742
|
label,
|
|
@@ -4000,7 +3745,7 @@ function FormCombobox({
|
|
|
4000
3745
|
onChange: (value) => field.onChange(value)
|
|
4001
3746
|
}
|
|
4002
3747
|
) }),
|
|
4003
|
-
/* @__PURE__ */ (0,
|
|
3748
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(FormMessage, {})
|
|
4004
3749
|
] })
|
|
4005
3750
|
}
|
|
4006
3751
|
);
|
|
@@ -4008,7 +3753,7 @@ function FormCombobox({
|
|
|
4008
3753
|
|
|
4009
3754
|
// components/form-controls/form-layout.tsx
|
|
4010
3755
|
var import_react_hook_form2 = require("react-hook-form");
|
|
4011
|
-
var
|
|
3756
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
4012
3757
|
function FormLayout({
|
|
4013
3758
|
children,
|
|
4014
3759
|
formTitle,
|
|
@@ -4020,34 +3765,34 @@ function FormLayout({
|
|
|
4020
3765
|
PrimaryActionText,
|
|
4021
3766
|
CancelText
|
|
4022
3767
|
}) {
|
|
4023
|
-
return /* @__PURE__ */ (0,
|
|
4024
|
-
/* @__PURE__ */ (0,
|
|
4025
|
-
/* @__PURE__ */ (0,
|
|
4026
|
-
/* @__PURE__ */ (0,
|
|
4027
|
-
/* @__PURE__ */ (0,
|
|
3768
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_hook_form2.FormProvider, { ...form, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("form", { onSubmit: onSave, className: `flex flex-col gap-6 ${className}`, children: [
|
|
3769
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center justify-between w-full border-b pb-6 border-border", children: [
|
|
3770
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-col", children: [
|
|
3771
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "font-semibold text-lg", children: formTitle }),
|
|
3772
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-gray-500", children: formDescription })
|
|
4028
3773
|
] }),
|
|
4029
|
-
/* @__PURE__ */ (0,
|
|
4030
|
-
/* @__PURE__ */ (0,
|
|
4031
|
-
/* @__PURE__ */ (0,
|
|
3774
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
3775
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button2, { type: "button", onClick: onCanel, variant: "secondary", children: CancelText }),
|
|
3776
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button2, { type: "submit", children: PrimaryActionText })
|
|
4032
3777
|
] })
|
|
4033
3778
|
] }),
|
|
4034
3779
|
children,
|
|
4035
|
-
/* @__PURE__ */ (0,
|
|
4036
|
-
/* @__PURE__ */ (0,
|
|
4037
|
-
/* @__PURE__ */ (0,
|
|
3780
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center gap-2 justify-end", children: [
|
|
3781
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button2, { type: "button", onClick: onCanel, variant: "secondary", children: CancelText }),
|
|
3782
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button2, { type: "submit", children: PrimaryActionText })
|
|
4038
3783
|
] })
|
|
4039
3784
|
] }) });
|
|
4040
3785
|
}
|
|
4041
3786
|
|
|
4042
3787
|
// components/form-controls/form-row.tsx
|
|
4043
|
-
var
|
|
3788
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
4044
3789
|
function FormRow({ children, title, description }) {
|
|
4045
|
-
return /* @__PURE__ */ (0,
|
|
4046
|
-
/* @__PURE__ */ (0,
|
|
4047
|
-
/* @__PURE__ */ (0,
|
|
4048
|
-
/* @__PURE__ */ (0,
|
|
3790
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "grid grid-cols-3 w-full border-b pb-6 border-border", children: [
|
|
3791
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "flex flex-col", children: [
|
|
3792
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { className: "font-medium", children: title }),
|
|
3793
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { className: "text-gray-500 text-sm", children: description })
|
|
4049
3794
|
] }),
|
|
4050
|
-
/* @__PURE__ */ (0,
|
|
3795
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "col-span-2 w-[80%]", children })
|
|
4051
3796
|
] });
|
|
4052
3797
|
}
|
|
4053
3798
|
|
|
@@ -4055,9 +3800,9 @@ function FormRow({ children, title, description }) {
|
|
|
4055
3800
|
var React23 = __toESM(require("react"));
|
|
4056
3801
|
var import_react_icons11 = require("@radix-ui/react-icons");
|
|
4057
3802
|
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"));
|
|
4058
|
-
var
|
|
3803
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
4059
3804
|
var RadioGroup2 = React23.forwardRef(({ className, ...props }, ref) => {
|
|
4060
|
-
return /* @__PURE__ */ (0,
|
|
3805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4061
3806
|
RadioGroupPrimitive.Root,
|
|
4062
3807
|
{
|
|
4063
3808
|
className: cn("grid gap-2", className),
|
|
@@ -4068,7 +3813,7 @@ var RadioGroup2 = React23.forwardRef(({ className, ...props }, ref) => {
|
|
|
4068
3813
|
});
|
|
4069
3814
|
RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
|
|
4070
3815
|
var RadioGroupItem = React23.forwardRef(({ className, ...props }, ref) => {
|
|
4071
|
-
return /* @__PURE__ */ (0,
|
|
3816
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4072
3817
|
RadioGroupPrimitive.Item,
|
|
4073
3818
|
{
|
|
4074
3819
|
ref,
|
|
@@ -4077,7 +3822,7 @@ var RadioGroupItem = React23.forwardRef(({ className, ...props }, ref) => {
|
|
|
4077
3822
|
className
|
|
4078
3823
|
),
|
|
4079
3824
|
...props,
|
|
4080
|
-
children: /* @__PURE__ */ (0,
|
|
3825
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_icons11.CheckIcon, { className: "h-3.5 w-3.5 fill-primary" }) })
|
|
4081
3826
|
}
|
|
4082
3827
|
);
|
|
4083
3828
|
});
|
|
@@ -4088,11 +3833,11 @@ var React24 = __toESM(require("react"));
|
|
|
4088
3833
|
var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
4089
3834
|
var import_react_icons12 = require("@radix-ui/react-icons");
|
|
4090
3835
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
4091
|
-
var
|
|
3836
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4092
3837
|
var Sheet = SheetPrimitive.Root;
|
|
4093
3838
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
4094
3839
|
var SheetPortal = SheetPrimitive.Portal;
|
|
4095
|
-
var SheetOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3840
|
+
var SheetOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4096
3841
|
SheetPrimitive.Overlay,
|
|
4097
3842
|
{
|
|
4098
3843
|
className: cn(
|
|
@@ -4120,18 +3865,18 @@ var sheetVariants = (0, import_class_variance_authority5.cva)(
|
|
|
4120
3865
|
}
|
|
4121
3866
|
}
|
|
4122
3867
|
);
|
|
4123
|
-
var SheetContent = React24.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4124
|
-
/* @__PURE__ */ (0,
|
|
4125
|
-
/* @__PURE__ */ (0,
|
|
3868
|
+
var SheetContent = React24.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(SheetPortal, { children: [
|
|
3869
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SheetOverlay, {}),
|
|
3870
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
4126
3871
|
SheetPrimitive.Content,
|
|
4127
3872
|
{
|
|
4128
3873
|
ref,
|
|
4129
3874
|
className: cn(sheetVariants({ side }), className),
|
|
4130
3875
|
...props,
|
|
4131
3876
|
children: [
|
|
4132
|
-
/* @__PURE__ */ (0,
|
|
4133
|
-
/* @__PURE__ */ (0,
|
|
4134
|
-
/* @__PURE__ */ (0,
|
|
3877
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
3878
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_icons12.Cross2Icon, { className: "h-4 w-4" }),
|
|
3879
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "sr-only", children: "Close" })
|
|
4135
3880
|
] }),
|
|
4136
3881
|
children
|
|
4137
3882
|
]
|
|
@@ -4142,7 +3887,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
|
4142
3887
|
var SheetHeader = ({
|
|
4143
3888
|
className,
|
|
4144
3889
|
...props
|
|
4145
|
-
}) => /* @__PURE__ */ (0,
|
|
3890
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4146
3891
|
"div",
|
|
4147
3892
|
{
|
|
4148
3893
|
className: cn(
|
|
@@ -4156,7 +3901,7 @@ SheetHeader.displayName = "SheetHeader";
|
|
|
4156
3901
|
var SheetFooter = ({
|
|
4157
3902
|
className,
|
|
4158
3903
|
...props
|
|
4159
|
-
}) => /* @__PURE__ */ (0,
|
|
3904
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4160
3905
|
"div",
|
|
4161
3906
|
{
|
|
4162
3907
|
className: cn(
|
|
@@ -4167,7 +3912,7 @@ var SheetFooter = ({
|
|
|
4167
3912
|
}
|
|
4168
3913
|
);
|
|
4169
3914
|
SheetFooter.displayName = "SheetFooter";
|
|
4170
|
-
var SheetTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3915
|
+
var SheetTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4171
3916
|
SheetPrimitive.Title,
|
|
4172
3917
|
{
|
|
4173
3918
|
ref,
|
|
@@ -4176,7 +3921,7 @@ var SheetTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
4176
3921
|
}
|
|
4177
3922
|
));
|
|
4178
3923
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
4179
|
-
var SheetDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3924
|
+
var SheetDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4180
3925
|
SheetPrimitive.Description,
|
|
4181
3926
|
{
|
|
4182
3927
|
ref,
|
|
@@ -4188,10 +3933,10 @@ SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
|
4188
3933
|
|
|
4189
3934
|
// components/ui/textarea.tsx
|
|
4190
3935
|
var React25 = __toESM(require("react"));
|
|
4191
|
-
var
|
|
3936
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
4192
3937
|
var Textarea = React25.forwardRef(
|
|
4193
3938
|
({ className, ...props }, ref) => {
|
|
4194
|
-
return /* @__PURE__ */ (0,
|
|
3939
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4195
3940
|
"textarea",
|
|
4196
3941
|
{
|
|
4197
3942
|
className: cn(
|
|
@@ -4209,11 +3954,11 @@ Textarea.displayName = "Textarea";
|
|
|
4209
3954
|
// components/ui/tooltip.tsx
|
|
4210
3955
|
var React26 = __toESM(require("react"));
|
|
4211
3956
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
|
|
4212
|
-
var
|
|
3957
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
4213
3958
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
4214
3959
|
var Tooltip = TooltipPrimitive.Root;
|
|
4215
3960
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
4216
|
-
var TooltipContent = React26.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3961
|
+
var TooltipContent = React26.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4217
3962
|
TooltipPrimitive.Content,
|
|
4218
3963
|
{
|
|
4219
3964
|
ref,
|
|
@@ -4230,7 +3975,7 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
|
4230
3975
|
// components/ui/chart.tsx
|
|
4231
3976
|
var React27 = __toESM(require("react"));
|
|
4232
3977
|
var RechartsPrimitive = __toESM(require("recharts"));
|
|
4233
|
-
var
|
|
3978
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
4234
3979
|
var THEMES = { light: "", dark: ".dark" };
|
|
4235
3980
|
var ChartContext = React27.createContext(null);
|
|
4236
3981
|
function useChart() {
|
|
@@ -4243,7 +3988,7 @@ function useChart() {
|
|
|
4243
3988
|
var ChartContainer = React27.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
4244
3989
|
const uniqueId = React27.useId();
|
|
4245
3990
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
4246
|
-
return /* @__PURE__ */ (0,
|
|
3991
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
4247
3992
|
"div",
|
|
4248
3993
|
{
|
|
4249
3994
|
"data-chart": chartId,
|
|
@@ -4254,8 +3999,8 @@ var ChartContainer = React27.forwardRef(({ id, className, children, config, ...p
|
|
|
4254
3999
|
),
|
|
4255
4000
|
...props,
|
|
4256
4001
|
children: [
|
|
4257
|
-
/* @__PURE__ */ (0,
|
|
4258
|
-
/* @__PURE__ */ (0,
|
|
4002
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ChartStyle, { id: chartId, config }),
|
|
4003
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(RechartsPrimitive.ResponsiveContainer, { children })
|
|
4259
4004
|
]
|
|
4260
4005
|
}
|
|
4261
4006
|
) });
|
|
@@ -4268,7 +4013,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
4268
4013
|
if (!colorConfig.length) {
|
|
4269
4014
|
return null;
|
|
4270
4015
|
}
|
|
4271
|
-
return /* @__PURE__ */ (0,
|
|
4016
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4272
4017
|
"style",
|
|
4273
4018
|
{
|
|
4274
4019
|
dangerouslySetInnerHTML: {
|
|
@@ -4312,12 +4057,12 @@ var ChartTooltipContent = React27.forwardRef(
|
|
|
4312
4057
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
4313
4058
|
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
4314
4059
|
if (labelFormatter) {
|
|
4315
|
-
return /* @__PURE__ */ (0,
|
|
4060
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
4316
4061
|
}
|
|
4317
4062
|
if (!value) {
|
|
4318
4063
|
return null;
|
|
4319
4064
|
}
|
|
4320
|
-
return /* @__PURE__ */ (0,
|
|
4065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: cn("font-medium", labelClassName), children: value });
|
|
4321
4066
|
}, [
|
|
4322
4067
|
label,
|
|
4323
4068
|
labelFormatter,
|
|
@@ -4331,7 +4076,7 @@ var ChartTooltipContent = React27.forwardRef(
|
|
|
4331
4076
|
return null;
|
|
4332
4077
|
}
|
|
4333
4078
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
4334
|
-
return /* @__PURE__ */ (0,
|
|
4079
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
4335
4080
|
"div",
|
|
4336
4081
|
{
|
|
4337
4082
|
ref,
|
|
@@ -4341,19 +4086,19 @@ var ChartTooltipContent = React27.forwardRef(
|
|
|
4341
4086
|
),
|
|
4342
4087
|
children: [
|
|
4343
4088
|
!nestLabel ? tooltipLabel : null,
|
|
4344
|
-
/* @__PURE__ */ (0,
|
|
4089
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
4345
4090
|
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
4346
4091
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
4347
4092
|
const indicatorColor = color || item.payload.fill || item.color;
|
|
4348
|
-
return /* @__PURE__ */ (0,
|
|
4093
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4349
4094
|
"div",
|
|
4350
4095
|
{
|
|
4351
4096
|
className: cn(
|
|
4352
4097
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
4353
4098
|
indicator === "dot" && "items-center"
|
|
4354
4099
|
),
|
|
4355
|
-
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0,
|
|
4356
|
-
itemConfig?.icon ? /* @__PURE__ */ (0,
|
|
4100
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
|
|
4101
|
+
itemConfig?.icon ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4357
4102
|
"div",
|
|
4358
4103
|
{
|
|
4359
4104
|
className: cn(
|
|
@@ -4371,7 +4116,7 @@ var ChartTooltipContent = React27.forwardRef(
|
|
|
4371
4116
|
}
|
|
4372
4117
|
}
|
|
4373
4118
|
),
|
|
4374
|
-
/* @__PURE__ */ (0,
|
|
4119
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
4375
4120
|
"div",
|
|
4376
4121
|
{
|
|
4377
4122
|
className: cn(
|
|
@@ -4379,11 +4124,11 @@ var ChartTooltipContent = React27.forwardRef(
|
|
|
4379
4124
|
nestLabel ? "items-end" : "items-center"
|
|
4380
4125
|
),
|
|
4381
4126
|
children: [
|
|
4382
|
-
/* @__PURE__ */ (0,
|
|
4127
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "grid gap-1.5", children: [
|
|
4383
4128
|
nestLabel ? tooltipLabel : null,
|
|
4384
|
-
/* @__PURE__ */ (0,
|
|
4129
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
4385
4130
|
] }),
|
|
4386
|
-
item.value && /* @__PURE__ */ (0,
|
|
4131
|
+
item.value && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
|
|
4387
4132
|
]
|
|
4388
4133
|
}
|
|
4389
4134
|
)
|
|
@@ -4404,7 +4149,7 @@ var ChartLegendContent = React27.forwardRef(
|
|
|
4404
4149
|
if (!payload?.length) {
|
|
4405
4150
|
return null;
|
|
4406
4151
|
}
|
|
4407
|
-
return /* @__PURE__ */ (0,
|
|
4152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4408
4153
|
"div",
|
|
4409
4154
|
{
|
|
4410
4155
|
ref,
|
|
@@ -4416,14 +4161,14 @@ var ChartLegendContent = React27.forwardRef(
|
|
|
4416
4161
|
children: payload.map((item) => {
|
|
4417
4162
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
4418
4163
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
4419
|
-
return /* @__PURE__ */ (0,
|
|
4164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
4420
4165
|
"div",
|
|
4421
4166
|
{
|
|
4422
4167
|
className: cn(
|
|
4423
4168
|
"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
|
|
4424
4169
|
),
|
|
4425
4170
|
children: [
|
|
4426
|
-
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ (0,
|
|
4171
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(itemConfig.icon, {}) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4427
4172
|
"div",
|
|
4428
4173
|
{
|
|
4429
4174
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -4460,8 +4205,8 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
4460
4205
|
// components/ui/slider.tsx
|
|
4461
4206
|
var React28 = __toESM(require("react"));
|
|
4462
4207
|
var SliderPrimitive = __toESM(require("@radix-ui/react-slider"));
|
|
4463
|
-
var
|
|
4464
|
-
var Slider = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4208
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
4209
|
+
var Slider = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
4465
4210
|
SliderPrimitive.Root,
|
|
4466
4211
|
{
|
|
4467
4212
|
ref,
|
|
@@ -4471,15 +4216,15 @@ var Slider = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
4471
4216
|
),
|
|
4472
4217
|
...props,
|
|
4473
4218
|
children: [
|
|
4474
|
-
/* @__PURE__ */ (0,
|
|
4475
|
-
/* @__PURE__ */ (0,
|
|
4219
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
4220
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
|
|
4476
4221
|
]
|
|
4477
4222
|
}
|
|
4478
4223
|
));
|
|
4479
4224
|
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
4480
4225
|
|
|
4481
4226
|
// components/form-controls/form-with-action-buttons.tsx
|
|
4482
|
-
var
|
|
4227
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
4483
4228
|
var FormWithActionButtons = ({
|
|
4484
4229
|
children,
|
|
4485
4230
|
form,
|
|
@@ -4490,10 +4235,10 @@ var FormWithActionButtons = ({
|
|
|
4490
4235
|
secondaryButtonAction,
|
|
4491
4236
|
showSecondaryButton = false
|
|
4492
4237
|
}) => {
|
|
4493
|
-
return /* @__PURE__ */ (0,
|
|
4238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Form, { ...form, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [
|
|
4494
4239
|
children,
|
|
4495
|
-
/* @__PURE__ */ (0,
|
|
4496
|
-
showSecondaryButton && /* @__PURE__ */ (0,
|
|
4240
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex justify-end gap-2", children: [
|
|
4241
|
+
showSecondaryButton && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
4497
4242
|
Button,
|
|
4498
4243
|
{
|
|
4499
4244
|
variant: "link",
|
|
@@ -4502,29 +4247,29 @@ var FormWithActionButtons = ({
|
|
|
4502
4247
|
children: secondaryButtonText
|
|
4503
4248
|
}
|
|
4504
4249
|
),
|
|
4505
|
-
/* @__PURE__ */ (0,
|
|
4250
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Button, { variant: "default", type: "submit", children: primaryButtonText })
|
|
4506
4251
|
] })
|
|
4507
4252
|
] }) });
|
|
4508
4253
|
};
|
|
4509
4254
|
|
|
4510
4255
|
// components/form-controls/helpers.tsx
|
|
4511
|
-
var
|
|
4512
|
-
var
|
|
4256
|
+
var import_lucide_react5 = require("lucide-react");
|
|
4257
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4513
4258
|
var getFileIcon = (fileName) => {
|
|
4514
4259
|
const extensionMatch = fileName.match(/\.([^.]+)$/);
|
|
4515
4260
|
const extension = extensionMatch ? extensionMatch[1].toLowerCase() : null;
|
|
4516
|
-
if (!extension) return /* @__PURE__ */ (0,
|
|
4261
|
+
if (!extension) return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react5.File, { className: "w-8 h-8 text-gray-500" });
|
|
4517
4262
|
switch (extension) {
|
|
4518
4263
|
case "pdf":
|
|
4519
|
-
return /* @__PURE__ */ (0,
|
|
4264
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react5.File, { className: "w-8 h-8 text-red-500" });
|
|
4520
4265
|
case "doc":
|
|
4521
4266
|
case "docx":
|
|
4522
|
-
return /* @__PURE__ */ (0,
|
|
4267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react5.FileText, { className: "w-8 h-8 text-blue-500" });
|
|
4523
4268
|
case "xls":
|
|
4524
4269
|
case "xlsx":
|
|
4525
|
-
return /* @__PURE__ */ (0,
|
|
4270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react5.FileSpreadsheet, { className: "w-8 h-8 text-green-500" });
|
|
4526
4271
|
default:
|
|
4527
|
-
return /* @__PURE__ */ (0,
|
|
4272
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react5.File, { className: "w-8 h-8 text-gray-500" });
|
|
4528
4273
|
}
|
|
4529
4274
|
};
|
|
4530
4275
|
var getFileName = (url) => {
|
|
@@ -4534,14 +4279,14 @@ var getFileName = (url) => {
|
|
|
4534
4279
|
};
|
|
4535
4280
|
|
|
4536
4281
|
// components/form-controls/icon-button.tsx
|
|
4537
|
-
var
|
|
4282
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
4538
4283
|
var IconButton = ({
|
|
4539
4284
|
item,
|
|
4540
4285
|
variant,
|
|
4541
4286
|
onClick,
|
|
4542
4287
|
...props
|
|
4543
4288
|
}) => {
|
|
4544
|
-
return /* @__PURE__ */ (0,
|
|
4289
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
4545
4290
|
Button,
|
|
4546
4291
|
{
|
|
4547
4292
|
type: "button",
|
|
@@ -4550,8 +4295,8 @@ var IconButton = ({
|
|
|
4550
4295
|
onClick,
|
|
4551
4296
|
...props,
|
|
4552
4297
|
children: [
|
|
4553
|
-
/* @__PURE__ */ (0,
|
|
4554
|
-
/* @__PURE__ */ (0,
|
|
4298
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "w-4 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Icon, { name: item.icon, size: 20, strokeWidth: 1 }) }),
|
|
4299
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm", children: item.title })
|
|
4555
4300
|
]
|
|
4556
4301
|
}
|
|
4557
4302
|
);
|
|
@@ -4559,7 +4304,7 @@ var IconButton = ({
|
|
|
4559
4304
|
|
|
4560
4305
|
// components/form-controls/input.tsx
|
|
4561
4306
|
var React29 = __toESM(require("react"));
|
|
4562
|
-
var
|
|
4307
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
4563
4308
|
var Input2 = React29.forwardRef(
|
|
4564
4309
|
({
|
|
4565
4310
|
variant = "default",
|
|
@@ -4571,79 +4316,28 @@ var Input2 = React29.forwardRef(
|
|
|
4571
4316
|
rules,
|
|
4572
4317
|
...props
|
|
4573
4318
|
}, ref) => {
|
|
4574
|
-
return isFormField ? /* @__PURE__ */ (0,
|
|
4319
|
+
return isFormField ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
4575
4320
|
FormField,
|
|
4576
4321
|
{
|
|
4577
4322
|
control,
|
|
4578
4323
|
name,
|
|
4579
4324
|
rules,
|
|
4580
|
-
render: ({ field }) => /* @__PURE__ */ (0,
|
|
4581
|
-
title && /* @__PURE__ */ (0,
|
|
4582
|
-
/* @__PURE__ */ (0,
|
|
4583
|
-
/* @__PURE__ */ (0,
|
|
4325
|
+
render: ({ field }) => /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(FormItem, { children: [
|
|
4326
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(FormLabel, { children: title }),
|
|
4327
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(FormControl, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Input, { className, ...props, ...field }) }),
|
|
4328
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(FormMessage, {})
|
|
4584
4329
|
] })
|
|
4585
4330
|
}
|
|
4586
|
-
) : /* @__PURE__ */ (0,
|
|
4331
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Input, { className, ref, ...props });
|
|
4587
4332
|
}
|
|
4588
4333
|
);
|
|
4589
4334
|
Input2.displayName = "Input";
|
|
4590
4335
|
|
|
4591
|
-
// components/form-controls/knowledge-graph-word-cloud.tsx
|
|
4592
|
-
var import_kg = require("@elqnt/kg");
|
|
4593
|
-
var import_lucide_react7 = require("lucide-react");
|
|
4594
|
-
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
4595
|
-
function KnowledgeGraphWordCloud() {
|
|
4596
|
-
const { labels } = (0, import_kg.useKnowledgeGraphContext)();
|
|
4597
|
-
if (!labels || !(labels instanceof Array)) {
|
|
4598
|
-
return null;
|
|
4599
|
-
}
|
|
4600
|
-
const data = labels?.map((item) => {
|
|
4601
|
-
return { text: item?.label, value: item?.count };
|
|
4602
|
-
});
|
|
4603
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "rounded-xl border bg-card h-full shadow relative p-5", children: [
|
|
4604
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "capitalize mb-10 font-semibold text-xl", children: "Graph Distribution" }),
|
|
4605
|
-
!data ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "absolute w-full flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react7.Loader2, { className: "animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_jsx_runtime54.Fragment, {})
|
|
4606
|
-
] });
|
|
4607
|
-
}
|
|
4608
|
-
|
|
4609
|
-
// components/form-controls/layout/org-selector.tsx
|
|
4610
|
-
var import_auth = require("@elqnt/auth");
|
|
4611
|
-
var import_react7 = require("react");
|
|
4612
|
-
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
4613
|
-
function OrgSelector() {
|
|
4614
|
-
const { user, selectedOrgId, setSelectedOrgId } = (0, import_auth.useUserContext)();
|
|
4615
|
-
const [orgAccess, setOrgAccess] = (0, import_react7.useState)([]);
|
|
4616
|
-
(0, import_react7.useEffect)(() => {
|
|
4617
|
-
if (user?.orgAccess) {
|
|
4618
|
-
const formattedOrgAccess = user.orgAccess.filter((org) => org.orgId && org.orgTitle).map((org) => ({
|
|
4619
|
-
value: org.orgId,
|
|
4620
|
-
label: org.orgTitle
|
|
4621
|
-
}));
|
|
4622
|
-
setOrgAccess(formattedOrgAccess);
|
|
4623
|
-
}
|
|
4624
|
-
}, [user]);
|
|
4625
|
-
const handleOrgIdChange = (value) => {
|
|
4626
|
-
setSelectedOrgId?.(value);
|
|
4627
|
-
};
|
|
4628
|
-
if (!user) {
|
|
4629
|
-
return null;
|
|
4630
|
-
}
|
|
4631
|
-
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
4632
|
-
Combobox,
|
|
4633
|
-
{
|
|
4634
|
-
defaultValue: selectedOrgId,
|
|
4635
|
-
options: orgAccess,
|
|
4636
|
-
onChange: handleOrgIdChange,
|
|
4637
|
-
label: "Select an Organization"
|
|
4638
|
-
}
|
|
4639
|
-
);
|
|
4640
|
-
}
|
|
4641
|
-
|
|
4642
4336
|
// components/form-controls/layout/page-header.tsx
|
|
4643
|
-
var
|
|
4337
|
+
var import_lucide_react6 = require("lucide-react");
|
|
4644
4338
|
var import_link = __toESM(require("next/link"));
|
|
4645
4339
|
var import_navigation = require("next/navigation");
|
|
4646
|
-
var
|
|
4340
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
4647
4341
|
function PageHeader({
|
|
4648
4342
|
title,
|
|
4649
4343
|
description,
|
|
@@ -4681,7 +4375,7 @@ function PageHeader({
|
|
|
4681
4375
|
return "justify-between";
|
|
4682
4376
|
}
|
|
4683
4377
|
}
|
|
4684
|
-
return /* @__PURE__ */ (0,
|
|
4378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
4685
4379
|
"div",
|
|
4686
4380
|
{
|
|
4687
4381
|
className: cn(
|
|
@@ -4689,25 +4383,25 @@ function PageHeader({
|
|
|
4689
4383
|
getJustifyClass()
|
|
4690
4384
|
),
|
|
4691
4385
|
children: [
|
|
4692
|
-
/* @__PURE__ */ (0,
|
|
4693
|
-
/* @__PURE__ */ (0,
|
|
4694
|
-
goBackLink && /* @__PURE__ */ (0,
|
|
4695
|
-
showBack && !goBackLink && /* @__PURE__ */ (0,
|
|
4386
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { children: [
|
|
4387
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
4388
|
+
goBackLink && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_link.default, { href: goBackLink, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react6.ChevronLeft, { className: "h-4 w-4" }) }),
|
|
4389
|
+
showBack && !goBackLink && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
4696
4390
|
"button",
|
|
4697
4391
|
{
|
|
4698
4392
|
onClick: handleBack,
|
|
4699
4393
|
className: "h-8 w-8 p-0 flex items-center justify-center rounded-md border border-gray-200 hover:bg-gray-50 transition-colors",
|
|
4700
|
-
children: /* @__PURE__ */ (0,
|
|
4394
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react6.ChevronLeft, { className: "h-4 w-4" })
|
|
4701
4395
|
}
|
|
4702
4396
|
),
|
|
4703
|
-
titleComponent ?? (title && /* @__PURE__ */ (0,
|
|
4397
|
+
titleComponent ?? (title && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("h2", { className: "font-semibold text-lg text-primary p-0 m-0", children: title }))
|
|
4704
4398
|
] }) }),
|
|
4705
|
-
description && /* @__PURE__ */ (0,
|
|
4399
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm text-gray-500", children: description })
|
|
4706
4400
|
] }),
|
|
4707
|
-
/* @__PURE__ */ (0,
|
|
4401
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex gap-2 items-center", children: [
|
|
4708
4402
|
rightSideComponent,
|
|
4709
4403
|
actions?.map(
|
|
4710
|
-
(action, index) => action.href ? /* @__PURE__ */ (0,
|
|
4404
|
+
(action, index) => action.href ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_link.default, { href: action.href, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button2, { variant: action.type, children: action.label }) }, index) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button2, { variant: action.type, onClick: action.onAction, children: action.label }, index)
|
|
4711
4405
|
)
|
|
4712
4406
|
] })
|
|
4713
4407
|
]
|
|
@@ -4715,21 +4409,15 @@ function PageHeader({
|
|
|
4715
4409
|
);
|
|
4716
4410
|
}
|
|
4717
4411
|
|
|
4718
|
-
// components/form-controls/layout/left-nav.tsx
|
|
4719
|
-
var import_auth2 = require("@elqnt/auth");
|
|
4720
|
-
var import_link3 = __toESM(require("next/link"));
|
|
4721
|
-
var import_navigation3 = require("next/navigation");
|
|
4722
|
-
var import_react9 = require("react");
|
|
4723
|
-
|
|
4724
4412
|
// components/form-controls/layout/profile-menu.tsx
|
|
4725
|
-
var
|
|
4413
|
+
var import_react6 = require("next-auth/react");
|
|
4726
4414
|
var import_link2 = __toESM(require("next/link"));
|
|
4727
4415
|
var import_navigation2 = require("next/navigation");
|
|
4728
|
-
var
|
|
4416
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
4729
4417
|
function ProfileMenu({ children, pathName }) {
|
|
4730
4418
|
const router = (0, import_navigation2.useRouter)();
|
|
4731
4419
|
const handleSignOut = async () => {
|
|
4732
|
-
await (0,
|
|
4420
|
+
await (0, import_react6.signOut)({ redirect: false });
|
|
4733
4421
|
router.push("/");
|
|
4734
4422
|
};
|
|
4735
4423
|
const links = [
|
|
@@ -4747,9 +4435,9 @@ function ProfileMenu({ children, pathName }) {
|
|
|
4747
4435
|
onClick: handleSignOut
|
|
4748
4436
|
}
|
|
4749
4437
|
];
|
|
4750
|
-
return /* @__PURE__ */ (0,
|
|
4751
|
-
/* @__PURE__ */ (0,
|
|
4752
|
-
/* @__PURE__ */ (0,
|
|
4438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Popover, { children: [
|
|
4439
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PopoverTrigger, { asChild: true, children }),
|
|
4440
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PopoverContent, { className: "p-0! flex flex-col", children: links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
4753
4441
|
import_link2.default,
|
|
4754
4442
|
{
|
|
4755
4443
|
href: link?.href,
|
|
@@ -4757,7 +4445,7 @@ function ProfileMenu({ children, pathName }) {
|
|
|
4757
4445
|
className: `cursor-pointer w-full hover:bg-primary/10 hover:text-primary p-4 flex items-center gap-4 text-gray-500
|
|
4758
4446
|
${pathName.includes(link?.href) && "bg-primary/10 text-primary"}`,
|
|
4759
4447
|
children: [
|
|
4760
|
-
/* @__PURE__ */ (0,
|
|
4448
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Icon, { name: link?.icon, size: 20 }),
|
|
4761
4449
|
link?.title
|
|
4762
4450
|
]
|
|
4763
4451
|
},
|
|
@@ -4766,188 +4454,10 @@ function ProfileMenu({ children, pathName }) {
|
|
|
4766
4454
|
] });
|
|
4767
4455
|
}
|
|
4768
4456
|
|
|
4769
|
-
// components/form-controls/layout/left-nav.tsx
|
|
4770
|
-
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
4771
|
-
var articles = [
|
|
4772
|
-
{ key: "getting-started", title: "Getting Started", href: "#" },
|
|
4773
|
-
{ key: "helpdesk", title: "Helpdesk", href: "#" }
|
|
4774
|
-
];
|
|
4775
|
-
function LeftNav({
|
|
4776
|
-
fullMenuItems,
|
|
4777
|
-
menuItems,
|
|
4778
|
-
pageTitle,
|
|
4779
|
-
ExpandedLogo,
|
|
4780
|
-
Logo
|
|
4781
|
-
}) {
|
|
4782
|
-
const router = (0, import_navigation3.useRouter)();
|
|
4783
|
-
const pathName = (0, import_navigation3.usePathname)();
|
|
4784
|
-
const { user, selectedOrgId, selectedOrg } = (0, import_auth2.useUserContext)();
|
|
4785
|
-
const [isExpanded, setIsExpanded] = (0, import_react9.useState)(() => {
|
|
4786
|
-
const stored = localStorage.getItem("isExpanded");
|
|
4787
|
-
return stored === null ? true : stored === "true";
|
|
4788
|
-
});
|
|
4789
|
-
const [apps, setApps] = (0, import_react9.useState)([]);
|
|
4790
|
-
const [items, setItems] = (0, import_react9.useState)(menuItems);
|
|
4791
|
-
(0, import_react9.useEffect)(() => {
|
|
4792
|
-
setItems(menuItems);
|
|
4793
|
-
}, [menuItems]);
|
|
4794
|
-
(0, import_react9.useEffect)(() => {
|
|
4795
|
-
if (!user || !selectedOrgId || !selectedOrg) return;
|
|
4796
|
-
const orgAccess = user.orgAccess?.find(
|
|
4797
|
-
(org) => org.orgId === selectedOrgId
|
|
4798
|
-
);
|
|
4799
|
-
if (!orgAccess) return;
|
|
4800
|
-
const apps2 = fullMenuItems?.filter(
|
|
4801
|
-
(item) => selectedOrg.apps?.includes(item.key)
|
|
4802
|
-
);
|
|
4803
|
-
setApps(apps2);
|
|
4804
|
-
}, [user, selectedOrgId, selectedOrg]);
|
|
4805
|
-
(0, import_react9.useEffect)(() => {
|
|
4806
|
-
localStorage.setItem("isExpanded", isExpanded.toString());
|
|
4807
|
-
}, [isExpanded]);
|
|
4808
|
-
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4809
|
-
"div",
|
|
4810
|
-
{
|
|
4811
|
-
style: { height: "calc(100vh - 32px)" },
|
|
4812
|
-
className: `relative pt-4 ${isExpanded ? "min-w-72" : "min-w-16"} transition-width duration-300 rounded-lg text-gray-500 sticky top-4 bg-white`,
|
|
4813
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "absolute top-0 flex flex-col gap-8 justify-between h-full w-full duration-300 ease-in-out sc-card bg-white! p-3 overflow-y-scroll hide-scrollbar", children: [
|
|
4814
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
4815
|
-
"div",
|
|
4816
|
-
{
|
|
4817
|
-
className: `flex flex-col gap-1 ${!isExpanded && "items-center"}`,
|
|
4818
|
-
children: [
|
|
4819
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "cursor-pointer flex items-center justify-between mb-4 w-full", children: [
|
|
4820
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4821
|
-
"div",
|
|
4822
|
-
{
|
|
4823
|
-
onClick: () => isExpanded ? router.push("/") : setIsExpanded(true),
|
|
4824
|
-
children: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ExpandedLogo, {}) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Logo, {})
|
|
4825
|
-
}
|
|
4826
|
-
),
|
|
4827
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { onClick: () => setIsExpanded(false), children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: "ChevronsLeftRight" }) })
|
|
4828
|
-
] }),
|
|
4829
|
-
items ? /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
|
|
4830
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
4831
|
-
"div",
|
|
4832
|
-
{
|
|
4833
|
-
onClick: () => setItems(void 0),
|
|
4834
|
-
className: "flex items-center px-1 gap-2 cursor-pointer mb-4 text-lg",
|
|
4835
|
-
children: [
|
|
4836
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: "ArrowLeft", size: 19 }),
|
|
4837
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: pageTitle })
|
|
4838
|
-
]
|
|
4839
|
-
}
|
|
4840
|
-
),
|
|
4841
|
-
menuItems?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4842
|
-
import_link3.default,
|
|
4843
|
-
{
|
|
4844
|
-
href: item.href,
|
|
4845
|
-
className: `flex items-center gap-2 cursor-pointer w-full text-sm rounded-lg py-3 ${isExpanded ? "pl-2 hover:bg-primary/10 hover:text-primary" : "pl-0 justify-center"}
|
|
4846
|
-
${item.href && (item.href?.split("/").length > 2 ? pathName?.includes(item.href) ?? "" : pathName === item.href) && isExpanded ? "bg-primary/10 text-primary" : ""}
|
|
4847
|
-
`,
|
|
4848
|
-
children: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
|
|
4849
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: item.icon, size: 19 }),
|
|
4850
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: item.title })
|
|
4851
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Tooltip, { delayDuration: 0, children: [
|
|
4852
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: item.icon }) }),
|
|
4853
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipContent, { side: "right", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { children: item.title }) })
|
|
4854
|
-
] })
|
|
4855
|
-
},
|
|
4856
|
-
item.title
|
|
4857
|
-
))
|
|
4858
|
-
] }) : isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
|
|
4859
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { id: "menu-row", children: [
|
|
4860
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("h2", { className: "text-xl font-semibold", children: "Apps" }),
|
|
4861
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "grid grid-cols-2 gap-2 mt-6", children: apps.filter((item) => item.key !== "home").map((item) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4862
|
-
IconButton,
|
|
4863
|
-
{
|
|
4864
|
-
item,
|
|
4865
|
-
variant: "ghost",
|
|
4866
|
-
onClick: () => {
|
|
4867
|
-
router.push(item.href);
|
|
4868
|
-
setItems(menuItems);
|
|
4869
|
-
}
|
|
4870
|
-
},
|
|
4871
|
-
item.key
|
|
4872
|
-
)) })
|
|
4873
|
-
] }),
|
|
4874
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { id: "help-row", className: "mt-12 ml-2", children: [
|
|
4875
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("h2", { className: "text-xl font-semibold", children: "Help" }),
|
|
4876
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "mt-6", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Input, { placeholder: "Search help content" }) }),
|
|
4877
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("ul", { className: "mt-6 ml-4 list-disc", children: articles.map((item) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4878
|
-
import_link3.default,
|
|
4879
|
-
{
|
|
4880
|
-
href: item.href,
|
|
4881
|
-
className: "block mb-2 underline",
|
|
4882
|
-
onClick: () => setIsExpanded(false),
|
|
4883
|
-
children: item.title
|
|
4884
|
-
}
|
|
4885
|
-
) }, item.key)) })
|
|
4886
|
-
] })
|
|
4887
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex flex-col gap-6 mt-2", children: apps?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Tooltip, { delayDuration: 0, children: [
|
|
4888
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4889
|
-
"div",
|
|
4890
|
-
{
|
|
4891
|
-
onClick: () => {
|
|
4892
|
-
router.push(item.href);
|
|
4893
|
-
setItems(menuItems);
|
|
4894
|
-
},
|
|
4895
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: item.icon })
|
|
4896
|
-
}
|
|
4897
|
-
) }),
|
|
4898
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipContent, { side: "right", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { children: item.title }) })
|
|
4899
|
-
] }, item.key)) })
|
|
4900
|
-
]
|
|
4901
|
-
}
|
|
4902
|
-
),
|
|
4903
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { children: [
|
|
4904
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(OrgSelector, {}) }),
|
|
4905
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
4906
|
-
import_link3.default,
|
|
4907
|
-
{
|
|
4908
|
-
href: "/admin/settings",
|
|
4909
|
-
className: `flex items-center gap-4 cursor-pointer w-full rounded-lg py-2 mb-1 ${isExpanded ? "pl-2 hover:bg-primary/10 hover:text-primary" : "pl-0"}
|
|
4910
|
-
${pathName?.includes("/settings") && isExpanded ? "bg-primary/10 text-primary" : ""}
|
|
4911
|
-
`,
|
|
4912
|
-
children: [
|
|
4913
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: "Settings" }),
|
|
4914
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: "Settings" })
|
|
4915
|
-
]
|
|
4916
|
-
}
|
|
4917
|
-
),
|
|
4918
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
4919
|
-
import_link3.default,
|
|
4920
|
-
{
|
|
4921
|
-
href: "/admin/help",
|
|
4922
|
-
className: `flex items-center gap-4 cursor-pointer w-full rounded-lg py-2 mb-1 ${isExpanded ? "pl-2 hover:bg-primary/10 hover:text-primary" : "pl-0"}
|
|
4923
|
-
${pathName?.includes("/help") && isExpanded ? "bg-primary/10 text-primary" : ""}
|
|
4924
|
-
`,
|
|
4925
|
-
children: [
|
|
4926
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: "HeartHandshake" }),
|
|
4927
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: "Help" })
|
|
4928
|
-
]
|
|
4929
|
-
}
|
|
4930
|
-
),
|
|
4931
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ProfileMenu, { pathName: pathName ?? "", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
4932
|
-
"div",
|
|
4933
|
-
{
|
|
4934
|
-
className: `flex items-center gap-4 cursor-pointer w-full rounded-lg py-2 ${isExpanded ? "pl-2 hover:bg-primary/10 hover:text-primary" : "pl-0"}`,
|
|
4935
|
-
children: [
|
|
4936
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon2, { name: "User" }),
|
|
4937
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: user?.firstName })
|
|
4938
|
-
]
|
|
4939
|
-
}
|
|
4940
|
-
) })
|
|
4941
|
-
] })
|
|
4942
|
-
] }) })
|
|
4943
|
-
}
|
|
4944
|
-
);
|
|
4945
|
-
}
|
|
4946
|
-
|
|
4947
4457
|
// components/form-controls/multi-select.tsx
|
|
4948
|
-
var
|
|
4949
|
-
var
|
|
4950
|
-
var
|
|
4458
|
+
var import_lucide_react7 = require("lucide-react");
|
|
4459
|
+
var import_react7 = require("react");
|
|
4460
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
4951
4461
|
var MultiSelect = ({
|
|
4952
4462
|
defaultValue = [],
|
|
4953
4463
|
placeholder,
|
|
@@ -4955,8 +4465,8 @@ var MultiSelect = ({
|
|
|
4955
4465
|
className = "",
|
|
4956
4466
|
onValueChange
|
|
4957
4467
|
}) => {
|
|
4958
|
-
const [open, setOpen] = (0,
|
|
4959
|
-
const [selectedValues, setSelectedValues] = (0,
|
|
4468
|
+
const [open, setOpen] = (0, import_react7.useState)(false);
|
|
4469
|
+
const [selectedValues, setSelectedValues] = (0, import_react7.useState)(defaultValue);
|
|
4960
4470
|
const handleSelect = (value) => {
|
|
4961
4471
|
let updatedValues;
|
|
4962
4472
|
if (selectedValues.includes(value)) {
|
|
@@ -4973,17 +4483,17 @@ var MultiSelect = ({
|
|
|
4973
4483
|
setSelectedValues(updatedValues);
|
|
4974
4484
|
onValueChange(updatedValues);
|
|
4975
4485
|
};
|
|
4976
|
-
return /* @__PURE__ */ (0,
|
|
4977
|
-
/* @__PURE__ */ (0,
|
|
4486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
4487
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
4978
4488
|
Button,
|
|
4979
4489
|
{
|
|
4980
4490
|
variant: "outline",
|
|
4981
4491
|
role: "combobox",
|
|
4982
4492
|
"aria-expanded": open,
|
|
4983
4493
|
className: cn("min-h-10 h-auto w-full justify-between", className),
|
|
4984
|
-
children: /* @__PURE__ */ (0,
|
|
4494
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-wrap gap-1", children: [
|
|
4985
4495
|
selectedValues.length === 0 && placeholder,
|
|
4986
|
-
selectedValues.map((value) => /* @__PURE__ */ (0,
|
|
4496
|
+
selectedValues.map((value) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
4987
4497
|
Badge,
|
|
4988
4498
|
{
|
|
4989
4499
|
variant: "secondary",
|
|
@@ -4991,7 +4501,7 @@ var MultiSelect = ({
|
|
|
4991
4501
|
onClick: (e) => handleClear(value, e),
|
|
4992
4502
|
children: [
|
|
4993
4503
|
options.find((opt) => opt.value === value)?.label,
|
|
4994
|
-
/* @__PURE__ */ (0,
|
|
4504
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react7.X, { className: "ml-1 h-3 w-3" })
|
|
4995
4505
|
]
|
|
4996
4506
|
},
|
|
4997
4507
|
value
|
|
@@ -4999,13 +4509,13 @@ var MultiSelect = ({
|
|
|
4999
4509
|
] })
|
|
5000
4510
|
}
|
|
5001
4511
|
) }),
|
|
5002
|
-
/* @__PURE__ */ (0,
|
|
4512
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(PopoverContent, { className: "p-0", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Command, { children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(CommandGroup, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
5003
4513
|
CommandItem,
|
|
5004
4514
|
{
|
|
5005
4515
|
onSelect: () => handleSelect(option.value),
|
|
5006
4516
|
children: [
|
|
5007
|
-
/* @__PURE__ */ (0,
|
|
5008
|
-
|
|
4517
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
4518
|
+
import_lucide_react7.Check,
|
|
5009
4519
|
{
|
|
5010
4520
|
className: cn(
|
|
5011
4521
|
"mr-2 h-4 w-4",
|
|
@@ -5022,18 +4532,18 @@ var MultiSelect = ({
|
|
|
5022
4532
|
};
|
|
5023
4533
|
|
|
5024
4534
|
// components/form-controls/multi-step-process.tsx
|
|
5025
|
-
var
|
|
5026
|
-
var
|
|
5027
|
-
var
|
|
4535
|
+
var import_lucide_react8 = require("lucide-react");
|
|
4536
|
+
var import_react8 = require("react");
|
|
4537
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
5028
4538
|
var MultiStepProcess = ({
|
|
5029
4539
|
initialSteps,
|
|
5030
4540
|
onFinish,
|
|
5031
4541
|
finishButtonText
|
|
5032
4542
|
}) => {
|
|
5033
|
-
const [steps, setSteps] = (0,
|
|
4543
|
+
const [steps, setSteps] = (0, import_react8.useState)(
|
|
5034
4544
|
initialSteps.map((step) => ({ ...step, isValid: false, isComplete: false }))
|
|
5035
4545
|
);
|
|
5036
|
-
const [currentStepIndex, setCurrentStepIndex] = (0,
|
|
4546
|
+
const [currentStepIndex, setCurrentStepIndex] = (0, import_react8.useState)(0);
|
|
5037
4547
|
const updateStep = (stepIndex, updates) => {
|
|
5038
4548
|
setSteps(
|
|
5039
4549
|
(prevSteps) => prevSteps.map(
|
|
@@ -5060,7 +4570,7 @@ var MultiStepProcess = ({
|
|
|
5060
4570
|
}
|
|
5061
4571
|
updateStep(currentStepIndex, { isLoading: false });
|
|
5062
4572
|
};
|
|
5063
|
-
(0,
|
|
4573
|
+
(0, import_react8.useEffect)(() => {
|
|
5064
4574
|
const currentStep = steps[currentStepIndex];
|
|
5065
4575
|
if (currentStep.isComplete) {
|
|
5066
4576
|
goToNextStep();
|
|
@@ -5073,7 +4583,7 @@ var MultiStepProcess = ({
|
|
|
5073
4583
|
};
|
|
5074
4584
|
const renderStepComponent = (step, index) => {
|
|
5075
4585
|
const StepComponent = step.component;
|
|
5076
|
-
return /* @__PURE__ */ (0,
|
|
4586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5077
4587
|
StepComponent,
|
|
5078
4588
|
{
|
|
5079
4589
|
step,
|
|
@@ -5083,23 +4593,23 @@ var MultiStepProcess = ({
|
|
|
5083
4593
|
};
|
|
5084
4594
|
const isLastStep = currentStepIndex === steps.length - 1;
|
|
5085
4595
|
const currentStepData = steps[currentStepIndex];
|
|
5086
|
-
return /* @__PURE__ */ (0,
|
|
5087
|
-
/* @__PURE__ */ (0,
|
|
5088
|
-
/* @__PURE__ */ (0,
|
|
4596
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Card, { className: "p-6", children: [
|
|
4597
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "mb-8", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex justify-between items-start", children: steps.map((step, i) => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col items-center", children: [
|
|
4598
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5089
4599
|
"div",
|
|
5090
4600
|
{
|
|
5091
4601
|
className: `
|
|
5092
4602
|
w-10 h-10 rounded-full flex items-center justify-center mb-2
|
|
5093
4603
|
${i < currentStepIndex ? "bg-green-500 text-white" : i === currentStepIndex ? "bg-blue-500 text-white" : "bg-gray-200 text-gray-500"}
|
|
5094
4604
|
`,
|
|
5095
|
-
children: i < currentStepIndex ? /* @__PURE__ */ (0,
|
|
4605
|
+
children: i < currentStepIndex ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react8.Check, { className: "w-6 h-6" }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: step.id })
|
|
5096
4606
|
}
|
|
5097
4607
|
),
|
|
5098
|
-
/* @__PURE__ */ (0,
|
|
4608
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm text-center max-w-[100px]", children: step.title })
|
|
5099
4609
|
] }, i)) }) }),
|
|
5100
|
-
/* @__PURE__ */ (0,
|
|
5101
|
-
/* @__PURE__ */ (0,
|
|
5102
|
-
/* @__PURE__ */ (0,
|
|
4610
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "mb-3", children: renderStepComponent(currentStepData, currentStepIndex) }),
|
|
4611
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex justify-between", children: [
|
|
4612
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5103
4613
|
Button,
|
|
5104
4614
|
{
|
|
5105
4615
|
onClick: goToPreviousStep,
|
|
@@ -5108,12 +4618,12 @@ var MultiStepProcess = ({
|
|
|
5108
4618
|
children: "Previous"
|
|
5109
4619
|
}
|
|
5110
4620
|
),
|
|
5111
|
-
/* @__PURE__ */ (0,
|
|
4621
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5112
4622
|
Button,
|
|
5113
4623
|
{
|
|
5114
4624
|
onClick: goToNextStep,
|
|
5115
4625
|
disabled: !currentStepData.isValid || currentStepData.isLoading,
|
|
5116
|
-
children: currentStepData.isLoading ? /* @__PURE__ */ (0,
|
|
4626
|
+
children: currentStepData.isLoading ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react8.Loader2, { className: "h-6 w-6 animate-spin" }) : isLastStep ? finishButtonText ?? "Finish" : "Next"
|
|
5117
4627
|
}
|
|
5118
4628
|
)
|
|
5119
4629
|
] })
|
|
@@ -5121,7 +4631,7 @@ var MultiStepProcess = ({
|
|
|
5121
4631
|
};
|
|
5122
4632
|
|
|
5123
4633
|
// components/form-controls/popover.tsx
|
|
5124
|
-
var
|
|
4634
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
5125
4635
|
var Popover2 = ({
|
|
5126
4636
|
trigger,
|
|
5127
4637
|
children,
|
|
@@ -5129,9 +4639,9 @@ var Popover2 = ({
|
|
|
5129
4639
|
align = "center",
|
|
5130
4640
|
sideOffset = 4
|
|
5131
4641
|
}) => {
|
|
5132
|
-
return /* @__PURE__ */ (0,
|
|
5133
|
-
/* @__PURE__ */ (0,
|
|
5134
|
-
/* @__PURE__ */ (0,
|
|
4642
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Popover, { children: [
|
|
4643
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className, children: trigger }) }),
|
|
4644
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
5135
4645
|
PopoverContent,
|
|
5136
4646
|
{
|
|
5137
4647
|
align,
|
|
@@ -5145,34 +4655,34 @@ var Popover2 = ({
|
|
|
5145
4655
|
|
|
5146
4656
|
// components/form-controls/radio-group.tsx
|
|
5147
4657
|
var React31 = __toESM(require("react"));
|
|
5148
|
-
var
|
|
4658
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
5149
4659
|
var RadioGroup3 = React31.forwardRef(({ className, options, defaultValue, title, name, control, isFormField, ...props }, ref) => {
|
|
5150
4660
|
if (!isFormField) {
|
|
5151
|
-
return /* @__PURE__ */ (0,
|
|
5152
|
-
/* @__PURE__ */ (0,
|
|
5153
|
-
/* @__PURE__ */ (0,
|
|
4661
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(RadioGroup2, { defaultValue, ...props, ref, children: options?.map((option) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
4662
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(RadioGroupItem, { value: option.value, id: option.value }),
|
|
4663
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("label", { htmlFor: option.value, children: option.label })
|
|
5154
4664
|
] }, option.value)) });
|
|
5155
4665
|
}
|
|
5156
|
-
return /* @__PURE__ */ (0,
|
|
4666
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5157
4667
|
FormField,
|
|
5158
4668
|
{
|
|
5159
4669
|
control,
|
|
5160
4670
|
name,
|
|
5161
|
-
render: ({ field }) => /* @__PURE__ */ (0,
|
|
5162
|
-
title && /* @__PURE__ */ (0,
|
|
5163
|
-
/* @__PURE__ */ (0,
|
|
4671
|
+
render: ({ field }) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(FormItem, { children: [
|
|
4672
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FormLabel, { children: title }),
|
|
4673
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FormControl, { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5164
4674
|
RadioGroup2,
|
|
5165
4675
|
{
|
|
5166
4676
|
onValueChange: field.onChange,
|
|
5167
4677
|
defaultValue: field.value,
|
|
5168
4678
|
...props,
|
|
5169
|
-
children: options?.map((option) => /* @__PURE__ */ (0,
|
|
5170
|
-
/* @__PURE__ */ (0,
|
|
5171
|
-
/* @__PURE__ */ (0,
|
|
4679
|
+
children: options?.map((option) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
4680
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(RadioGroupItem, { value: option.value, id: option.value }),
|
|
4681
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("label", { htmlFor: option.value, children: option.label })
|
|
5172
4682
|
] }, option.value))
|
|
5173
4683
|
}
|
|
5174
4684
|
) }),
|
|
5175
|
-
/* @__PURE__ */ (0,
|
|
4685
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FormMessage, {})
|
|
5176
4686
|
] })
|
|
5177
4687
|
}
|
|
5178
4688
|
);
|
|
@@ -5182,22 +4692,22 @@ RadioGroup3.displayName = "RadioGroup";
|
|
|
5182
4692
|
// components/form-controls/scroll-area.tsx
|
|
5183
4693
|
var React32 = __toESM(require("react"));
|
|
5184
4694
|
var import_react_scroll_area = require("@radix-ui/react-scroll-area");
|
|
5185
|
-
var
|
|
5186
|
-
var ScrollArea2 = React32.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4695
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
4696
|
+
var ScrollArea2 = React32.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
|
|
5187
4697
|
import_react_scroll_area.ScrollArea,
|
|
5188
4698
|
{
|
|
5189
4699
|
ref,
|
|
5190
4700
|
className: cn("relative overflow-hidden", className),
|
|
5191
4701
|
...props,
|
|
5192
4702
|
children: [
|
|
5193
|
-
/* @__PURE__ */ (0,
|
|
5194
|
-
/* @__PURE__ */ (0,
|
|
5195
|
-
/* @__PURE__ */ (0,
|
|
4703
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_scroll_area.ScrollAreaViewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
4704
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ScrollBar2, {}),
|
|
4705
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_scroll_area.ScrollAreaCorner, {})
|
|
5196
4706
|
]
|
|
5197
4707
|
}
|
|
5198
4708
|
));
|
|
5199
4709
|
ScrollArea2.displayName = import_react_scroll_area.ScrollArea.displayName;
|
|
5200
|
-
var ScrollBar2 = React32.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0,
|
|
4710
|
+
var ScrollBar2 = React32.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
5201
4711
|
import_react_scroll_area.ScrollAreaScrollbar,
|
|
5202
4712
|
{
|
|
5203
4713
|
ref,
|
|
@@ -5209,13 +4719,13 @@ var ScrollBar2 = React32.forwardRef(({ className, orientation = "vertical", ...p
|
|
|
5209
4719
|
className
|
|
5210
4720
|
),
|
|
5211
4721
|
...props,
|
|
5212
|
-
children: /* @__PURE__ */ (0,
|
|
4722
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_scroll_area.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
5213
4723
|
}
|
|
5214
4724
|
));
|
|
5215
4725
|
ScrollBar2.displayName = import_react_scroll_area.ScrollAreaScrollbar.displayName;
|
|
5216
4726
|
|
|
5217
4727
|
// components/form-controls/select.tsx
|
|
5218
|
-
var
|
|
4728
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
5219
4729
|
var Select2 = ({
|
|
5220
4730
|
defaultValue,
|
|
5221
4731
|
placeholder,
|
|
@@ -5223,9 +4733,9 @@ var Select2 = ({
|
|
|
5223
4733
|
className = "",
|
|
5224
4734
|
onValueChange
|
|
5225
4735
|
}) => {
|
|
5226
|
-
return /* @__PURE__ */ (0,
|
|
5227
|
-
/* @__PURE__ */ (0,
|
|
5228
|
-
/* @__PURE__ */ (0,
|
|
4736
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Select, { value: defaultValue, onValueChange, children: [
|
|
4737
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SelectTrigger, { className, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SelectValue, { placeholder }) }),
|
|
4738
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SelectContent, { children: options?.map((option, i) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SelectItem, { value: option.value, children: option.label }, i)) })
|
|
5229
4739
|
] });
|
|
5230
4740
|
};
|
|
5231
4741
|
|
|
@@ -5237,8 +4747,8 @@ var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
|
5237
4747
|
// components/ui/progress.tsx
|
|
5238
4748
|
var React33 = __toESM(require("react"));
|
|
5239
4749
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
5240
|
-
var
|
|
5241
|
-
var Progress = React33.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4750
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
4751
|
+
var Progress = React33.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
5242
4752
|
ProgressPrimitive.Root,
|
|
5243
4753
|
{
|
|
5244
4754
|
ref,
|
|
@@ -5247,7 +4757,7 @@ var Progress = React33.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
5247
4757
|
className
|
|
5248
4758
|
),
|
|
5249
4759
|
...props,
|
|
5250
|
-
children: /* @__PURE__ */ (0,
|
|
4760
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
5251
4761
|
ProgressPrimitive.Indicator,
|
|
5252
4762
|
{
|
|
5253
4763
|
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
@@ -5259,27 +4769,27 @@ var Progress = React33.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
5259
4769
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
5260
4770
|
|
|
5261
4771
|
// components/form-controls/setup-guide.tsx
|
|
5262
|
-
var
|
|
5263
|
-
var
|
|
5264
|
-
var
|
|
4772
|
+
var import_lucide_react9 = require("lucide-react");
|
|
4773
|
+
var import_react9 = require("react");
|
|
4774
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
5265
4775
|
var SetupGuide = ({
|
|
5266
4776
|
onDismiss,
|
|
5267
4777
|
onStepComplete,
|
|
5268
4778
|
items
|
|
5269
4779
|
}) => {
|
|
5270
|
-
const [expanded, setExpanded] = (0,
|
|
4780
|
+
const [expanded, setExpanded] = (0, import_react9.useState)(
|
|
5271
4781
|
items.findIndex((item) => !item.complete)
|
|
5272
4782
|
);
|
|
5273
|
-
const [isGuideOpen, setIsGuideOpen] = (0,
|
|
5274
|
-
const accessId = (0,
|
|
4783
|
+
const [isGuideOpen, setIsGuideOpen] = (0, import_react9.useState)(true);
|
|
4784
|
+
const accessId = (0, import_react9.useId)();
|
|
5275
4785
|
const completedItemsLength = items.filter((item) => item.complete).length;
|
|
5276
|
-
return /* @__PURE__ */ (0,
|
|
5277
|
-
/* @__PURE__ */ (0,
|
|
5278
|
-
completedItemsLength === items.length ? /* @__PURE__ */ (0,
|
|
5279
|
-
/* @__PURE__ */ (0,
|
|
5280
|
-
/* @__PURE__ */ (0,
|
|
5281
|
-
] }) : /* @__PURE__ */ (0,
|
|
5282
|
-
completedItemsLength !== items.length && /* @__PURE__ */ (0,
|
|
4786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "p-0", children: [
|
|
4787
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "px-4 pb-4", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "mt-2", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
4788
|
+
completedItemsLength === items.length ? /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
4789
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react9.Check, { className: "h-4 w-4 text-gray-400" }),
|
|
4790
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-sm text-gray-400", children: "Done" })
|
|
4791
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-sm", children: `${completedItemsLength} / ${items.length} completed` }),
|
|
4792
|
+
completedItemsLength !== items.length && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "w-24", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5283
4793
|
Progress,
|
|
5284
4794
|
{
|
|
5285
4795
|
value: completedItemsLength / items.length * 100,
|
|
@@ -5287,7 +4797,7 @@ var SetupGuide = ({
|
|
|
5287
4797
|
}
|
|
5288
4798
|
) })
|
|
5289
4799
|
] }) }) }) }),
|
|
5290
|
-
/* @__PURE__ */ (0,
|
|
4800
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Collapsible, { open: isGuideOpen, id: accessId, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CollapsibleContent2, { className: "p-2", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "space-y-1", children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5291
4801
|
SetupItem,
|
|
5292
4802
|
{
|
|
5293
4803
|
expanded: expanded === item.id,
|
|
@@ -5297,7 +4807,7 @@ var SetupGuide = ({
|
|
|
5297
4807
|
},
|
|
5298
4808
|
item.id
|
|
5299
4809
|
)) }) }) }),
|
|
5300
|
-
completedItemsLength === items.length && /* @__PURE__ */ (0,
|
|
4810
|
+
completedItemsLength === items.length && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "border-t border-gray-200 bg-gray-50 p-3", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { onClick: onDismiss, children: "Dismiss Guide" }) }) })
|
|
5301
4811
|
] });
|
|
5302
4812
|
};
|
|
5303
4813
|
var SetupItem = ({
|
|
@@ -5312,44 +4822,44 @@ var SetupItem = ({
|
|
|
5312
4822
|
secondaryButton,
|
|
5313
4823
|
id
|
|
5314
4824
|
}) => {
|
|
5315
|
-
const [loading, setLoading] = (0,
|
|
4825
|
+
const [loading, setLoading] = (0, import_react9.useState)(false);
|
|
5316
4826
|
const completeItem = async () => {
|
|
5317
4827
|
setLoading(true);
|
|
5318
4828
|
await onComplete(id);
|
|
5319
4829
|
setLoading(false);
|
|
5320
4830
|
};
|
|
5321
|
-
return /* @__PURE__ */ (0,
|
|
5322
|
-
/* @__PURE__ */ (0,
|
|
5323
|
-
/* @__PURE__ */ (0,
|
|
4831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `rounded ${expanded ? "bg-gray-100" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `p-2 ${expanded ? "" : "hover:bg-gray-50"}`, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex gap-2 items-start", children: [
|
|
4832
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Tooltip, { children: [
|
|
4833
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5324
4834
|
Button,
|
|
5325
4835
|
{
|
|
5326
4836
|
variant: "ghost",
|
|
5327
4837
|
size: "icon",
|
|
5328
4838
|
className: "mt-0.5",
|
|
5329
4839
|
onClick: completeItem,
|
|
5330
|
-
children: loading ? /* @__PURE__ */ (0,
|
|
4840
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-gray-300 border-t-gray-600" }) : complete ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "h-5 w-5 rounded-full bg-gray-900 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react9.Check, { className: "h-3 w-3 text-white" }) }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "h-5 w-5 rounded-full border-2 border-gray-300" })
|
|
5331
4841
|
}
|
|
5332
4842
|
) }),
|
|
5333
|
-
/* @__PURE__ */ (0,
|
|
4843
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TooltipContent, { children: complete ? "Mark as not done" : "Mark as done" })
|
|
5334
4844
|
] }) }),
|
|
5335
|
-
/* @__PURE__ */ (0,
|
|
4845
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5336
4846
|
"div",
|
|
5337
4847
|
{
|
|
5338
4848
|
className: `grow ${expanded ? "" : "cursor-pointer"}`,
|
|
5339
4849
|
onClick: expanded ? void 0 : setExpanded,
|
|
5340
|
-
children: /* @__PURE__ */ (0,
|
|
5341
|
-
/* @__PURE__ */ (0,
|
|
5342
|
-
/* @__PURE__ */ (0,
|
|
5343
|
-
/* @__PURE__ */ (0,
|
|
5344
|
-
(primaryButton || secondaryButton) && /* @__PURE__ */ (0,
|
|
5345
|
-
primaryButton && /* @__PURE__ */ (0,
|
|
5346
|
-
secondaryButton && /* @__PURE__ */ (0,
|
|
4850
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "space-y-3", id: id.toString(), children: [
|
|
4851
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("h4", { className: expanded ? "text-sm font-semibold" : "text-sm", children: title }),
|
|
4852
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Collapsible, { open: expanded, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CollapsibleContent2, { className: "pb-2 pr-2", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "space-y-4", children: [
|
|
4853
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-sm text-gray-600", children: description }),
|
|
4854
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "space-x-3", children: [
|
|
4855
|
+
primaryButton && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { ...primaryButton.props, children: primaryButton.content }),
|
|
4856
|
+
secondaryButton && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { variant: "outline", ...secondaryButton.props, children: secondaryButton.content })
|
|
5347
4857
|
] })
|
|
5348
4858
|
] }) }) })
|
|
5349
4859
|
] })
|
|
5350
4860
|
}
|
|
5351
4861
|
),
|
|
5352
|
-
image && expanded && /* @__PURE__ */ (0,
|
|
4862
|
+
image && expanded && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5353
4863
|
"img",
|
|
5354
4864
|
{
|
|
5355
4865
|
src: image.url,
|
|
@@ -5361,7 +4871,7 @@ var SetupItem = ({
|
|
|
5361
4871
|
};
|
|
5362
4872
|
|
|
5363
4873
|
// components/form-controls/sheet.tsx
|
|
5364
|
-
var
|
|
4874
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
5365
4875
|
var Sheet2 = ({
|
|
5366
4876
|
title,
|
|
5367
4877
|
trigger,
|
|
@@ -5369,20 +4879,20 @@ var Sheet2 = ({
|
|
|
5369
4879
|
children,
|
|
5370
4880
|
...props
|
|
5371
4881
|
}) => {
|
|
5372
|
-
return /* @__PURE__ */ (0,
|
|
5373
|
-
trigger && /* @__PURE__ */ (0,
|
|
5374
|
-
/* @__PURE__ */ (0,
|
|
5375
|
-
/* @__PURE__ */ (0,
|
|
5376
|
-
/* @__PURE__ */ (0,
|
|
4882
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Sheet, { ...props, children: [
|
|
4883
|
+
trigger && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SheetTrigger, { children: trigger }),
|
|
4884
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SheetContent, { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(SheetHeader, { children: [
|
|
4885
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SheetTitle, { children: title }),
|
|
4886
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SheetDescription, { children: description }),
|
|
5377
4887
|
children
|
|
5378
4888
|
] }) })
|
|
5379
4889
|
] });
|
|
5380
4890
|
};
|
|
5381
4891
|
|
|
5382
4892
|
// components/form-controls/tags-input.tsx
|
|
5383
|
-
var
|
|
4893
|
+
var import_lucide_react10 = require("lucide-react");
|
|
5384
4894
|
var React35 = __toESM(require("react"));
|
|
5385
|
-
var
|
|
4895
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
5386
4896
|
var TagsInput = React35.forwardRef(
|
|
5387
4897
|
({ variant = "default", className, value, onChange, ...props }, ref) => {
|
|
5388
4898
|
const [inputValue, setInputValue] = React35.useState("");
|
|
@@ -5401,15 +4911,15 @@ var TagsInput = React35.forwardRef(
|
|
|
5401
4911
|
const removeTag = (index) => {
|
|
5402
4912
|
onChange(value.filter((_, i) => i !== index));
|
|
5403
4913
|
};
|
|
5404
|
-
return /* @__PURE__ */ (0,
|
|
5405
|
-
value.map((tag, index) => /* @__PURE__ */ (0,
|
|
4914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-wrap gap-2 p-2 border rounded", children: [
|
|
4915
|
+
value.map((tag, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
5406
4916
|
"span",
|
|
5407
4917
|
{
|
|
5408
4918
|
className: "bg-gray-200 px-2 py-1 rounded flex items-center",
|
|
5409
4919
|
children: [
|
|
5410
4920
|
tag,
|
|
5411
|
-
/* @__PURE__ */ (0,
|
|
5412
|
-
|
|
4921
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
4922
|
+
import_lucide_react10.X,
|
|
5413
4923
|
{
|
|
5414
4924
|
className: "ml-1 w-4 h-4 cursor-pointer",
|
|
5415
4925
|
onClick: () => removeTag(index)
|
|
@@ -5419,7 +4929,7 @@ var TagsInput = React35.forwardRef(
|
|
|
5419
4929
|
},
|
|
5420
4930
|
index
|
|
5421
4931
|
)),
|
|
5422
|
-
/* @__PURE__ */ (0,
|
|
4932
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
5423
4933
|
"input",
|
|
5424
4934
|
{
|
|
5425
4935
|
className: "grow border-none focus:ring-0",
|
|
@@ -5437,7 +4947,7 @@ TagsInput.displayName = "TagsInput";
|
|
|
5437
4947
|
|
|
5438
4948
|
// components/form-controls/textarea.tsx
|
|
5439
4949
|
var React36 = __toESM(require("react"));
|
|
5440
|
-
var
|
|
4950
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
5441
4951
|
var Textarea2 = React36.forwardRef(
|
|
5442
4952
|
({
|
|
5443
4953
|
variant = "default",
|
|
@@ -5449,15 +4959,15 @@ var Textarea2 = React36.forwardRef(
|
|
|
5449
4959
|
rules,
|
|
5450
4960
|
...props
|
|
5451
4961
|
}, ref) => {
|
|
5452
|
-
return isFormField ? /* @__PURE__ */ (0,
|
|
4962
|
+
return isFormField ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5453
4963
|
FormField,
|
|
5454
4964
|
{
|
|
5455
4965
|
control,
|
|
5456
4966
|
name,
|
|
5457
4967
|
rules,
|
|
5458
|
-
render: ({ field }) => /* @__PURE__ */ (0,
|
|
5459
|
-
title && /* @__PURE__ */ (0,
|
|
5460
|
-
/* @__PURE__ */ (0,
|
|
4968
|
+
render: ({ field }) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(FormItem, { children: [
|
|
4969
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(FormLabel, { children: title }),
|
|
4970
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(FormControl, { children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5461
4971
|
Textarea,
|
|
5462
4972
|
{
|
|
5463
4973
|
className: `${className} resize-none`,
|
|
@@ -5465,10 +4975,10 @@ var Textarea2 = React36.forwardRef(
|
|
|
5465
4975
|
...props
|
|
5466
4976
|
}
|
|
5467
4977
|
) }),
|
|
5468
|
-
/* @__PURE__ */ (0,
|
|
4978
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(FormMessage, {})
|
|
5469
4979
|
] })
|
|
5470
4980
|
}
|
|
5471
|
-
) : /* @__PURE__ */ (0,
|
|
4981
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5472
4982
|
Textarea,
|
|
5473
4983
|
{
|
|
5474
4984
|
className: `${className} resize-none`,
|
|
@@ -5481,9 +4991,9 @@ var Textarea2 = React36.forwardRef(
|
|
|
5481
4991
|
Textarea2.displayName = "Textarea";
|
|
5482
4992
|
|
|
5483
4993
|
// components/form-controls/time-picker.tsx
|
|
5484
|
-
var
|
|
5485
|
-
var
|
|
5486
|
-
var
|
|
4994
|
+
var import_lucide_react11 = require("lucide-react");
|
|
4995
|
+
var import_react10 = require("react");
|
|
4996
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
5487
4997
|
var TimePicker = ({
|
|
5488
4998
|
value,
|
|
5489
4999
|
onValueChange,
|
|
@@ -5491,7 +5001,7 @@ var TimePicker = ({
|
|
|
5491
5001
|
className = "",
|
|
5492
5002
|
disabled = false
|
|
5493
5003
|
}) => {
|
|
5494
|
-
const [open, setOpen] = (0,
|
|
5004
|
+
const [open, setOpen] = (0, import_react10.useState)(false);
|
|
5495
5005
|
const hours = Array.from({ length: 24 }, (_, i) => ({
|
|
5496
5006
|
value: i.toString().padStart(2, "0"),
|
|
5497
5007
|
label: i.toString().padStart(2, "0")
|
|
@@ -5507,21 +5017,21 @@ var TimePicker = ({
|
|
|
5507
5017
|
const handleMinuteChange = (newMinute) => {
|
|
5508
5018
|
onValueChange(`${hour}:${newMinute}`);
|
|
5509
5019
|
};
|
|
5510
|
-
return /* @__PURE__ */ (0,
|
|
5511
|
-
/* @__PURE__ */ (0,
|
|
5020
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
5021
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
5512
5022
|
Button,
|
|
5513
5023
|
{
|
|
5514
5024
|
variant: "outline",
|
|
5515
5025
|
className: `w-full justify-start text-left font-normal ${className}`,
|
|
5516
5026
|
disabled,
|
|
5517
5027
|
children: [
|
|
5518
|
-
/* @__PURE__ */ (0,
|
|
5028
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react11.Clock, { className: "mr-2 h-4 w-4" }),
|
|
5519
5029
|
value || placeholder
|
|
5520
5030
|
]
|
|
5521
5031
|
}
|
|
5522
5032
|
) }),
|
|
5523
|
-
/* @__PURE__ */ (0,
|
|
5524
|
-
/* @__PURE__ */ (0,
|
|
5033
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(PopoverContent, { className: "w-auto p-4", align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
5034
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
5525
5035
|
Select2,
|
|
5526
5036
|
{
|
|
5527
5037
|
defaultValue: hour,
|
|
@@ -5531,8 +5041,8 @@ var TimePicker = ({
|
|
|
5531
5041
|
className: "w-[80px]"
|
|
5532
5042
|
}
|
|
5533
5043
|
),
|
|
5534
|
-
/* @__PURE__ */ (0,
|
|
5535
|
-
/* @__PURE__ */ (0,
|
|
5044
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-lg", children: ":" }),
|
|
5045
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
5536
5046
|
Select2,
|
|
5537
5047
|
{
|
|
5538
5048
|
defaultValue: minute,
|
|
@@ -5547,19 +5057,19 @@ var TimePicker = ({
|
|
|
5547
5057
|
};
|
|
5548
5058
|
|
|
5549
5059
|
// components/form-controls/tooltip.tsx
|
|
5550
|
-
var
|
|
5060
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
5551
5061
|
var Tooltip3 = ({ children, tipContent }) => {
|
|
5552
|
-
return /* @__PURE__ */ (0,
|
|
5553
|
-
/* @__PURE__ */ (0,
|
|
5554
|
-
/* @__PURE__ */ (0,
|
|
5062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Tooltip, { delayDuration: 0, children: [
|
|
5063
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(TooltipTrigger, { children }),
|
|
5064
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { children: tipContent }) })
|
|
5555
5065
|
] }) });
|
|
5556
5066
|
};
|
|
5557
5067
|
|
|
5558
5068
|
// components/form-controls/upload-widget.tsx
|
|
5559
|
-
var
|
|
5069
|
+
var import_lucide_react12 = require("lucide-react");
|
|
5560
5070
|
var import_react_dropzone = require("react-dropzone");
|
|
5561
5071
|
var import_sonner = require("sonner");
|
|
5562
|
-
var
|
|
5072
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
5563
5073
|
function UploadWidget({
|
|
5564
5074
|
accept,
|
|
5565
5075
|
maxSize,
|
|
@@ -5591,18 +5101,18 @@ function UploadWidget({
|
|
|
5591
5101
|
maxFiles
|
|
5592
5102
|
};
|
|
5593
5103
|
const { getRootProps, getInputProps, isDragActive } = (0, import_react_dropzone.useDropzone)(dropzoneOptions);
|
|
5594
|
-
return /* @__PURE__ */ (0,
|
|
5104
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
5595
5105
|
"div",
|
|
5596
5106
|
{
|
|
5597
5107
|
...getRootProps(),
|
|
5598
5108
|
className: "relative border-2 border-dashed border-gray-300 rounded-lg p-6 text-center cursor-pointer min-h-[160px]",
|
|
5599
5109
|
children: [
|
|
5600
|
-
isUploading && /* @__PURE__ */ (0,
|
|
5601
|
-
/* @__PURE__ */ (0,
|
|
5602
|
-
isDragActive ? /* @__PURE__ */ (0,
|
|
5603
|
-
/* @__PURE__ */ (0,
|
|
5604
|
-
/* @__PURE__ */ (0,
|
|
5605
|
-
/* @__PURE__ */ (0,
|
|
5110
|
+
isUploading && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "absolute top-3 right-3", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react12.Loader2, { className: "animate-spin h-6 w-6 text-primary" }) }),
|
|
5111
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("input", { ...getInputProps() }),
|
|
5112
|
+
isDragActive ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { children: "Drop the files here ..." }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { children: [
|
|
5113
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react12.Upload, { className: "mx-auto h-12 w-12 text-gray-400" }),
|
|
5114
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { children: "Drag n drop some files here, or click to select files" }),
|
|
5115
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("p", { className: "text-sm text-gray-500", children: [
|
|
5606
5116
|
"Only ",
|
|
5607
5117
|
acceptedTypes,
|
|
5608
5118
|
" files up to ",
|
|
@@ -5610,11 +5120,11 @@ function UploadWidget({
|
|
|
5610
5120
|
"MB are accepted"
|
|
5611
5121
|
] })
|
|
5612
5122
|
] }),
|
|
5613
|
-
fileUrls.length > 0 && /* @__PURE__ */ (0,
|
|
5123
|
+
fileUrls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "mt-4 border-t border-gray-300 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("ul", { className: "flex flex-wrap gap-2", children: fileUrls.map((url, i) => {
|
|
5614
5124
|
const fileName = getFileName(url);
|
|
5615
|
-
return /* @__PURE__ */ (0,
|
|
5616
|
-
/* @__PURE__ */ (0,
|
|
5617
|
-
/* @__PURE__ */ (0,
|
|
5125
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("li", { className: "flex items-center space-x-2 text-sm", children: [
|
|
5126
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { children: getFileIcon(fileName) }),
|
|
5127
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: fileName })
|
|
5618
5128
|
] }, i);
|
|
5619
5129
|
}) }) })
|
|
5620
5130
|
]
|
|
@@ -5625,15 +5135,15 @@ function UploadWidget({
|
|
|
5625
5135
|
// components/general/markdown-renderer.tsx
|
|
5626
5136
|
var import_react_markdown = __toESM(require("react-markdown"));
|
|
5627
5137
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
5628
|
-
var
|
|
5138
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
5629
5139
|
function MarkdownRenderer({ content }) {
|
|
5630
|
-
return /* @__PURE__ */ (0,
|
|
5140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5631
5141
|
import_react_markdown.default,
|
|
5632
5142
|
{
|
|
5633
5143
|
remarkPlugins: [import_remark_gfm.default],
|
|
5634
5144
|
className: "text-primary-900",
|
|
5635
5145
|
components: {
|
|
5636
|
-
a: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5146
|
+
a: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5637
5147
|
"a",
|
|
5638
5148
|
{
|
|
5639
5149
|
target: "_blank",
|
|
@@ -5642,20 +5152,20 @@ function MarkdownRenderer({ content }) {
|
|
|
5642
5152
|
...props
|
|
5643
5153
|
}
|
|
5644
5154
|
),
|
|
5645
|
-
h1: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5646
|
-
h2: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5647
|
-
h3: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5648
|
-
code: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5155
|
+
h1: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("h1", { className: "text-2xl font-bold mt-6 mb-4", ...props }),
|
|
5156
|
+
h2: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("h2", { className: "text-xl font-semibold mt-5 mb-3", ...props }),
|
|
5157
|
+
h3: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("h3", { className: "text-lg font-semibold mt-4 mb-2", ...props }),
|
|
5158
|
+
code: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5649
5159
|
"code",
|
|
5650
5160
|
{
|
|
5651
5161
|
className: "block bg-stone-100 p-3 rounded font-mono",
|
|
5652
5162
|
...props
|
|
5653
5163
|
}
|
|
5654
5164
|
),
|
|
5655
|
-
ul: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5656
|
-
ol: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5657
|
-
p: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5658
|
-
blockquote: ({ node, ...props }) => /* @__PURE__ */ (0,
|
|
5165
|
+
ul: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("ul", { className: "list-disc pl-6 my-4", ...props }),
|
|
5166
|
+
ol: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("ol", { className: "list-decimal pl-6 my-4", ...props }),
|
|
5167
|
+
p: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "my-4", ...props }),
|
|
5168
|
+
blockquote: ({ node, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5659
5169
|
"blockquote",
|
|
5660
5170
|
{
|
|
5661
5171
|
className: "border-l-4 border-stone-200 pl-4 my-4 italic",
|
|
@@ -5669,9 +5179,9 @@ function MarkdownRenderer({ content }) {
|
|
|
5669
5179
|
}
|
|
5670
5180
|
|
|
5671
5181
|
// components/general/chat-loading.tsx
|
|
5672
|
-
var
|
|
5182
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
5673
5183
|
function ChatLoading() {
|
|
5674
|
-
return /* @__PURE__ */ (0,
|
|
5184
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
5675
5185
|
"svg",
|
|
5676
5186
|
{
|
|
5677
5187
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5679,7 +5189,7 @@ function ChatLoading() {
|
|
|
5679
5189
|
width: "60",
|
|
5680
5190
|
height: "15",
|
|
5681
5191
|
children: [
|
|
5682
|
-
/* @__PURE__ */ (0,
|
|
5192
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("circle", { cx: "7.5", cy: "7.5", r: "3.5", fill: "#444444", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
5683
5193
|
"animate",
|
|
5684
5194
|
{
|
|
5685
5195
|
attributeName: "cy",
|
|
@@ -5692,7 +5202,7 @@ function ChatLoading() {
|
|
|
5692
5202
|
values: "7.5;3.5;7.5"
|
|
5693
5203
|
}
|
|
5694
5204
|
) }),
|
|
5695
|
-
/* @__PURE__ */ (0,
|
|
5205
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("circle", { cx: "30", cy: "7.5", r: "3.5", fill: "#444444", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
5696
5206
|
"animate",
|
|
5697
5207
|
{
|
|
5698
5208
|
attributeName: "cy",
|
|
@@ -5705,7 +5215,7 @@ function ChatLoading() {
|
|
|
5705
5215
|
values: "7.5;3.5;7.5"
|
|
5706
5216
|
}
|
|
5707
5217
|
) }),
|
|
5708
|
-
/* @__PURE__ */ (0,
|
|
5218
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("circle", { cx: "52.5", cy: "7.5", r: "3.5", fill: "#444444", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
5709
5219
|
"animate",
|
|
5710
5220
|
{
|
|
5711
5221
|
attributeName: "cy",
|
|
@@ -5724,10 +5234,10 @@ function ChatLoading() {
|
|
|
5724
5234
|
}
|
|
5725
5235
|
|
|
5726
5236
|
// components/layout/action-bar.tsx
|
|
5727
|
-
var
|
|
5728
|
-
var
|
|
5729
|
-
var
|
|
5730
|
-
var
|
|
5237
|
+
var import_lucide_react13 = require("lucide-react");
|
|
5238
|
+
var import_navigation3 = require("next/navigation");
|
|
5239
|
+
var import_react11 = __toESM(require("react"));
|
|
5240
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
5731
5241
|
var colorStyles = {
|
|
5732
5242
|
red: "bg-red-50 hover:bg-red-100 text-red-600",
|
|
5733
5243
|
blue: "bg-blue-50 hover:bg-blue-100 text-blue-600",
|
|
@@ -5741,50 +5251,50 @@ function EloquentActionBar({
|
|
|
5741
5251
|
buttons,
|
|
5742
5252
|
title
|
|
5743
5253
|
}) {
|
|
5744
|
-
const router = (0,
|
|
5745
|
-
const LucideIcons =
|
|
5746
|
-
return /* @__PURE__ */ (0,
|
|
5747
|
-
showBack && /* @__PURE__ */ (0,
|
|
5748
|
-
/* @__PURE__ */ (0,
|
|
5254
|
+
const router = (0, import_navigation3.useRouter)();
|
|
5255
|
+
const LucideIcons = import_lucide_react13.icons;
|
|
5256
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex bg-white border-gray-200 border-b border-x rounded-t-lg items-center", children: [
|
|
5257
|
+
showBack && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
5258
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
5749
5259
|
"button",
|
|
5750
5260
|
{
|
|
5751
5261
|
onClick: () => router.back(),
|
|
5752
5262
|
className: "flex items-center px-3 py-2 hover:bg-gray-100 transition-colors",
|
|
5753
5263
|
children: [
|
|
5754
|
-
/* @__PURE__ */ (0,
|
|
5755
|
-
/* @__PURE__ */ (0,
|
|
5264
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react13.ArrowLeft, { className: "w-5 h-5 mr-2 text-gray-600" }),
|
|
5265
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-gray-600 font-medium", children: "Back" })
|
|
5756
5266
|
]
|
|
5757
5267
|
}
|
|
5758
5268
|
),
|
|
5759
|
-
/* @__PURE__ */ (0,
|
|
5269
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Separator3, { orientation: "vertical", className: "h-full" })
|
|
5760
5270
|
] }),
|
|
5761
|
-
/* @__PURE__ */ (0,
|
|
5271
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "flex items-center", children: buttons.map((button, index) => {
|
|
5762
5272
|
const Icon3 = LucideIcons[button.icon];
|
|
5763
|
-
return /* @__PURE__ */ (0,
|
|
5764
|
-
/* @__PURE__ */ (0,
|
|
5273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react11.default.Fragment, { children: [
|
|
5274
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
5765
5275
|
"button",
|
|
5766
5276
|
{
|
|
5767
5277
|
onClick: button.action,
|
|
5768
5278
|
disabled: button.isLoading,
|
|
5769
5279
|
className: `flex items-center px-4 py-2 transition-colors ${colorStyles[button.color]} ${button.isLoading ? "opacity-70 cursor-not-allowed" : ""}`,
|
|
5770
5280
|
children: [
|
|
5771
|
-
button.isLoading ? /* @__PURE__ */ (0,
|
|
5772
|
-
/* @__PURE__ */ (0,
|
|
5281
|
+
button.isLoading ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react13.Loader2, { className: "w-5 h-5 mr-2 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Icon3, { className: "w-5 h-5 mr-2" }),
|
|
5282
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "font-medium", children: button.label })
|
|
5773
5283
|
]
|
|
5774
5284
|
}
|
|
5775
5285
|
),
|
|
5776
|
-
index < buttons.length - 1 && /* @__PURE__ */ (0,
|
|
5286
|
+
index < buttons.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Separator3, { orientation: "vertical", className: "h-full" })
|
|
5777
5287
|
] }, button.label);
|
|
5778
5288
|
}) }),
|
|
5779
|
-
title && /* @__PURE__ */ (0,
|
|
5289
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-lg", children: title })
|
|
5780
5290
|
] });
|
|
5781
5291
|
}
|
|
5782
5292
|
|
|
5783
5293
|
// components/schema-fields/dropdown-field.tsx
|
|
5784
|
-
var
|
|
5294
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
5785
5295
|
function ColorDot({ color }) {
|
|
5786
5296
|
if (!color) return null;
|
|
5787
|
-
return /* @__PURE__ */ (0,
|
|
5297
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
5788
5298
|
"div",
|
|
5789
5299
|
{
|
|
5790
5300
|
className: "w-3 h-3 rounded-full mr-2 inline-block",
|
|
@@ -5801,25 +5311,25 @@ function DropdownField({ schema, value, onChange }) {
|
|
|
5801
5311
|
const renderSelectedValue = () => {
|
|
5802
5312
|
const selectedOption = options?.find((opt) => opt.value === value);
|
|
5803
5313
|
if (!selectedOption) return null;
|
|
5804
|
-
return /* @__PURE__ */ (0,
|
|
5805
|
-
/* @__PURE__ */ (0,
|
|
5314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center", children: [
|
|
5315
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ColorDot, { color: selectedOption.color }),
|
|
5806
5316
|
selectedOption.label
|
|
5807
5317
|
] });
|
|
5808
5318
|
};
|
|
5809
|
-
return /* @__PURE__ */ (0,
|
|
5319
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
5810
5320
|
Select,
|
|
5811
5321
|
{
|
|
5812
5322
|
value: value ?? "",
|
|
5813
5323
|
onValueChange: onChange,
|
|
5814
5324
|
children: [
|
|
5815
|
-
/* @__PURE__ */ (0,
|
|
5816
|
-
/* @__PURE__ */ (0,
|
|
5325
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SelectTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SelectValue, { children: renderSelectedValue() }) }),
|
|
5326
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SelectContent, { children: options?.map((option) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
5817
5327
|
SelectItem,
|
|
5818
5328
|
{
|
|
5819
5329
|
value: option.value,
|
|
5820
5330
|
className: "flex items-center",
|
|
5821
5331
|
children: [
|
|
5822
|
-
/* @__PURE__ */ (0,
|
|
5332
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ColorDot, { color: option.color }),
|
|
5823
5333
|
option.label
|
|
5824
5334
|
]
|
|
5825
5335
|
},
|
|
@@ -5831,7 +5341,7 @@ function DropdownField({ schema, value, onChange }) {
|
|
|
5831
5341
|
}
|
|
5832
5342
|
|
|
5833
5343
|
// components/schema-fields/string-field.tsx
|
|
5834
|
-
var
|
|
5344
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
5835
5345
|
function StringField({
|
|
5836
5346
|
name,
|
|
5837
5347
|
schema,
|
|
@@ -5863,7 +5373,7 @@ function StringField({
|
|
|
5863
5373
|
return "text";
|
|
5864
5374
|
}
|
|
5865
5375
|
};
|
|
5866
|
-
return /* @__PURE__ */ (0,
|
|
5376
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5867
5377
|
Input,
|
|
5868
5378
|
{
|
|
5869
5379
|
value: value || "",
|
|
@@ -5882,14 +5392,14 @@ function StringField({
|
|
|
5882
5392
|
}
|
|
5883
5393
|
|
|
5884
5394
|
// components/schema-fields/string-multi-line-field.tsx
|
|
5885
|
-
var
|
|
5395
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
5886
5396
|
function StringMultiLineField({
|
|
5887
5397
|
name,
|
|
5888
5398
|
schema,
|
|
5889
5399
|
value,
|
|
5890
5400
|
onChange
|
|
5891
5401
|
}) {
|
|
5892
|
-
return /* @__PURE__ */ (0,
|
|
5402
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
5893
5403
|
Textarea,
|
|
5894
5404
|
{
|
|
5895
5405
|
value: value || "",
|
|
@@ -5902,11 +5412,11 @@ function StringMultiLineField({
|
|
|
5902
5412
|
}
|
|
5903
5413
|
|
|
5904
5414
|
// components/schema-fields/text-field.tsx
|
|
5905
|
-
var
|
|
5906
|
-
var
|
|
5907
|
-
var
|
|
5415
|
+
var import_react12 = require("@remixicon/react");
|
|
5416
|
+
var import_react13 = require("react");
|
|
5417
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
5908
5418
|
function TextField({ schema, value, onChange }) {
|
|
5909
|
-
return /* @__PURE__ */ (0,
|
|
5419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "rounded-lg border bg-background flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
5910
5420
|
Input,
|
|
5911
5421
|
{
|
|
5912
5422
|
value,
|
|
@@ -5917,7 +5427,7 @@ function TextField({ schema, value, onChange }) {
|
|
|
5917
5427
|
}
|
|
5918
5428
|
|
|
5919
5429
|
// components/schema-fields/schema-field.tsx
|
|
5920
|
-
var
|
|
5430
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
5921
5431
|
function getFieldType(schema) {
|
|
5922
5432
|
if (schema.enum) return "dropdown";
|
|
5923
5433
|
if (schema.format === "richtext") return "text";
|
|
@@ -5939,38 +5449,63 @@ function SchemaField(props) {
|
|
|
5939
5449
|
case "email":
|
|
5940
5450
|
case "phone":
|
|
5941
5451
|
case "url":
|
|
5942
|
-
return /* @__PURE__ */ (0,
|
|
5452
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(StringField, { ...props });
|
|
5943
5453
|
case "stringMultiline":
|
|
5944
|
-
return /* @__PURE__ */ (0,
|
|
5454
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(StringMultiLineField, { ...props });
|
|
5945
5455
|
case "text":
|
|
5946
|
-
return /* @__PURE__ */ (0,
|
|
5456
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(TextField, { ...props });
|
|
5947
5457
|
case "dropdown":
|
|
5948
|
-
return /* @__PURE__ */ (0,
|
|
5458
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(DropdownField, { ...props });
|
|
5949
5459
|
default:
|
|
5950
|
-
return /* @__PURE__ */ (0,
|
|
5460
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-red-500", children: [
|
|
5951
5461
|
"Unsupported field type: ",
|
|
5952
5462
|
fieldType
|
|
5953
5463
|
] });
|
|
5954
5464
|
}
|
|
5955
5465
|
};
|
|
5956
|
-
return /* @__PURE__ */ (0,
|
|
5957
|
-
/* @__PURE__ */ (0,
|
|
5466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: cn("space-y-2", getColspanBySchema(schema)), children: [
|
|
5467
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Label, { children: [
|
|
5958
5468
|
label ?? schema.title ?? name,
|
|
5959
|
-
schema.required && /* @__PURE__ */ (0,
|
|
5469
|
+
schema.required && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-red-500", children: "*" })
|
|
5960
5470
|
] }),
|
|
5961
5471
|
renderField(),
|
|
5962
|
-
schema.description && /* @__PURE__ */ (0,
|
|
5472
|
+
schema.description && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "text-sm text-gray-500", children: schema.description })
|
|
5963
5473
|
] });
|
|
5964
5474
|
}
|
|
5965
5475
|
|
|
5476
|
+
// ../docs/dist/index.mjs
|
|
5477
|
+
var import_lucide_react14 = require("lucide-react");
|
|
5478
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
5479
|
+
var getFileIcon2 = (fileName) => {
|
|
5480
|
+
const extensionMatch = fileName.match(/\.([^.]+)$/);
|
|
5481
|
+
const extension = extensionMatch ? extensionMatch[1].toLowerCase() : null;
|
|
5482
|
+
if (!extension) return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react14.File, { className: "w-8 h-8 text-gray-500" });
|
|
5483
|
+
switch (extension) {
|
|
5484
|
+
case "pdf":
|
|
5485
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react14.File, { className: "w-8 h-8 text-red-500" });
|
|
5486
|
+
case "doc":
|
|
5487
|
+
case "docx":
|
|
5488
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react14.FileText, { className: "w-8 h-8 text-blue-500" });
|
|
5489
|
+
case "xls":
|
|
5490
|
+
case "xlsx":
|
|
5491
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react14.FileSpreadsheet, { className: "w-8 h-8 text-green-500" });
|
|
5492
|
+
default:
|
|
5493
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react14.File, { className: "w-8 h-8 text-gray-500" });
|
|
5494
|
+
}
|
|
5495
|
+
};
|
|
5496
|
+
var getFileName2 = (url) => {
|
|
5497
|
+
const fileName = decodeURIComponent(url.split("/").pop() ?? "");
|
|
5498
|
+
const cleanFileName = fileName.replace(/%28(\d+)%29/g, "($1)").replace(/[^\w\s().-]/g, "").replace(/\s+/g, "_").replace(/-\d+(?=\.pdf)/g, "");
|
|
5499
|
+
return cleanFileName;
|
|
5500
|
+
};
|
|
5501
|
+
|
|
5966
5502
|
// components/upload/upload-widget-v2.tsx
|
|
5967
|
-
var
|
|
5968
|
-
var
|
|
5969
|
-
var import_react17 = require("react");
|
|
5503
|
+
var import_lucide_react15 = require("lucide-react");
|
|
5504
|
+
var import_react14 = require("react");
|
|
5970
5505
|
var import_react_dropzone2 = require("react-dropzone");
|
|
5971
5506
|
var import_sonner2 = require("sonner");
|
|
5972
5507
|
var import_upload_actions = require("./upload/upload-actions");
|
|
5973
|
-
var
|
|
5508
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
5974
5509
|
function UploadWidgetV2({
|
|
5975
5510
|
accept,
|
|
5976
5511
|
maxSize,
|
|
@@ -5980,8 +5515,8 @@ function UploadWidgetV2({
|
|
|
5980
5515
|
uploadDestination = "azure",
|
|
5981
5516
|
hideUploadedFiles = false
|
|
5982
5517
|
}) {
|
|
5983
|
-
const [isUploading, setIsUploading] = (0,
|
|
5984
|
-
const [fileUrls, setFileUrls] = (0,
|
|
5518
|
+
const [isUploading, setIsUploading] = (0, import_react14.useState)(false);
|
|
5519
|
+
const [fileUrls, setFileUrls] = (0, import_react14.useState)([]);
|
|
5985
5520
|
const fileMaxSizeMB = maxSize / 1024 / 1024;
|
|
5986
5521
|
const acceptedTypes = accept ? Object.values(accept).flat().join(", ") : "";
|
|
5987
5522
|
const handleUpload = async (files) => {
|
|
@@ -6028,7 +5563,7 @@ function UploadWidgetV2({
|
|
|
6028
5563
|
maxSize,
|
|
6029
5564
|
maxFiles
|
|
6030
5565
|
});
|
|
6031
|
-
return /* @__PURE__ */ (0,
|
|
5566
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
6032
5567
|
"div",
|
|
6033
5568
|
{
|
|
6034
5569
|
...getRootProps(),
|
|
@@ -6037,12 +5572,12 @@ function UploadWidgetV2({
|
|
|
6037
5572
|
className
|
|
6038
5573
|
),
|
|
6039
5574
|
children: [
|
|
6040
|
-
isUploading && /* @__PURE__ */ (0,
|
|
6041
|
-
/* @__PURE__ */ (0,
|
|
6042
|
-
isDragActive ? /* @__PURE__ */ (0,
|
|
6043
|
-
/* @__PURE__ */ (0,
|
|
6044
|
-
/* @__PURE__ */ (0,
|
|
6045
|
-
/* @__PURE__ */ (0,
|
|
5575
|
+
isUploading && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "absolute top-3 right-3", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react15.Loader2, { className: "animate-spin h-6 w-6 text-primary" }) }),
|
|
5576
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("input", { ...getInputProps() }),
|
|
5577
|
+
isDragActive ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { children: "Drop the files here ..." }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { children: [
|
|
5578
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react15.UploadCloud, { className: "mx-auto h-12 w-12 text-gray-400" }),
|
|
5579
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { children: "Drag n drop some files here, or click to select files" }),
|
|
5580
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-sm text-gray-500", children: [
|
|
6046
5581
|
"Only ",
|
|
6047
5582
|
acceptedTypes,
|
|
6048
5583
|
" files up to ",
|
|
@@ -6050,11 +5585,11 @@ function UploadWidgetV2({
|
|
|
6050
5585
|
"MB are accepted"
|
|
6051
5586
|
] })
|
|
6052
5587
|
] }),
|
|
6053
|
-
!hideUploadedFiles && fileUrls.length > 0 && /* @__PURE__ */ (0,
|
|
6054
|
-
const fileName = (
|
|
6055
|
-
return /* @__PURE__ */ (0,
|
|
6056
|
-
/* @__PURE__ */ (0,
|
|
6057
|
-
/* @__PURE__ */ (0,
|
|
5588
|
+
!hideUploadedFiles && fileUrls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "mt-4 border-t border-gray-300 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("ul", { className: "flex flex-wrap gap-2", children: fileUrls.map((url, i) => {
|
|
5589
|
+
const fileName = getFileName2(url);
|
|
5590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("li", { className: "flex items-center space-x-2 text-sm", children: [
|
|
5591
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { children: getFileIcon2(fileName) }),
|
|
5592
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: fileName })
|
|
6058
5593
|
] }, i);
|
|
6059
5594
|
}) }) })
|
|
6060
5595
|
]
|
|
@@ -6085,7 +5620,6 @@ function UploadWidgetV2({
|
|
|
6085
5620
|
DurationInput,
|
|
6086
5621
|
EloquentActionBar,
|
|
6087
5622
|
FilterCombobox,
|
|
6088
|
-
FilterDialog,
|
|
6089
5623
|
Form,
|
|
6090
5624
|
FormCombobox,
|
|
6091
5625
|
FormControl,
|
|
@@ -6100,12 +5634,9 @@ function UploadWidgetV2({
|
|
|
6100
5634
|
Icon,
|
|
6101
5635
|
IconButton,
|
|
6102
5636
|
Input,
|
|
6103
|
-
KnowledgeGraphWordCloud,
|
|
6104
|
-
LeftNav,
|
|
6105
5637
|
MarkdownRenderer,
|
|
6106
5638
|
MultiSelect,
|
|
6107
5639
|
MultiStepProcess,
|
|
6108
|
-
OrgSelector,
|
|
6109
5640
|
PageHeader,
|
|
6110
5641
|
Popover,
|
|
6111
5642
|
ProfileMenu,
|