@mlw-packages/react-components 1.10.1 → 1.10.3
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/index.css +177 -13
- package/dist/index.d.mts +159 -30
- package/dist/index.d.ts +159 -30
- package/dist/index.js +861 -138
- package/dist/index.mjs +852 -141
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import * as React32 from 'react';
|
|
3
|
-
import React32__default, { forwardRef, useState, useEffect, createContext, useMemo, useRef, useCallback,
|
|
3
|
+
import React32__default, { forwardRef, useState, useEffect, createContext, useMemo, useRef, useCallback, useId, useContext, useLayoutEffect } from 'react';
|
|
4
4
|
import { Slot } from '@radix-ui/react-slot';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
6
6
|
import { clsx } from 'clsx';
|
|
@@ -35,7 +35,7 @@ import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
|
35
35
|
import { Drawer } from 'vaul';
|
|
36
36
|
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
37
37
|
import { Prism } from 'react-syntax-highlighter';
|
|
38
|
-
import { format, startOfMonth, endOfMonth, eachDayOfInterval, isToday, isSameDay, differenceInCalendarDays, differenceInMinutes, isPast, startOfDay, eachHourOfInterval, addHours, getHours, getMinutes, areIntervalsOverlapping, startOfWeek, endOfWeek, isSameMonth, addDays, differenceInDays, isBefore, addMinutes, subMonths, subWeeks, addMonths, addWeeks, isWithinInterval, add, max, min } from 'date-fns';
|
|
38
|
+
import { format, startOfMonth, endOfMonth, eachDayOfInterval, isToday, isSameDay, differenceInCalendarDays, differenceInMinutes, isPast, startOfDay, eachHourOfInterval, addHours, getHours, getMinutes, areIntervalsOverlapping, startOfWeek, endOfWeek, isSameMonth, addDays, startOfYear, endOfYear, eachMonthOfInterval, differenceInDays, isBefore, addMinutes, subMonths, subWeeks, subYears, addMonths, addWeeks, addYears, isWithinInterval, add, max, min } from 'date-fns';
|
|
39
39
|
import { ptBR } from 'date-fns/locale';
|
|
40
40
|
import ptBR3 from 'date-fns/locale/pt-BR';
|
|
41
41
|
import { useSensors, useSensor, MouseSensor, TouchSensor, PointerSensor, DndContext, DragOverlay, useDroppable, useDraggable } from '@dnd-kit/core';
|
|
@@ -3646,6 +3646,15 @@ var CardFooterBase = React32.forwardRef(({ className, testid: dataTestId = "card
|
|
|
3646
3646
|
}
|
|
3647
3647
|
));
|
|
3648
3648
|
CardFooterBase.displayName = "CardFooter";
|
|
3649
|
+
var FileTypes = {
|
|
3650
|
+
Image: ["image/*", ".jpeg", ".jpg", ".png", ".gif", ".webp", ".svg"],
|
|
3651
|
+
Document: [".pdf", ".doc", ".docx", ".txt", ".rtf"],
|
|
3652
|
+
Spreadsheet: [".xls", ".xlsx", ".csv"],
|
|
3653
|
+
Presentation: [".ppt", ".pptx"],
|
|
3654
|
+
Video: ["video/*", ".mp4", ".webm", ".mkv", ".avi"],
|
|
3655
|
+
Audio: ["audio/*", ".mp3", ".wav", ".ogg"],
|
|
3656
|
+
All: []
|
|
3657
|
+
};
|
|
3649
3658
|
var formatFileSize = (bytes) => {
|
|
3650
3659
|
if (bytes === 0) return "0 Bytes";
|
|
3651
3660
|
const k = 1024;
|
|
@@ -3712,8 +3721,8 @@ var createImagePreview = (file) => {
|
|
|
3712
3721
|
var FileUploader = React32.forwardRef(
|
|
3713
3722
|
({
|
|
3714
3723
|
className,
|
|
3715
|
-
accept,
|
|
3716
|
-
maxSize,
|
|
3724
|
+
accept = FileTypes.All,
|
|
3725
|
+
maxSize = 10,
|
|
3717
3726
|
maxFiles = 1,
|
|
3718
3727
|
disabled = false,
|
|
3719
3728
|
value = [],
|
|
@@ -3743,8 +3752,9 @@ var FileUploader = React32.forwardRef(
|
|
|
3743
3752
|
};
|
|
3744
3753
|
}, [files]);
|
|
3745
3754
|
const validateFile = (file) => {
|
|
3746
|
-
|
|
3747
|
-
|
|
3755
|
+
const maxSizeBytes = maxSize * 1024 * 1024;
|
|
3756
|
+
if (file.size > maxSizeBytes) {
|
|
3757
|
+
return `Arquivo muito grande. M\xE1ximo: ${maxSize} MB`;
|
|
3748
3758
|
}
|
|
3749
3759
|
if (accept.length > 0) {
|
|
3750
3760
|
const fileExtension = `.${getFileExtension(file.name)}`;
|
|
@@ -3854,22 +3864,32 @@ var FileUploader = React32.forwardRef(
|
|
|
3854
3864
|
}
|
|
3855
3865
|
};
|
|
3856
3866
|
const acceptString = accept.join(",");
|
|
3857
|
-
const
|
|
3867
|
+
const getFormatText = () => {
|
|
3868
|
+
if (accept === FileTypes.All || accept.length === 0)
|
|
3869
|
+
return "Qualquer formato";
|
|
3870
|
+
if (accept === FileTypes.Image) return "Apenas imagens";
|
|
3871
|
+
if (accept === FileTypes.Document) return "Apenas documentos";
|
|
3872
|
+
if (accept === FileTypes.Video) return "Apenas v\xEDdeos";
|
|
3873
|
+
if (accept === FileTypes.Audio) return "Apenas \xE1udio";
|
|
3874
|
+
if (accept === FileTypes.Spreadsheet) return "Apenas planilhas";
|
|
3875
|
+
if (accept === FileTypes.Presentation) return "Apenas apresenta\xE7\xF5es";
|
|
3876
|
+
return "Formatos espec\xEDficos v\xE1lidos";
|
|
3877
|
+
};
|
|
3878
|
+
const defaultSubtext = dropzoneSubtext || `${getFormatText()} (M\xE1x: ${maxSize}MB)`;
|
|
3858
3879
|
return /* @__PURE__ */ jsx("div", { ref, className: cn("w-full", className), ...props, children: /* @__PURE__ */ jsxs(
|
|
3859
3880
|
motion.div,
|
|
3860
3881
|
{
|
|
3861
3882
|
className: cn(
|
|
3862
|
-
"relative flex cursor-pointer flex-col items-center justify-center rounded-xl border-2 border-dashed p-
|
|
3883
|
+
"relative flex cursor-pointer flex-col items-center justify-center rounded-xl border-2 border-dashed p-5 transition-all duration-300 dark:shadow-black/20",
|
|
3863
3884
|
isDragging && "border-primary bg-primary/10 scale-[1.02]",
|
|
3864
3885
|
!isDragging && "border-border hover:border-primary/60 hover:bg-muted/50",
|
|
3865
|
-
disabled && "cursor-not-allowed opacity-50
|
|
3886
|
+
disabled && "cursor-not-allowed opacity-50"
|
|
3866
3887
|
),
|
|
3867
3888
|
onDragEnter: handleDragEnter,
|
|
3868
3889
|
onDragOver: handleDragOver,
|
|
3869
3890
|
onDragLeave: handleDragLeave,
|
|
3870
3891
|
onDrop: handleDrop,
|
|
3871
3892
|
onClick: handleClick,
|
|
3872
|
-
whileHover: !disabled ? { scale: 1.01 } : void 0,
|
|
3873
3893
|
whileTap: !disabled ? { scale: 0.99 } : void 0,
|
|
3874
3894
|
animate: isDragging ? {
|
|
3875
3895
|
borderColor: `hsl(var(--primary))`,
|
|
@@ -3929,7 +3949,7 @@ var FileUploader = React32.forwardRef(
|
|
|
3929
3949
|
/* @__PURE__ */ jsx(
|
|
3930
3950
|
motion.p,
|
|
3931
3951
|
{
|
|
3932
|
-
className: "mb-2 text-
|
|
3952
|
+
className: "mb-2 text-xs font-semibold text-foreground",
|
|
3933
3953
|
initial: animate ? { opacity: 0, y: -10 } : false,
|
|
3934
3954
|
animate: { opacity: 1, y: 0 },
|
|
3935
3955
|
transition: { delay: 0.1 },
|
|
@@ -3939,63 +3959,29 @@ var FileUploader = React32.forwardRef(
|
|
|
3939
3959
|
/* @__PURE__ */ jsx(
|
|
3940
3960
|
motion.p,
|
|
3941
3961
|
{
|
|
3942
|
-
className: "text-
|
|
3962
|
+
className: "text-xs text-muted-foreground",
|
|
3943
3963
|
initial: animate ? { opacity: 0, y: -10 } : false,
|
|
3944
3964
|
animate: { opacity: 1, y: 0 },
|
|
3945
3965
|
transition: { delay: 0.2 },
|
|
3946
3966
|
children: defaultSubtext
|
|
3947
3967
|
}
|
|
3948
3968
|
),
|
|
3949
|
-
/* @__PURE__ */ jsx(AnimatePresence, { children: files.length > 0 && /* @__PURE__ */ jsxs(
|
|
3950
|
-
motion.div,
|
|
3951
|
-
{
|
|
3952
|
-
initial: { opacity: 0, scale: 0.8, y: 10 },
|
|
3953
|
-
animate: {
|
|
3954
|
-
opacity: 1,
|
|
3955
|
-
scale: 1,
|
|
3956
|
-
y: 0,
|
|
3957
|
-
backgroundColor: `hsl(var(--primary) / 0.1)`,
|
|
3958
|
-
borderColor: `hsl(var(--primary) / 0.2)`
|
|
3959
|
-
},
|
|
3960
|
-
exit: { opacity: 0, scale: 0.8, y: 10 },
|
|
3961
|
-
className: cn(
|
|
3962
|
-
"mt-4 flex items-center gap-2 rounded-full border px-4 py-2 backdrop-blur-sm bg-primary/20 border-primary/30 shadow-lg"
|
|
3963
|
-
),
|
|
3964
|
-
transition: { duration: 0.3 },
|
|
3965
|
-
children: [
|
|
3966
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-4 text-primary flex items-center justify-center", children: /* @__PURE__ */ jsx(CheckIcon, { size: 16, className: "text-emerald-500" }) }),
|
|
3967
|
-
/* @__PURE__ */ jsxs(
|
|
3968
|
-
motion.span,
|
|
3969
|
-
{
|
|
3970
|
-
className: "text-sm font-semibold text-primary",
|
|
3971
|
-
animate: { color: `hsl(var(--primary))` },
|
|
3972
|
-
transition: { duration: 0.3 },
|
|
3973
|
-
children: [
|
|
3974
|
-
files.length,
|
|
3975
|
-
" ",
|
|
3976
|
-
files.length === 1 ? "arquivo selecionado" : "arquivos selecionados"
|
|
3977
|
-
]
|
|
3978
|
-
}
|
|
3979
|
-
)
|
|
3980
|
-
]
|
|
3981
|
-
}
|
|
3982
|
-
) }),
|
|
3983
3969
|
showPreview && files.length > 0 && /* @__PURE__ */ jsx(
|
|
3984
3970
|
motion.div,
|
|
3985
3971
|
{
|
|
3986
|
-
className: "
|
|
3972
|
+
className: "py-2 w-full",
|
|
3987
3973
|
initial: animate ? { opacity: 0, y: 10 } : false,
|
|
3988
3974
|
animate: { opacity: 1, y: 0 },
|
|
3989
3975
|
transition: { delay: 0.3 },
|
|
3990
3976
|
children: /* @__PURE__ */ jsxs("div", { children: [
|
|
3991
|
-
/* @__PURE__ */ jsxs("h4", { className: "
|
|
3977
|
+
/* @__PURE__ */ jsxs("h4", { className: "text-xs font-medium text-muted-foreground pb-0.5", children: [
|
|
3992
3978
|
"Arquivos selecionados (",
|
|
3993
3979
|
files.length,
|
|
3994
3980
|
"/",
|
|
3995
3981
|
maxFiles,
|
|
3996
3982
|
")"
|
|
3997
3983
|
] }),
|
|
3998
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-2 overflow-y-auto max-h-
|
|
3984
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-2 overflow-y-auto max-h-36", children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "popLayout", children: files.map((file, index) => /* @__PURE__ */ jsxs(
|
|
3999
3985
|
motion.div,
|
|
4000
3986
|
{
|
|
4001
3987
|
layout: true,
|
|
@@ -4011,24 +3997,18 @@ var FileUploader = React32.forwardRef(
|
|
|
4011
3997
|
layout: { duration: 0.2 }
|
|
4012
3998
|
},
|
|
4013
3999
|
className: cn(
|
|
4014
|
-
"flex items-center gap-3 rounded-md border p-
|
|
4000
|
+
"group flex items-center gap-3 rounded-md border p-2 transition-all duration-300",
|
|
4015
4001
|
file.error ? "border-destructive/50 bg-destructive/5" : "border-border bg-background/80 hover:bg-muted/50 hover:shadow-md hover:shadow-primary/10 hover:border-primary/30"
|
|
4016
4002
|
),
|
|
4017
4003
|
children: [
|
|
4018
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-md bg-muted overflow-hidden", children: file.preview ? (
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
}
|
|
4027
|
-
)
|
|
4028
|
-
) : (
|
|
4029
|
-
// Ícone baseado no tipo de arquivo
|
|
4030
|
-
getFileTypeIcon(file)
|
|
4031
|
-
) }),
|
|
4004
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-md bg-muted overflow-hidden", children: file.preview ? /* @__PURE__ */ jsx(
|
|
4005
|
+
"img",
|
|
4006
|
+
{
|
|
4007
|
+
src: file.preview,
|
|
4008
|
+
alt: file.name,
|
|
4009
|
+
className: "h-full w-full object-cover rounded-md"
|
|
4010
|
+
}
|
|
4011
|
+
) : getFileTypeIcon(file) }),
|
|
4032
4012
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
4033
4013
|
/* @__PURE__ */ jsx(
|
|
4034
4014
|
"p",
|
|
@@ -4058,14 +4038,14 @@ var FileUploader = React32.forwardRef(
|
|
|
4058
4038
|
/* @__PURE__ */ jsx(
|
|
4059
4039
|
ButtonBase,
|
|
4060
4040
|
{
|
|
4061
|
-
variant: "destructive",
|
|
4062
4041
|
size: "icon",
|
|
4042
|
+
variant: "ghost",
|
|
4063
4043
|
onClick: (e) => {
|
|
4064
4044
|
e?.stopPropagation();
|
|
4065
4045
|
handleRemoveFile(file.id);
|
|
4066
4046
|
},
|
|
4067
|
-
className: "",
|
|
4068
|
-
children: /* @__PURE__ */ jsx(XIcon, { size: 12 })
|
|
4047
|
+
className: "opacity-0 transition-opacity group-hover:opacity-100",
|
|
4048
|
+
children: /* @__PURE__ */ jsx(XIcon, { size: 12, className: "text-red-500" })
|
|
4069
4049
|
}
|
|
4070
4050
|
)
|
|
4071
4051
|
]
|
|
@@ -9698,7 +9678,7 @@ function DayViewAgenda({
|
|
|
9698
9678
|
const { currentTimePosition, currentTimeVisible } = useCurrentTimeIndicatorAgenda(currentDate, "day");
|
|
9699
9679
|
return /* @__PURE__ */ jsxs("div", { className: "contents", "data-slot": "day-view", children: [
|
|
9700
9680
|
showAllDaySection && /* @__PURE__ */ jsx("div", { className: "border-border/70 border-t bg-muted/50", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[3rem_1fr] sm:grid-cols-[4rem_1fr]", children: [
|
|
9701
|
-
/* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx("span", { className: "
|
|
9681
|
+
/* @__PURE__ */ jsx("div", { className: "relative border-border/70 border-r flex items-center justify-center p-1", children: /* @__PURE__ */ jsx("span", { className: "text-center text-[10px] text-muted-foreground/70 sm:text-xs", children: "Todo Dia" }) }),
|
|
9702
9682
|
/* @__PURE__ */ jsx("div", { className: "relative border-border/70 border-r p-1 last:border-r-0", children: allDayEvents.map((event) => {
|
|
9703
9683
|
const eventStart = getEventStartDate(event);
|
|
9704
9684
|
const eventEnd = getEventEndDate(event) ?? getEventStartDate(event);
|
|
@@ -10086,7 +10066,8 @@ function EventAgenda({
|
|
|
10086
10066
|
className,
|
|
10087
10067
|
initialView = "month",
|
|
10088
10068
|
initialDate,
|
|
10089
|
-
onClick
|
|
10069
|
+
onClick,
|
|
10070
|
+
showYearView = false
|
|
10090
10071
|
}) {
|
|
10091
10072
|
const [currentDate, setCurrentDate] = useState(
|
|
10092
10073
|
initialDate && new Date(initialDate) || /* @__PURE__ */ new Date()
|
|
@@ -10099,6 +10080,7 @@ function EventAgenda({
|
|
|
10099
10080
|
else if (view === "day") setCurrentDate((d) => addDays(d, -1));
|
|
10100
10081
|
else if (view === "agenda")
|
|
10101
10082
|
setCurrentDate((d) => addDays(d, -AgendaDaysToShowAgenda));
|
|
10083
|
+
else if (view === "year") setCurrentDate((d) => subYears(d, 1));
|
|
10102
10084
|
};
|
|
10103
10085
|
const goNext = () => {
|
|
10104
10086
|
if (view === "month") setCurrentDate((d) => addMonths(d, 1));
|
|
@@ -10106,6 +10088,7 @@ function EventAgenda({
|
|
|
10106
10088
|
else if (view === "day") setCurrentDate((d) => addDays(d, 1));
|
|
10107
10089
|
else if (view === "agenda")
|
|
10108
10090
|
setCurrentDate((d) => addDays(d, AgendaDaysToShowAgenda));
|
|
10091
|
+
else if (view === "year") setCurrentDate((d) => addYears(d, 1));
|
|
10109
10092
|
};
|
|
10110
10093
|
const handleEventSelect = (event, e) => {
|
|
10111
10094
|
try {
|
|
@@ -10143,7 +10126,8 @@ function EventAgenda({
|
|
|
10143
10126
|
month: { full: "M\xEAs", short: "M" },
|
|
10144
10127
|
week: { full: "Semana", short: "S" },
|
|
10145
10128
|
day: { full: "Dia", short: "D" },
|
|
10146
|
-
agenda: { full: "Agenda", short: "A" }
|
|
10129
|
+
agenda: { full: "Agenda", short: "A" },
|
|
10130
|
+
year: { full: "Ano", short: "An" }
|
|
10147
10131
|
};
|
|
10148
10132
|
const entry = labels[v] || { full: v, short: v };
|
|
10149
10133
|
return condensed ? entry.short : entry.full;
|
|
@@ -10167,12 +10151,18 @@ function EventAgenda({
|
|
|
10167
10151
|
const start = currentDate;
|
|
10168
10152
|
return capitalize2(format(start, "MMMM yyyy", { locale: ptBR }));
|
|
10169
10153
|
}
|
|
10154
|
+
if (view === "year") {
|
|
10155
|
+
return format(currentDate, "yyyy");
|
|
10156
|
+
}
|
|
10170
10157
|
return capitalize2(format(currentDate, "MMMM yyyy", { locale: ptBR }));
|
|
10171
10158
|
}, [currentDate, view]);
|
|
10172
|
-
const
|
|
10173
|
-
|
|
10174
|
-
|
|
10175
|
-
|
|
10159
|
+
const availableViews = showYearView ? ["year", "month", "week", "day", "agenda"] : ["month", "week", "day", "agenda"];
|
|
10160
|
+
const selectItems = availableViews.map(
|
|
10161
|
+
(v) => ({
|
|
10162
|
+
label: viewLabel(v),
|
|
10163
|
+
value: v
|
|
10164
|
+
})
|
|
10165
|
+
);
|
|
10176
10166
|
return /* @__PURE__ */ jsxs(
|
|
10177
10167
|
"div",
|
|
10178
10168
|
{
|
|
@@ -10227,46 +10217,51 @@ function EventAgenda({
|
|
|
10227
10217
|
}
|
|
10228
10218
|
) })
|
|
10229
10219
|
] }),
|
|
10230
|
-
/* @__PURE__ */ jsxs(
|
|
10231
|
-
"
|
|
10232
|
-
|
|
10233
|
-
|
|
10234
|
-
|
|
10235
|
-
|
|
10236
|
-
|
|
10237
|
-
|
|
10238
|
-
|
|
10239
|
-
|
|
10240
|
-
|
|
10241
|
-
|
|
10242
|
-
|
|
10243
|
-
|
|
10244
|
-
|
|
10245
|
-
|
|
10246
|
-
|
|
10247
|
-
|
|
10248
|
-
|
|
10249
|
-
|
|
10250
|
-
|
|
10251
|
-
|
|
10252
|
-
|
|
10253
|
-
|
|
10254
|
-
|
|
10255
|
-
|
|
10256
|
-
|
|
10257
|
-
|
|
10258
|
-
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
|
|
10262
|
-
|
|
10263
|
-
|
|
10264
|
-
|
|
10265
|
-
|
|
10266
|
-
|
|
10267
|
-
|
|
10268
|
-
|
|
10269
|
-
|
|
10220
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col transition-all duration-200 ease-in-out", children: [
|
|
10221
|
+
view === "month" && /* @__PURE__ */ jsx(
|
|
10222
|
+
MonthViewAgenda,
|
|
10223
|
+
{
|
|
10224
|
+
currentDate,
|
|
10225
|
+
events,
|
|
10226
|
+
onEventSelect: handleEventSelect
|
|
10227
|
+
}
|
|
10228
|
+
),
|
|
10229
|
+
view === "week" && /* @__PURE__ */ jsx(
|
|
10230
|
+
WeekViewAgenda,
|
|
10231
|
+
{
|
|
10232
|
+
currentDate,
|
|
10233
|
+
events,
|
|
10234
|
+
onEventSelect: handleEventSelect
|
|
10235
|
+
}
|
|
10236
|
+
),
|
|
10237
|
+
view === "day" && /* @__PURE__ */ jsx(
|
|
10238
|
+
DayViewAgenda,
|
|
10239
|
+
{
|
|
10240
|
+
currentDate,
|
|
10241
|
+
events,
|
|
10242
|
+
onEventSelect: handleEventSelect
|
|
10243
|
+
}
|
|
10244
|
+
),
|
|
10245
|
+
view === "agenda" && /* @__PURE__ */ jsx(
|
|
10246
|
+
Agenda,
|
|
10247
|
+
{
|
|
10248
|
+
currentDate,
|
|
10249
|
+
events,
|
|
10250
|
+
onEventSelect: handleEventSelect
|
|
10251
|
+
}
|
|
10252
|
+
),
|
|
10253
|
+
view === "year" && /* @__PURE__ */ jsx(
|
|
10254
|
+
YearViewAgenda,
|
|
10255
|
+
{
|
|
10256
|
+
currentDate,
|
|
10257
|
+
events,
|
|
10258
|
+
onMonthSelect: (monthDate) => {
|
|
10259
|
+
setCurrentDate(monthDate);
|
|
10260
|
+
setView("month");
|
|
10261
|
+
}
|
|
10262
|
+
}
|
|
10263
|
+
)
|
|
10264
|
+
] })
|
|
10270
10265
|
] }),
|
|
10271
10266
|
selectedEvent && React32__default.isValidElement(onClick) ? React32__default.cloneElement(onClick, {
|
|
10272
10267
|
event: selectedEvent,
|
|
@@ -10341,11 +10336,13 @@ function useEventVisibilityAgenda({
|
|
|
10341
10336
|
const getVisibleEventCount = useMemo(() => {
|
|
10342
10337
|
return (totalEvents) => {
|
|
10343
10338
|
if (!contentHeight) return totalEvents;
|
|
10344
|
-
const
|
|
10345
|
-
|
|
10339
|
+
const availableHeight = contentHeight + eventGap + 4;
|
|
10340
|
+
const slotHeight = eventHeight + eventGap;
|
|
10341
|
+
const maxSlots = Math.floor(availableHeight / slotHeight);
|
|
10342
|
+
if (totalEvents <= maxSlots) {
|
|
10346
10343
|
return totalEvents;
|
|
10347
10344
|
}
|
|
10348
|
-
return
|
|
10345
|
+
return maxSlots > 0 ? maxSlots - 1 : 0;
|
|
10349
10346
|
};
|
|
10350
10347
|
}, [contentHeight, eventHeight, eventGap]);
|
|
10351
10348
|
return {
|
|
@@ -10662,7 +10659,7 @@ function MonthViewAgenda({
|
|
|
10662
10659
|
"div",
|
|
10663
10660
|
{
|
|
10664
10661
|
ref: isReferenceCell ? contentRef : null,
|
|
10665
|
-
className: "min-h-[calc((var(--event-height)+var(--event-gap))*2)] sm:min-h-[calc((var(--event-height)+var(--event-gap))*3)] lg:min-h-[calc((var(--event-height)+var(--event-gap))*4)] px-1 py-
|
|
10662
|
+
className: "flex-1 min-h-[calc((var(--event-height)+var(--event-gap))*2)] sm:min-h-[calc((var(--event-height)+var(--event-gap))*3)] lg:min-h-[calc((var(--event-height)+var(--event-gap))*4)] px-1 py-1",
|
|
10666
10663
|
children: [
|
|
10667
10664
|
Array.from({ length: dayMultiDayRowCount }).map(
|
|
10668
10665
|
(_, si) => /* @__PURE__ */ jsx(
|
|
@@ -10723,7 +10720,7 @@ function MonthViewAgenda({
|
|
|
10723
10720
|
type: "button",
|
|
10724
10721
|
onClick: (e) => e.stopPropagation(),
|
|
10725
10722
|
"aria-label": `Mostrar mais ${remainingCount} eventos`,
|
|
10726
|
-
className: "mt-
|
|
10723
|
+
className: "mt-auto flex h-[var(--event-height)] w-full select-none items-center overflow-hidden px-2 text-left text-[10px] text-muted-foreground outline-none rounded-md transition hover:bg-muted/60 hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 sm:text-xs",
|
|
10727
10724
|
children: /* @__PURE__ */ jsxs("span", { className: "font-semibold", children: [
|
|
10728
10725
|
"+ ",
|
|
10729
10726
|
remainingCount,
|
|
@@ -11066,7 +11063,7 @@ function WeekViewAgenda({
|
|
|
11066
11063
|
return /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col overflow-hidden", "data-slot": "week-view", children: [
|
|
11067
11064
|
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ jsxs("div", { className: "min-w-[600px] sm:min-w-full flex flex-col h-full", children: [
|
|
11068
11065
|
/* @__PURE__ */ jsxs("div", { className: "sticky top-0 z-30 grid grid-cols-8 border-border/70 border-b bg-background", children: [
|
|
11069
|
-
/* @__PURE__ */ jsx("div", { className: "py-2 text-center text-muted-foreground/70 text-[10px] sm:text-sm", children: /* @__PURE__ */ jsx("span", { className: "
|
|
11066
|
+
/* @__PURE__ */ jsx("div", { className: "py-2 text-center text-muted-foreground/70 text-[10px] sm:text-sm", children: /* @__PURE__ */ jsx("span", { className: "", children: "Hor\xE1rios" }) }),
|
|
11070
11067
|
days.map((day) => /* @__PURE__ */ jsxs(
|
|
11071
11068
|
"div",
|
|
11072
11069
|
{
|
|
@@ -11079,7 +11076,7 @@ function WeekViewAgenda({
|
|
|
11079
11076
|
format(day, "d", { locale: ptBR })
|
|
11080
11077
|
] }),
|
|
11081
11078
|
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline md:hidden", children: format(day, "EEE d", { locale: ptBR }) }),
|
|
11082
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
11079
|
+
/* @__PURE__ */ jsx("span", { className: "hidden md:inline", children: format(day, "EEE dd", { locale: ptBR }) })
|
|
11083
11080
|
]
|
|
11084
11081
|
},
|
|
11085
11082
|
day.toString()
|
|
@@ -11087,7 +11084,7 @@ function WeekViewAgenda({
|
|
|
11087
11084
|
] }),
|
|
11088
11085
|
showAllDaySection && /* @__PURE__ */ jsxs("div", { className: "border-border/70 border-b bg-muted/50", children: [
|
|
11089
11086
|
trueAllDayEvents.length > 0 && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-8", children: [
|
|
11090
|
-
/* @__PURE__ */ jsx("div", { className: "relative border-border/70 border-r", children: /* @__PURE__ */ jsx("span", { className: "
|
|
11087
|
+
/* @__PURE__ */ jsx("div", { className: "relative border-border/70 border-r flex items-center justify-center p-1", children: /* @__PURE__ */ jsx("span", { className: "text-center text-[10px] text-muted-foreground/70 sm:text-xs", children: "Todo dia" }) }),
|
|
11091
11088
|
/* @__PURE__ */ jsxs(
|
|
11092
11089
|
"div",
|
|
11093
11090
|
{
|
|
@@ -11167,7 +11164,7 @@ function WeekViewAgenda({
|
|
|
11167
11164
|
trueAllDayEvents.length > 0 && "border-t border-border/40"
|
|
11168
11165
|
),
|
|
11169
11166
|
children: [
|
|
11170
|
-
/* @__PURE__ */ jsx("div", { className: "relative border-border/70 border-r", children: /* @__PURE__ */ jsx("span", { className: "
|
|
11167
|
+
/* @__PURE__ */ jsx("div", { className: "relative border-border/70 border-r flex items-center justify-center p-1", children: /* @__PURE__ */ jsx("span", { className: "text-center text-[10px] text-muted-foreground/70 sm:text-xs", children: "Evento" }) }),
|
|
11171
11168
|
/* @__PURE__ */ jsxs(
|
|
11172
11169
|
"div",
|
|
11173
11170
|
{
|
|
@@ -11386,6 +11383,86 @@ function WeekViewAgenda({
|
|
|
11386
11383
|
)
|
|
11387
11384
|
] });
|
|
11388
11385
|
}
|
|
11386
|
+
function YearViewAgenda({
|
|
11387
|
+
currentDate,
|
|
11388
|
+
events,
|
|
11389
|
+
onMonthSelect
|
|
11390
|
+
}) {
|
|
11391
|
+
const start = startOfYear(currentDate);
|
|
11392
|
+
const end = endOfYear(currentDate);
|
|
11393
|
+
const months = useMemo(() => {
|
|
11394
|
+
return eachMonthOfInterval({ start, end });
|
|
11395
|
+
}, [start, end]);
|
|
11396
|
+
const eventDates = useMemo(() => {
|
|
11397
|
+
return new Set(
|
|
11398
|
+
events.map((e) => getEventStartDate(e)).filter((d) => !!d).map((d) => format(d, "yyyy-MM-dd"))
|
|
11399
|
+
);
|
|
11400
|
+
}, [events]);
|
|
11401
|
+
return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-1 overflow-y-auto max-h-[calc(100vh-200px)] lg:max-h-[750px] scrollbar-thin scrollbar-thumb-muted-foreground/20 scrollbar-track-transparent", children: months.map((month) => /* @__PURE__ */ jsxs(
|
|
11402
|
+
"div",
|
|
11403
|
+
{
|
|
11404
|
+
className: "flex flex-col p-4 rounded-lg border border-border/70 bg-card hover:bg-muted/5 transition-colors cursor-pointer group",
|
|
11405
|
+
onClick: () => onMonthSelect(month),
|
|
11406
|
+
children: [
|
|
11407
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
|
|
11408
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm capitalize text-foreground group-hover:text-primary transition-colors", children: format(month, "MMMM", { locale: ptBR }) }),
|
|
11409
|
+
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-muted-foreground/50 uppercase tracking-wider opacity-0 group-hover:opacity-100 transition-opacity", children: "Detalhes" })
|
|
11410
|
+
] }),
|
|
11411
|
+
/* @__PURE__ */ jsx(MonthMiniGrid, { month, eventDates })
|
|
11412
|
+
]
|
|
11413
|
+
},
|
|
11414
|
+
month.toString()
|
|
11415
|
+
)) });
|
|
11416
|
+
}
|
|
11417
|
+
function MonthMiniGrid({
|
|
11418
|
+
month,
|
|
11419
|
+
eventDates
|
|
11420
|
+
}) {
|
|
11421
|
+
const days = useMemo(() => {
|
|
11422
|
+
const monthStart = startOfMonth(month);
|
|
11423
|
+
const calendarStart = startOfWeek(monthStart, { weekStartsOn: 0 });
|
|
11424
|
+
const daysArr = [];
|
|
11425
|
+
const curr = new Date(calendarStart);
|
|
11426
|
+
for (let i = 0; i < 42; i++) {
|
|
11427
|
+
daysArr.push(new Date(curr));
|
|
11428
|
+
curr.setDate(curr.getDate() + 1);
|
|
11429
|
+
}
|
|
11430
|
+
return daysArr;
|
|
11431
|
+
}, [month]);
|
|
11432
|
+
const weekdays = ["D", "S", "T", "Q", "Q", "S", "S"];
|
|
11433
|
+
return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-7 gap-y-1 text-[11px]", children: [
|
|
11434
|
+
weekdays.map((wd, i) => /* @__PURE__ */ jsx(
|
|
11435
|
+
"div",
|
|
11436
|
+
{
|
|
11437
|
+
className: "text-center font-medium text-muted-foreground/70 py-1",
|
|
11438
|
+
children: wd
|
|
11439
|
+
},
|
|
11440
|
+
`${wd}-${i}`
|
|
11441
|
+
)),
|
|
11442
|
+
days.map((day) => {
|
|
11443
|
+
const isCurrentMonth = day.getMonth() === month.getMonth();
|
|
11444
|
+
const dateStr = format(day, "yyyy-MM-dd");
|
|
11445
|
+
const hasEvent = eventDates.has(dateStr);
|
|
11446
|
+
const isDayToday = isToday(day);
|
|
11447
|
+
return /* @__PURE__ */ jsxs(
|
|
11448
|
+
"div",
|
|
11449
|
+
{
|
|
11450
|
+
className: cn(
|
|
11451
|
+
"relative flex items-center justify-center p-1 rounded-sm aspect-square transition-colors",
|
|
11452
|
+
!isCurrentMonth && "opacity-0 pointer-events-none",
|
|
11453
|
+
isDayToday && "bg-blue-500 text-white font-semibold rounded-lg",
|
|
11454
|
+
isCurrentMonth && !isDayToday && "hover:bg-muted/50 text-foreground"
|
|
11455
|
+
),
|
|
11456
|
+
children: [
|
|
11457
|
+
isCurrentMonth && format(day, "d"),
|
|
11458
|
+
isCurrentMonth && hasEvent && !isDayToday && /* @__PURE__ */ jsx("div", { className: "absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full bg-blue-500" })
|
|
11459
|
+
]
|
|
11460
|
+
},
|
|
11461
|
+
day.toString()
|
|
11462
|
+
);
|
|
11463
|
+
})
|
|
11464
|
+
] });
|
|
11465
|
+
}
|
|
11389
11466
|
var colorBannerMap = {
|
|
11390
11467
|
sky: "from-sky-400 via-sky-500 to-cyan-500",
|
|
11391
11468
|
amber: "from-amber-400 via-amber-500 to-orange-400",
|
|
@@ -14759,8 +14836,8 @@ var createValueFormatter = (customFormatter, formatBR) => {
|
|
|
14759
14836
|
});
|
|
14760
14837
|
const prefixFormats = ["R$", "$", "\u20AC", "\xA3"];
|
|
14761
14838
|
const suffixFormats = ["%", "kg", "km", "m", "L", "un", "t", "h", "min", "s"];
|
|
14762
|
-
const getFormattedValue = (baseValue,
|
|
14763
|
-
const trimmedFormat =
|
|
14839
|
+
const getFormattedValue = (baseValue, format21) => {
|
|
14840
|
+
const trimmedFormat = format21.trim();
|
|
14764
14841
|
if (prefixFormats.includes(trimmedFormat)) {
|
|
14765
14842
|
return `${trimmedFormat} ${baseValue}`;
|
|
14766
14843
|
}
|
|
@@ -14785,8 +14862,8 @@ var createValueFormatter = (customFormatter, formatBR) => {
|
|
|
14785
14862
|
num = Number.isNaN(parsed) ? NaN : parsed;
|
|
14786
14863
|
}
|
|
14787
14864
|
const baseFormatted = formatBR && !Number.isNaN(num) ? nf.format(num) : String(formattedValue ?? value ?? "");
|
|
14788
|
-
const
|
|
14789
|
-
return
|
|
14865
|
+
const format21 = propsDataKey && formatterMap[propsDataKey] ? formatterMap[propsDataKey] : "";
|
|
14866
|
+
return format21 ? getFormattedValue(baseFormatted, format21) : baseFormatted;
|
|
14790
14867
|
};
|
|
14791
14868
|
}
|
|
14792
14869
|
if (typeof customFormatter === "function") {
|
|
@@ -16438,8 +16515,578 @@ var SystemTooltip = ({
|
|
|
16438
16515
|
) });
|
|
16439
16516
|
};
|
|
16440
16517
|
var SystemTooltip_default = SystemTooltip;
|
|
16518
|
+
var useIsTruncated = (ref) => {
|
|
16519
|
+
const [truncated, setTruncated] = useState(false);
|
|
16520
|
+
useEffect(() => {
|
|
16521
|
+
const el = ref.current;
|
|
16522
|
+
if (!el) return;
|
|
16523
|
+
const check = () => setTruncated(el.scrollWidth > el.offsetWidth);
|
|
16524
|
+
check();
|
|
16525
|
+
const ro = new ResizeObserver(check);
|
|
16526
|
+
ro.observe(el);
|
|
16527
|
+
return () => ro.disconnect();
|
|
16528
|
+
}, [ref]);
|
|
16529
|
+
return truncated;
|
|
16530
|
+
};
|
|
16531
|
+
var NameTooltip = ({
|
|
16532
|
+
name,
|
|
16533
|
+
description
|
|
16534
|
+
}) => {
|
|
16535
|
+
const nameRef = useRef(null);
|
|
16536
|
+
const descRef = useRef(null);
|
|
16537
|
+
const isNameTruncated = useIsTruncated(nameRef);
|
|
16538
|
+
const isDescTruncated = useIsTruncated(descRef);
|
|
16539
|
+
const showTooltip = isNameTruncated || isDescTruncated;
|
|
16540
|
+
return /* @__PURE__ */ jsx(TooltipProviderBase, { children: /* @__PURE__ */ jsxs(TooltipBase, { children: [
|
|
16541
|
+
/* @__PURE__ */ jsx(TooltipTriggerBase, { asChild: true, children: /* @__PURE__ */ jsxs("div", { className: "cursor-default", children: [
|
|
16542
|
+
/* @__PURE__ */ jsx(
|
|
16543
|
+
"h3",
|
|
16544
|
+
{
|
|
16545
|
+
ref: nameRef,
|
|
16546
|
+
className: "text-xl font-bold text-foreground tracking-tight truncate",
|
|
16547
|
+
children: name
|
|
16548
|
+
}
|
|
16549
|
+
),
|
|
16550
|
+
description && /* @__PURE__ */ jsx(
|
|
16551
|
+
"p",
|
|
16552
|
+
{
|
|
16553
|
+
ref: descRef,
|
|
16554
|
+
className: "text-xs text-foreground/70 truncate mt-0.5",
|
|
16555
|
+
children: description
|
|
16556
|
+
}
|
|
16557
|
+
)
|
|
16558
|
+
] }) }),
|
|
16559
|
+
showTooltip && /* @__PURE__ */ jsxs(TooltipContentBase, { sideOffset: 8, className: "z-[10001]", children: [
|
|
16560
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold", children: name }),
|
|
16561
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-xs text-foreground/70 mt-0.5", children: description })
|
|
16562
|
+
] })
|
|
16563
|
+
] }) });
|
|
16564
|
+
};
|
|
16565
|
+
var SystemNode = ({ label }) => {
|
|
16566
|
+
const truncated = label.length > 9 ? label.substring(0, 9) + "\u2026" : label;
|
|
16567
|
+
const needsTooltip = label.length > 9;
|
|
16568
|
+
const circle = /* @__PURE__ */ jsx("div", { className: "w-[76px] h-[76px] rounded-full bg-primary flex items-center justify-center shrink-0 z-10 cursor-default", children: /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold text-primary-foreground text-center px-2 leading-tight select-none", children: truncated }) });
|
|
16569
|
+
if (!needsTooltip) return circle;
|
|
16570
|
+
return /* @__PURE__ */ jsx(TooltipProviderBase, { children: /* @__PURE__ */ jsxs(TooltipBase, { children: [
|
|
16571
|
+
/* @__PURE__ */ jsx(TooltipTriggerBase, { asChild: true, children: circle }),
|
|
16572
|
+
/* @__PURE__ */ jsx(TooltipContentBase, { sideOffset: 8, className: "z-[10001]", children: label })
|
|
16573
|
+
] }) });
|
|
16574
|
+
};
|
|
16575
|
+
var Beam = ({ isInput, containerRef, leftRef, rightRef }) => {
|
|
16576
|
+
const gradientId = useId();
|
|
16577
|
+
const [pathD, setPathD] = useState("");
|
|
16578
|
+
const [svgSize, setSvgSize] = useState({ w: 0, h: 0 });
|
|
16579
|
+
useEffect(() => {
|
|
16580
|
+
let rafId;
|
|
16581
|
+
const update = () => {
|
|
16582
|
+
const container = containerRef.current;
|
|
16583
|
+
const left = leftRef.current;
|
|
16584
|
+
const right = rightRef.current;
|
|
16585
|
+
if (!container || !left || !right) return;
|
|
16586
|
+
const cr = container.getBoundingClientRect();
|
|
16587
|
+
const lr = left.getBoundingClientRect();
|
|
16588
|
+
const rr = right.getBoundingClientRect();
|
|
16589
|
+
const cx1 = lr.left - cr.left + lr.width / 2;
|
|
16590
|
+
const cy1 = lr.top - cr.top + lr.height / 2;
|
|
16591
|
+
const cx2 = rr.left - cr.left + rr.width / 2;
|
|
16592
|
+
const cy2 = rr.top - cr.top + rr.height / 2;
|
|
16593
|
+
const dx = cx2 - cx1, dy = cy2 - cy1;
|
|
16594
|
+
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
16595
|
+
if (dist === 0) return;
|
|
16596
|
+
const ux = dx / dist, uy = dy / dist;
|
|
16597
|
+
const r1 = lr.width / 2;
|
|
16598
|
+
const r2 = rr.width / 2;
|
|
16599
|
+
setSvgSize({ w: cr.width, h: cr.height });
|
|
16600
|
+
setPathD(
|
|
16601
|
+
`M ${cx1 + ux * r1},${cy1 + uy * r1} L ${cx2 - ux * r2},${cy2 - uy * r2}`
|
|
16602
|
+
);
|
|
16603
|
+
};
|
|
16604
|
+
const schedule = () => {
|
|
16605
|
+
cancelAnimationFrame(rafId);
|
|
16606
|
+
rafId = requestAnimationFrame(update);
|
|
16607
|
+
};
|
|
16608
|
+
requestAnimationFrame(() => requestAnimationFrame(update));
|
|
16609
|
+
schedule();
|
|
16610
|
+
const ro = new ResizeObserver(schedule);
|
|
16611
|
+
if (containerRef.current) ro.observe(containerRef.current);
|
|
16612
|
+
if (leftRef.current) ro.observe(leftRef.current);
|
|
16613
|
+
if (rightRef.current) ro.observe(rightRef.current);
|
|
16614
|
+
const mo = new MutationObserver(schedule);
|
|
16615
|
+
mo.observe(document.documentElement, {
|
|
16616
|
+
attributes: true,
|
|
16617
|
+
attributeFilter: ["class", "style"]
|
|
16618
|
+
});
|
|
16619
|
+
mo.observe(document.body, {
|
|
16620
|
+
attributes: true,
|
|
16621
|
+
attributeFilter: ["class", "style"]
|
|
16622
|
+
});
|
|
16623
|
+
return () => {
|
|
16624
|
+
cancelAnimationFrame(rafId);
|
|
16625
|
+
ro.disconnect();
|
|
16626
|
+
mo.disconnect();
|
|
16627
|
+
};
|
|
16628
|
+
}, [containerRef, leftRef, rightRef]);
|
|
16629
|
+
const animX1 = isInput ? ["90%", "-10%"] : ["10%", "110%"];
|
|
16630
|
+
const animX2 = isInput ? ["100%", "0%"] : ["0%", "100%"];
|
|
16631
|
+
if (!pathD) return null;
|
|
16632
|
+
return /* @__PURE__ */ jsxs(
|
|
16633
|
+
"svg",
|
|
16634
|
+
{
|
|
16635
|
+
className: "pointer-events-none absolute left-0 top-0",
|
|
16636
|
+
width: svgSize.w,
|
|
16637
|
+
height: svgSize.h,
|
|
16638
|
+
fill: "none",
|
|
16639
|
+
children: [
|
|
16640
|
+
/* @__PURE__ */ jsx(
|
|
16641
|
+
"path",
|
|
16642
|
+
{
|
|
16643
|
+
d: pathD,
|
|
16644
|
+
className: "stroke-primary",
|
|
16645
|
+
strokeWidth: 2,
|
|
16646
|
+
strokeOpacity: 0.2,
|
|
16647
|
+
strokeLinecap: "round"
|
|
16648
|
+
}
|
|
16649
|
+
),
|
|
16650
|
+
/* @__PURE__ */ jsx(
|
|
16651
|
+
motion.path,
|
|
16652
|
+
{
|
|
16653
|
+
d: pathD,
|
|
16654
|
+
stroke: `url(#${gradientId})`,
|
|
16655
|
+
strokeWidth: 2,
|
|
16656
|
+
strokeLinecap: "round",
|
|
16657
|
+
initial: { strokeOpacity: 0 },
|
|
16658
|
+
animate: { strokeOpacity: 1 },
|
|
16659
|
+
transition: { duration: 1 }
|
|
16660
|
+
}
|
|
16661
|
+
),
|
|
16662
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
|
|
16663
|
+
motion.linearGradient,
|
|
16664
|
+
{
|
|
16665
|
+
id: gradientId,
|
|
16666
|
+
gradientUnits: "userSpaceOnUse",
|
|
16667
|
+
initial: { x1: "0%", x2: "0%", y1: "0%", y2: "0%" },
|
|
16668
|
+
animate: {
|
|
16669
|
+
x1: animX1,
|
|
16670
|
+
x2: animX2,
|
|
16671
|
+
y1: ["0%", "0%"],
|
|
16672
|
+
y2: ["0%", "0%"]
|
|
16673
|
+
},
|
|
16674
|
+
transition: {
|
|
16675
|
+
duration: 4,
|
|
16676
|
+
ease: [0.16, 1, 0.3, 1],
|
|
16677
|
+
repeat: Infinity,
|
|
16678
|
+
repeatDelay: 0
|
|
16679
|
+
},
|
|
16680
|
+
children: [
|
|
16681
|
+
/* @__PURE__ */ jsx("stop", { stopColor: "hsl(var(--primary))", stopOpacity: "0" }),
|
|
16682
|
+
/* @__PURE__ */ jsx("stop", { stopColor: "hsl(var(--primary))" }),
|
|
16683
|
+
/* @__PURE__ */ jsx("stop", { offset: "32.5%", stopColor: "hsl(var(--primary))" }),
|
|
16684
|
+
/* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "hsl(var(--primary))", stopOpacity: "0" })
|
|
16685
|
+
]
|
|
16686
|
+
}
|
|
16687
|
+
) })
|
|
16688
|
+
]
|
|
16689
|
+
}
|
|
16690
|
+
);
|
|
16691
|
+
};
|
|
16692
|
+
var SystemsDiagram = ({ isInput, currentSystem, externalSystem }) => {
|
|
16693
|
+
const containerRef = useRef(null);
|
|
16694
|
+
const leftRef = useRef(null);
|
|
16695
|
+
const rightRef = useRef(null);
|
|
16696
|
+
return /* @__PURE__ */ jsxs(
|
|
16697
|
+
"div",
|
|
16698
|
+
{
|
|
16699
|
+
ref: containerRef,
|
|
16700
|
+
className: "relative flex items-center justify-between py-1 px-3",
|
|
16701
|
+
children: [
|
|
16702
|
+
/* @__PURE__ */ jsx("div", { ref: leftRef, children: /* @__PURE__ */ jsx(SystemNode, { label: isInput ? externalSystem : currentSystem }) }),
|
|
16703
|
+
/* @__PURE__ */ jsx("div", { ref: rightRef, children: /* @__PURE__ */ jsx(SystemNode, { label: isInput ? currentSystem : externalSystem }) }),
|
|
16704
|
+
/* @__PURE__ */ jsx(
|
|
16705
|
+
Beam,
|
|
16706
|
+
{
|
|
16707
|
+
isInput,
|
|
16708
|
+
containerRef,
|
|
16709
|
+
leftRef,
|
|
16710
|
+
rightRef
|
|
16711
|
+
}
|
|
16712
|
+
)
|
|
16713
|
+
]
|
|
16714
|
+
}
|
|
16715
|
+
);
|
|
16716
|
+
};
|
|
16717
|
+
var CopyData = ({ value }) => {
|
|
16718
|
+
const [copied, setCopied] = useState(false);
|
|
16719
|
+
const handleCopy = useCallback(() => {
|
|
16720
|
+
navigator.clipboard.writeText(value).then(() => {
|
|
16721
|
+
setCopied(true);
|
|
16722
|
+
setTimeout(() => setCopied(false), 1500);
|
|
16723
|
+
});
|
|
16724
|
+
}, [value]);
|
|
16725
|
+
return /* @__PURE__ */ jsx(TooltipProviderBase, { children: /* @__PURE__ */ jsxs(TooltipBase, { children: [
|
|
16726
|
+
/* @__PURE__ */ jsx(TooltipTriggerBase, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
16727
|
+
"button",
|
|
16728
|
+
{
|
|
16729
|
+
onClick: handleCopy,
|
|
16730
|
+
className: "shrink-0 p-0.5 rounded transition-colors text-muted-foreground/40 hover:text-foreground hover:bg-muted",
|
|
16731
|
+
style: { cursor: "pointer" },
|
|
16732
|
+
children: copied ? /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
|
|
16733
|
+
"path",
|
|
16734
|
+
{
|
|
16735
|
+
d: "M3 8l3.5 3.5L13 4.5",
|
|
16736
|
+
stroke: "currentColor",
|
|
16737
|
+
strokeWidth: "2",
|
|
16738
|
+
strokeLinecap: "round",
|
|
16739
|
+
strokeLinejoin: "round"
|
|
16740
|
+
}
|
|
16741
|
+
) }) : /* @__PURE__ */ jsxs("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", children: [
|
|
16742
|
+
/* @__PURE__ */ jsx(
|
|
16743
|
+
"rect",
|
|
16744
|
+
{
|
|
16745
|
+
x: "5",
|
|
16746
|
+
y: "5",
|
|
16747
|
+
width: "8",
|
|
16748
|
+
height: "9",
|
|
16749
|
+
rx: "1.5",
|
|
16750
|
+
stroke: "currentColor",
|
|
16751
|
+
strokeWidth: "1.5"
|
|
16752
|
+
}
|
|
16753
|
+
),
|
|
16754
|
+
/* @__PURE__ */ jsx(
|
|
16755
|
+
"path",
|
|
16756
|
+
{
|
|
16757
|
+
d: "M3 11V3.5A1.5 1.5 0 0 1 4.5 2H11",
|
|
16758
|
+
stroke: "currentColor",
|
|
16759
|
+
strokeWidth: "1.5",
|
|
16760
|
+
strokeLinecap: "round"
|
|
16761
|
+
}
|
|
16762
|
+
)
|
|
16763
|
+
] })
|
|
16764
|
+
}
|
|
16765
|
+
) }),
|
|
16766
|
+
/* @__PURE__ */ jsx(TooltipContentBase, { sideOffset: 6, className: "z-[10001]", children: copied ? "Copiado!" : "Copiar" })
|
|
16767
|
+
] }) });
|
|
16768
|
+
};
|
|
16769
|
+
var propertyLabels = {
|
|
16770
|
+
Nome: "Nome",
|
|
16771
|
+
tipo: "Tipo",
|
|
16772
|
+
Tipo: "Tipo",
|
|
16773
|
+
Protocolos: "Protocolos",
|
|
16774
|
+
Ambiente: "Ambiente",
|
|
16775
|
+
Setor: "Setor",
|
|
16776
|
+
Contato: "Contato",
|
|
16777
|
+
Sustentacao: "Sustenta\xE7\xE3o",
|
|
16778
|
+
Destino: "Destino",
|
|
16779
|
+
Origem: "Origem"
|
|
16780
|
+
};
|
|
16781
|
+
var IntegrationCard = ({ title, details }) => {
|
|
16782
|
+
const titleRef = useRef(null);
|
|
16783
|
+
const isTitleTruncated = useIsTruncated(titleRef);
|
|
16784
|
+
const blackList = ["id", "elementId", "identity"];
|
|
16785
|
+
const entries = details ? Object.entries(details).filter(
|
|
16786
|
+
([key, value]) => value !== void 0 && value !== null && value !== "" && !blackList.includes(key)
|
|
16787
|
+
) : [];
|
|
16788
|
+
return /* @__PURE__ */ jsxs("div", { className: "rounded-sm border border-border/40 bg-muted/20 overflow-hidden", children: [
|
|
16789
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2 border-b border-border/30", children: [
|
|
16790
|
+
/* @__PURE__ */ jsx(TooltipProviderBase, { children: /* @__PURE__ */ jsxs(TooltipBase, { children: [
|
|
16791
|
+
/* @__PURE__ */ jsx(TooltipTriggerBase, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
16792
|
+
"span",
|
|
16793
|
+
{
|
|
16794
|
+
ref: titleRef,
|
|
16795
|
+
className: "text-sm font-bold text-foreground truncate flex-1 cursor-default",
|
|
16796
|
+
children: title
|
|
16797
|
+
}
|
|
16798
|
+
) }),
|
|
16799
|
+
isTitleTruncated && /* @__PURE__ */ jsx(TooltipContentBase, { sideOffset: 6, className: "z-[10001]", children: title })
|
|
16800
|
+
] }) }),
|
|
16801
|
+
entries.length > 0 && /* @__PURE__ */ jsx(
|
|
16802
|
+
CopyData,
|
|
16803
|
+
{
|
|
16804
|
+
value: entries.map(([k, v]) => `${propertyLabels[k] || k}: ${String(v)}`).join("\n")
|
|
16805
|
+
}
|
|
16806
|
+
)
|
|
16807
|
+
] }),
|
|
16808
|
+
entries.length > 0 && /* @__PURE__ */ jsx("div", { className: "divide-y divide-border/20", children: entries.map(([key, value]) => {
|
|
16809
|
+
const label = propertyLabels[key] || key;
|
|
16810
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-1.5", children: [
|
|
16811
|
+
/* @__PURE__ */ jsxs("span", { className: "text-xs font-semibold text-muted-foreground shrink-0 w-[40%] sm:w-[38%]", children: [
|
|
16812
|
+
label,
|
|
16813
|
+
":"
|
|
16814
|
+
] }),
|
|
16815
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-foreground break-all flex-1", children: String(value) })
|
|
16816
|
+
] }, key);
|
|
16817
|
+
}) })
|
|
16818
|
+
] });
|
|
16819
|
+
};
|
|
16820
|
+
var TooltipBodyComponent = ({ data, isLoading, connections, isInput, externalSystem }) => /* @__PURE__ */ jsxs("div", { className: "px-3 py-3 space-y-3 overflow-y-auto flex-1 [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20 [&::-webkit-scrollbar-thumb]:rounded-full hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/40 transition-colors", children: [
|
|
16821
|
+
isLoading ? /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
|
|
16822
|
+
/* @__PURE__ */ jsx(SkeletonBase, { className: "h-6 w-3/4" }),
|
|
16823
|
+
/* @__PURE__ */ jsx(SkeletonBase, { className: "h-3.5 w-1/2" })
|
|
16824
|
+
] }) : /* @__PURE__ */ jsx(NameTooltip, { name: data.name, description: data.description }),
|
|
16825
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-border/20" }),
|
|
16826
|
+
isLoading ? /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
16827
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1", children: [
|
|
16828
|
+
/* @__PURE__ */ jsx(SkeletonBase, { className: "w-[76px] h-[76px] rounded-full" }),
|
|
16829
|
+
/* @__PURE__ */ jsx(SkeletonBase, { className: "w-[76px] h-[76px] rounded-full" })
|
|
16830
|
+
] }),
|
|
16831
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-border/20" }),
|
|
16832
|
+
[1, 2].map((i) => /* @__PURE__ */ jsxs(
|
|
16833
|
+
"div",
|
|
16834
|
+
{
|
|
16835
|
+
className: "rounded-lg border border-border/20 overflow-hidden",
|
|
16836
|
+
children: [
|
|
16837
|
+
/* @__PURE__ */ jsx(SkeletonBase, { className: "h-8 w-full" }),
|
|
16838
|
+
[1, 2, 3].map((j) => /* @__PURE__ */ jsx(SkeletonBase, { className: "h-7 w-full mt-px" }, j))
|
|
16839
|
+
]
|
|
16840
|
+
},
|
|
16841
|
+
i
|
|
16842
|
+
))
|
|
16843
|
+
] }) : connections.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground text-center py-4", children: "Nenhuma conex\xE3o encontrada" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
16844
|
+
/* @__PURE__ */ jsx(
|
|
16845
|
+
SystemsDiagram,
|
|
16846
|
+
{
|
|
16847
|
+
isInput,
|
|
16848
|
+
currentSystem: data.name,
|
|
16849
|
+
externalSystem
|
|
16850
|
+
}
|
|
16851
|
+
),
|
|
16852
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-border/20" }),
|
|
16853
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-", children: /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold text-muted-foreground uppercase", children: isInput ? "Informa\xE7\xF5es de Entrada" : "Informa\xE7\xF5es de Sa\xEDda" }) }),
|
|
16854
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-2", children: connections.map((conn) => /* @__PURE__ */ jsx(
|
|
16855
|
+
IntegrationCard,
|
|
16856
|
+
{
|
|
16857
|
+
title: conn.name,
|
|
16858
|
+
details: conn.integration
|
|
16859
|
+
},
|
|
16860
|
+
conn.id
|
|
16861
|
+
)) })
|
|
16862
|
+
] })
|
|
16863
|
+
] });
|
|
16864
|
+
var TooltipBody = React32__default.memo(TooltipBodyComponent);
|
|
16865
|
+
var tooltipVariants3 = {
|
|
16866
|
+
hidden: {
|
|
16867
|
+
opacity: 0,
|
|
16868
|
+
scale: 0.96,
|
|
16869
|
+
transition: { type: "spring", stiffness: 400, damping: 28 }
|
|
16870
|
+
},
|
|
16871
|
+
visible: {
|
|
16872
|
+
opacity: 1,
|
|
16873
|
+
scale: 1,
|
|
16874
|
+
transition: { type: "spring", stiffness: 300, damping: 28 }
|
|
16875
|
+
},
|
|
16876
|
+
exit: {
|
|
16877
|
+
opacity: 0,
|
|
16878
|
+
scale: 0.96,
|
|
16879
|
+
transition: { type: "spring", stiffness: 400, damping: 28 }
|
|
16880
|
+
}
|
|
16881
|
+
};
|
|
16882
|
+
var IntegrationTooltip = ({
|
|
16883
|
+
id,
|
|
16884
|
+
data,
|
|
16885
|
+
position,
|
|
16886
|
+
title = "Conex\xF5es",
|
|
16887
|
+
isLoading = false,
|
|
16888
|
+
systemName,
|
|
16889
|
+
onMouseDown,
|
|
16890
|
+
onClose,
|
|
16891
|
+
onPositionChange
|
|
16892
|
+
}) => {
|
|
16893
|
+
const isMobile = useIsMobile();
|
|
16894
|
+
const [localPos, setLocalPos] = useState(position);
|
|
16895
|
+
const [dragging, setDragging] = useState(false);
|
|
16896
|
+
const offsetRef = useRef({ x: 0, y: 0 });
|
|
16897
|
+
const lastMouse = useRef({ x: 0, y: 0 });
|
|
16898
|
+
useEffect(() => setLocalPos(position), [position]);
|
|
16899
|
+
useEffect(() => {
|
|
16900
|
+
let rafId = null;
|
|
16901
|
+
const handleMouseMove = (e) => {
|
|
16902
|
+
if (!dragging) return;
|
|
16903
|
+
lastMouse.current = { x: e.clientX, y: e.clientY };
|
|
16904
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
16905
|
+
rafId = requestAnimationFrame(() => {
|
|
16906
|
+
const newLeft = lastMouse.current.x - offsetRef.current.x;
|
|
16907
|
+
const newTop = lastMouse.current.y - offsetRef.current.y;
|
|
16908
|
+
const p = {
|
|
16909
|
+
top: Math.max(0, Math.min(newTop, window.innerHeight - 200)),
|
|
16910
|
+
left: Math.max(0, Math.min(newLeft, window.innerWidth - 320))
|
|
16911
|
+
};
|
|
16912
|
+
setLocalPos(p);
|
|
16913
|
+
onPositionChange?.(id, p);
|
|
16914
|
+
});
|
|
16915
|
+
};
|
|
16916
|
+
const handleMouseUp = () => {
|
|
16917
|
+
if (dragging) {
|
|
16918
|
+
setDragging(false);
|
|
16919
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
16920
|
+
}
|
|
16921
|
+
};
|
|
16922
|
+
if (dragging) {
|
|
16923
|
+
document.addEventListener("mousemove", handleMouseMove, {
|
|
16924
|
+
passive: true
|
|
16925
|
+
});
|
|
16926
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
16927
|
+
document.body.style.cursor = "grabbing";
|
|
16928
|
+
document.body.style.userSelect = "none";
|
|
16929
|
+
}
|
|
16930
|
+
return () => {
|
|
16931
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
16932
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
16933
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
16934
|
+
document.body.style.cursor = "";
|
|
16935
|
+
document.body.style.userSelect = "";
|
|
16936
|
+
};
|
|
16937
|
+
}, [dragging, id, onPositionChange]);
|
|
16938
|
+
const handleMouseDownLocal = useCallback(
|
|
16939
|
+
(e) => {
|
|
16940
|
+
e.preventDefault();
|
|
16941
|
+
e.stopPropagation();
|
|
16942
|
+
const rect = e.currentTarget.closest(".fixed")?.getBoundingClientRect();
|
|
16943
|
+
if (!rect) return;
|
|
16944
|
+
offsetRef.current = { x: e.clientX - rect.left, y: e.clientY - rect.top };
|
|
16945
|
+
setDragging(true);
|
|
16946
|
+
onMouseDown?.(id, e);
|
|
16947
|
+
},
|
|
16948
|
+
[id, onMouseDown]
|
|
16949
|
+
);
|
|
16950
|
+
const handleTouchStartLocal = useCallback(
|
|
16951
|
+
(e) => {
|
|
16952
|
+
e.stopPropagation();
|
|
16953
|
+
const touch = e.touches[0];
|
|
16954
|
+
if (!touch) return;
|
|
16955
|
+
const rect = e.currentTarget.closest(".fixed")?.getBoundingClientRect();
|
|
16956
|
+
if (!rect) return;
|
|
16957
|
+
offsetRef.current = {
|
|
16958
|
+
x: touch.clientX - rect.left,
|
|
16959
|
+
y: touch.clientY - rect.top
|
|
16960
|
+
};
|
|
16961
|
+
setDragging(true);
|
|
16962
|
+
onMouseDown?.(id, e);
|
|
16963
|
+
},
|
|
16964
|
+
[id, onMouseDown]
|
|
16965
|
+
);
|
|
16966
|
+
const inputConnections = useMemo(
|
|
16967
|
+
() => data.connections.filter((c) => c.type === "entrada"),
|
|
16968
|
+
[data.connections]
|
|
16969
|
+
);
|
|
16970
|
+
const outputConnections = useMemo(
|
|
16971
|
+
() => data.connections.filter((c) => c.type === "saida"),
|
|
16972
|
+
[data.connections]
|
|
16973
|
+
);
|
|
16974
|
+
const isInput = inputConnections.length > 0;
|
|
16975
|
+
const connections = isInput ? inputConnections : outputConnections;
|
|
16976
|
+
const externalSystem = systemName ?? connections[0]?.name ?? "Sistema";
|
|
16977
|
+
const header = /* @__PURE__ */ jsxs(
|
|
16978
|
+
"div",
|
|
16979
|
+
{
|
|
16980
|
+
className: "flex items-center justify-between py-1 border-b border-border/10 bg-muted/30 shrink-0",
|
|
16981
|
+
onMouseDown: handleMouseDownLocal,
|
|
16982
|
+
onTouchStart: handleTouchStartLocal,
|
|
16983
|
+
style: {
|
|
16984
|
+
touchAction: "none",
|
|
16985
|
+
cursor: dragging ? "grabbing" : "grab"
|
|
16986
|
+
},
|
|
16987
|
+
children: [
|
|
16988
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3", children: [
|
|
16989
|
+
/* @__PURE__ */ jsx(DotsSixVerticalIcon, { size: 16, className: "text-primary" }),
|
|
16990
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: title })
|
|
16991
|
+
] }),
|
|
16992
|
+
/* @__PURE__ */ jsx(
|
|
16993
|
+
ButtonBase,
|
|
16994
|
+
{
|
|
16995
|
+
variant: "ghost",
|
|
16996
|
+
size: "icon",
|
|
16997
|
+
onClick: () => onClose(id),
|
|
16998
|
+
className: "text-muted-foreground hover:text-destructive transition-colors hover:bg-destructive/10 mr-1",
|
|
16999
|
+
style: { cursor: "pointer" },
|
|
17000
|
+
children: /* @__PURE__ */ jsx(XIcon, { size: 16 })
|
|
17001
|
+
}
|
|
17002
|
+
)
|
|
17003
|
+
]
|
|
17004
|
+
}
|
|
17005
|
+
);
|
|
17006
|
+
const bodyProps = { data, isLoading, connections, isInput, externalSystem };
|
|
17007
|
+
if (isMobile) {
|
|
17008
|
+
return /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
17009
|
+
/* @__PURE__ */ jsx(
|
|
17010
|
+
motion.div,
|
|
17011
|
+
{
|
|
17012
|
+
className: "fixed inset-0 z-[9999] bg-black/40 backdrop-blur-[2px]",
|
|
17013
|
+
initial: { opacity: 0 },
|
|
17014
|
+
animate: { opacity: 1 },
|
|
17015
|
+
exit: { opacity: 0 },
|
|
17016
|
+
onClick: () => onClose(id)
|
|
17017
|
+
},
|
|
17018
|
+
`overlay-${id}`
|
|
17019
|
+
),
|
|
17020
|
+
/* @__PURE__ */ jsxs(
|
|
17021
|
+
motion.div,
|
|
17022
|
+
{
|
|
17023
|
+
className: "fixed bottom-0 left-0 right-0 z-[10000] bg-card border-t border-border/50 rounded-t-2xl shadow-2xl flex flex-col",
|
|
17024
|
+
style: { maxHeight: "85dvh" },
|
|
17025
|
+
initial: { y: "100%" },
|
|
17026
|
+
animate: { y: 0 },
|
|
17027
|
+
exit: { y: "100%" },
|
|
17028
|
+
transition: { type: "spring", stiffness: 320, damping: 36 },
|
|
17029
|
+
onClick: (e) => e.stopPropagation(),
|
|
17030
|
+
children: [
|
|
17031
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-center pt-2.5 pb-1 shrink-0", children: /* @__PURE__ */ jsx("div", { className: "w-10 h-1 rounded-full bg-border" }) }),
|
|
17032
|
+
header,
|
|
17033
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-y-auto flex-1 pb-[env(safe-area-inset-bottom)]", children: /* @__PURE__ */ jsx(TooltipBody, { ...bodyProps }) })
|
|
17034
|
+
]
|
|
17035
|
+
},
|
|
17036
|
+
`sheet-${id}`
|
|
17037
|
+
)
|
|
17038
|
+
] }) });
|
|
17039
|
+
}
|
|
17040
|
+
return /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsxs(
|
|
17041
|
+
motion.div,
|
|
17042
|
+
{
|
|
17043
|
+
className: "fixed bg-card/95 backdrop-blur-md border border-border/50 rounded-lg shadow-2xl z-[10000] w-[calc(100vw-32px)] max-w-sm sm:w-80 overflow-hidden flex flex-col",
|
|
17044
|
+
variants: tooltipVariants3,
|
|
17045
|
+
initial: "hidden",
|
|
17046
|
+
animate: "visible",
|
|
17047
|
+
exit: "exit",
|
|
17048
|
+
style: { top: localPos.top, left: localPos.left },
|
|
17049
|
+
onClick: (e) => e.stopPropagation(),
|
|
17050
|
+
children: [
|
|
17051
|
+
header,
|
|
17052
|
+
/* @__PURE__ */ jsx("div", { className: "max-h-[60vh] sm:max-h-[520px] overflow-hidden flex flex-col", children: /* @__PURE__ */ jsx(TooltipBody, { ...bodyProps }) })
|
|
17053
|
+
]
|
|
17054
|
+
},
|
|
17055
|
+
id
|
|
17056
|
+
) });
|
|
17057
|
+
};
|
|
17058
|
+
var IntegrationTooltip_default = IntegrationTooltip;
|
|
17059
|
+
|
|
17060
|
+
// src/components/ui/charts/components/tooltips/utils/integrationTooltipUtils.ts
|
|
17061
|
+
function processIntegrationData(integrations, targetSystemName) {
|
|
17062
|
+
const connections = [];
|
|
17063
|
+
integrations.forEach((integration) => {
|
|
17064
|
+
const origemNome = integration.origem.properties.nome;
|
|
17065
|
+
const destinoNome = integration.destino.properties.nome;
|
|
17066
|
+
if (origemNome === targetSystemName) {
|
|
17067
|
+
connections.push({
|
|
17068
|
+
id: integration.r.elementId,
|
|
17069
|
+
name: destinoNome,
|
|
17070
|
+
type: "saida",
|
|
17071
|
+
integration: integration.r.properties
|
|
17072
|
+
});
|
|
17073
|
+
}
|
|
17074
|
+
if (destinoNome === targetSystemName) {
|
|
17075
|
+
connections.push({
|
|
17076
|
+
id: integration.r.elementId,
|
|
17077
|
+
name: origemNome,
|
|
17078
|
+
type: "entrada",
|
|
17079
|
+
integration: integration.r.properties
|
|
17080
|
+
});
|
|
17081
|
+
}
|
|
17082
|
+
});
|
|
17083
|
+
return {
|
|
17084
|
+
name: targetSystemName,
|
|
17085
|
+
connections
|
|
17086
|
+
};
|
|
17087
|
+
}
|
|
16441
17088
|
|
|
16442
|
-
// src/components/ui/charts/components/tooltips/systemTooltipUtils.ts
|
|
17089
|
+
// src/components/ui/charts/components/tooltips/utils/systemTooltipUtils.ts
|
|
16443
17090
|
function processNeo4jData(integrations, targetSystemName) {
|
|
16444
17091
|
const connections = [];
|
|
16445
17092
|
integrations.forEach((integration) => {
|
|
@@ -19604,6 +20251,44 @@ var Lens = ({
|
|
|
19604
20251
|
}
|
|
19605
20252
|
);
|
|
19606
20253
|
};
|
|
20254
|
+
var carouselThemes = {
|
|
20255
|
+
malwee: {
|
|
20256
|
+
foreground: "text-[#222222]",
|
|
20257
|
+
primary: "bg-[#0b5430]",
|
|
20258
|
+
primaryForeground: "text-white",
|
|
20259
|
+
muted: "bg-[#f0eacc]",
|
|
20260
|
+
mutedForeground: "text-[#6b665c]",
|
|
20261
|
+
border: "!border-[#0b5430]",
|
|
20262
|
+
font: "font-[family-name:var(--font-playfair)]"
|
|
20263
|
+
},
|
|
20264
|
+
enfim: {
|
|
20265
|
+
foreground: "text-black",
|
|
20266
|
+
primary: "bg-black",
|
|
20267
|
+
primaryForeground: "text-white",
|
|
20268
|
+
muted: "bg-gray-100",
|
|
20269
|
+
mutedForeground: "text-gray-600",
|
|
20270
|
+
border: "!border-black",
|
|
20271
|
+
font: "font-[family-name:var(--font-libre-caslon)]"
|
|
20272
|
+
},
|
|
20273
|
+
carinhoso: {
|
|
20274
|
+
foreground: "text-[#222222]",
|
|
20275
|
+
primary: "bg-[#d9d0c0]",
|
|
20276
|
+
primaryForeground: "text-[#222222]",
|
|
20277
|
+
muted: "bg-[#e2ddd6]",
|
|
20278
|
+
mutedForeground: "text-[#5e5b56]",
|
|
20279
|
+
border: "!border-[#d9d0c0]",
|
|
20280
|
+
font: "font-[family-name:var(--font-josefin)]"
|
|
20281
|
+
},
|
|
20282
|
+
"malwee-kids": {
|
|
20283
|
+
foreground: "text-[#005bbf]",
|
|
20284
|
+
primary: "bg-[#005bbf]",
|
|
20285
|
+
primaryForeground: "text-white",
|
|
20286
|
+
muted: "bg-[#fcf5c2]",
|
|
20287
|
+
mutedForeground: "text-[#004a9e]",
|
|
20288
|
+
border: "!border-[#005bbf]",
|
|
20289
|
+
font: "font-[family-name:var(--font-poppins)]"
|
|
20290
|
+
}
|
|
20291
|
+
};
|
|
19607
20292
|
function CarouselSkeleton({ className }) {
|
|
19608
20293
|
return /* @__PURE__ */ jsx("div", { className: cn("w-full h-full lg:p-10 sm:p-4 p-2", className), children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 h-full", children: /* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-lg h-full", children: /* @__PURE__ */ jsxs("div", { className: "w-full h-full min-h-[300px] bg-muted rounded-lg overflow-hidden relative", children: [
|
|
19609
20294
|
/* @__PURE__ */ jsx(
|
|
@@ -19683,7 +20368,8 @@ function CarouselBase({
|
|
|
19683
20368
|
autoPlayInterval = 3e3,
|
|
19684
20369
|
zoomEffect = null,
|
|
19685
20370
|
download = false,
|
|
19686
|
-
isLoading = false
|
|
20371
|
+
isLoading = false,
|
|
20372
|
+
onChange
|
|
19687
20373
|
}) {
|
|
19688
20374
|
const isMobile = useIsMobile();
|
|
19689
20375
|
const [index, setIndex] = useState(0);
|
|
@@ -19694,7 +20380,9 @@ function CarouselBase({
|
|
|
19694
20380
|
useEffect(() => {
|
|
19695
20381
|
if (!emblaApi) return;
|
|
19696
20382
|
const onSelect = () => {
|
|
19697
|
-
|
|
20383
|
+
const newIndex = emblaApi.selectedScrollSnap();
|
|
20384
|
+
setIndex(newIndex);
|
|
20385
|
+
onChange?.(newIndex);
|
|
19698
20386
|
};
|
|
19699
20387
|
emblaApi.on("select", onSelect);
|
|
19700
20388
|
emblaApi.on("reInit", onSelect);
|
|
@@ -19702,7 +20390,10 @@ function CarouselBase({
|
|
|
19702
20390
|
emblaApi.off("select", onSelect);
|
|
19703
20391
|
emblaApi.off("reInit", onSelect);
|
|
19704
20392
|
};
|
|
19705
|
-
}, [emblaApi]);
|
|
20393
|
+
}, [emblaApi, onChange]);
|
|
20394
|
+
const currentItem = items[index];
|
|
20395
|
+
const themeKey = currentItem?.theme || "malwee";
|
|
20396
|
+
const currentTheme = carouselThemes[themeKey] || carouselThemes.malwee;
|
|
19706
20397
|
useEffect(() => {
|
|
19707
20398
|
if (!autoPlay || items.length <= 1 || !emblaApi) return;
|
|
19708
20399
|
const interval = setInterval(() => {
|
|
@@ -19714,14 +20405,14 @@ function CarouselBase({
|
|
|
19714
20405
|
if (isDownloading) return;
|
|
19715
20406
|
setIsDownloading(true);
|
|
19716
20407
|
setDownloadSuccess(false);
|
|
19717
|
-
const
|
|
20408
|
+
const currentItem2 = items[index];
|
|
19718
20409
|
try {
|
|
19719
|
-
const response = await fetch(
|
|
20410
|
+
const response = await fetch(currentItem2.url);
|
|
19720
20411
|
const blob = await response.blob();
|
|
19721
20412
|
const url = window.URL.createObjectURL(blob);
|
|
19722
20413
|
const link = document.createElement("a");
|
|
19723
20414
|
link.href = url;
|
|
19724
|
-
link.download =
|
|
20415
|
+
link.download = currentItem2.title || "image";
|
|
19725
20416
|
document.body.appendChild(link);
|
|
19726
20417
|
link.click();
|
|
19727
20418
|
document.body.removeChild(link);
|
|
@@ -19755,7 +20446,12 @@ function CarouselBase({
|
|
|
19755
20446
|
initial: { opacity: 0 },
|
|
19756
20447
|
animate: { opacity: 1 },
|
|
19757
20448
|
transition: { duration: 0.4 },
|
|
19758
|
-
className: cn(
|
|
20449
|
+
className: cn(
|
|
20450
|
+
"w-full lg:p-10 sm:p-4 p-2 transition-colors duration-500",
|
|
20451
|
+
currentTheme.foreground,
|
|
20452
|
+
currentTheme.font,
|
|
20453
|
+
className
|
|
20454
|
+
),
|
|
19759
20455
|
style: { width },
|
|
19760
20456
|
children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 h-full", children: /* @__PURE__ */ jsxs("div", { className: cn("relative h-full", containerClassName), children: [
|
|
19761
20457
|
/* @__PURE__ */ jsx(
|
|
@@ -19890,8 +20586,12 @@ function CarouselBase({
|
|
|
19890
20586
|
onPointerDown: (e) => e.stopPropagation(),
|
|
19891
20587
|
onTouchStart: (e) => e.stopPropagation(),
|
|
19892
20588
|
onMouseDown: (e) => e.stopPropagation(),
|
|
19893
|
-
className:
|
|
19894
|
-
|
|
20589
|
+
className: cn(
|
|
20590
|
+
"absolute left-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full flex items-center justify-center shadow-lg transition-all z-50",
|
|
20591
|
+
!emblaApi?.canScrollPrev() ? "opacity-40 cursor-not-allowed" : "hover:scale-110 hover:opacity-100 opacity-70",
|
|
20592
|
+
currentTheme.primary,
|
|
20593
|
+
currentTheme.primaryForeground
|
|
20594
|
+
),
|
|
19895
20595
|
children: /* @__PURE__ */ jsx(
|
|
19896
20596
|
"svg",
|
|
19897
20597
|
{
|
|
@@ -19920,8 +20620,12 @@ function CarouselBase({
|
|
|
19920
20620
|
onPointerDown: (e) => e.stopPropagation(),
|
|
19921
20621
|
onTouchStart: (e) => e.stopPropagation(),
|
|
19922
20622
|
onMouseDown: (e) => e.stopPropagation(),
|
|
19923
|
-
className:
|
|
19924
|
-
|
|
20623
|
+
className: cn(
|
|
20624
|
+
"absolute right-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full flex items-center justify-center shadow-lg transition-all z-50",
|
|
20625
|
+
!emblaApi?.canScrollNext() ? "opacity-40 cursor-not-allowed" : "hover:scale-110 hover:opacity-100 opacity-70",
|
|
20626
|
+
currentTheme.primary,
|
|
20627
|
+
currentTheme.primaryForeground
|
|
20628
|
+
),
|
|
19925
20629
|
children: /* @__PURE__ */ jsx(
|
|
19926
20630
|
"svg",
|
|
19927
20631
|
{
|
|
@@ -19950,7 +20654,14 @@ function CarouselBase({
|
|
|
19950
20654
|
onPointerDown: (e) => e.stopPropagation(),
|
|
19951
20655
|
onTouchStart: (e) => e.stopPropagation(),
|
|
19952
20656
|
onMouseDown: (e) => e.stopPropagation(),
|
|
19953
|
-
className:
|
|
20657
|
+
className: cn(
|
|
20658
|
+
"h-2 rounded-full transition-all duration-300",
|
|
20659
|
+
i === index ? cn("w-8", currentTheme.primary) : cn(
|
|
20660
|
+
"w-2 hover:opacity-80",
|
|
20661
|
+
currentTheme.primary,
|
|
20662
|
+
"opacity-40"
|
|
20663
|
+
)
|
|
20664
|
+
)
|
|
19954
20665
|
},
|
|
19955
20666
|
i
|
|
19956
20667
|
)) })
|
|
@@ -20320,4 +21031,4 @@ function ControlledCombobox({
|
|
|
20320
21031
|
);
|
|
20321
21032
|
}
|
|
20322
21033
|
|
|
20323
|
-
export { AddButton, Agenda, AgendaDaysToShow, AgendaDaysToShowAgenda, AgendaView, AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarCombobox, AvatarFallbackBase, AvatarImageBase, BackButton, Badge, BreadcrumbBase, BreadcrumbEllipsisBase, BreadcrumbItemBase, BreadcrumbLinkBase, BreadcrumbListBase, BreadcrumbPageBase, BreadcrumbSeparatorBase, Brush_default as Brush, ButtonBase, ButtonGroupBase, CENTER_INDEX, CalendarBase, CalendarDndProvider, CalendarDndProviderAgenda, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CarouselBase, ChangeButton, Chart_default as Chart, ChartControls, ChartHeader, ChartTotalLegend_default as ChartTotalLegend, CheckButton, CheckboxBase, CheckboxTree, CloseAllButton_default as CloseAllButton, CloseButton, CodeBlock, CollapsibleBase, CollapsibleContentBase, CollapsibleTriggerBase, Combobox, CommandBase, CommandDebouncedInputBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, ContextMenuBase, ContextMenuCheckboxItemBase, ContextMenuContentBase, ContextMenuGroupBase, ContextMenuItemBase, ContextMenuLabelBase, ContextMenuPortalBase, ContextMenuRadioGroupBase, ContextMenuRadioItemBase, ContextMenuSeparatorBase, ContextMenuShortcutBase, ContextMenuSubBase, ContextMenuSubContentBase, ContextMenuSubTriggerBase, ContextMenuTriggerBase, ControlledCombobox, CopyButton, DateTimePicker, DayView, DayViewAgenda, DebouncedInput, DefaultEndHour, DefaultEndHourAgenda, DefaultStartHour, DefaultStartHourAgenda, DestructiveDialog, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DownloadButton, DraggableEvent2 as DraggableEvent, DraggableTooltip_default as DraggableTooltip, DrawerBase, DrawerCloseBase, DrawerContentBase, DrawerDescriptionBase, DrawerFooterBase, DrawerHeaderBase, DrawerOverlayBase, DrawerPortalBase, DrawerTitleBase, DrawerTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, DroppableCell, DroppableCellAgenda, EditButton, EndHour, EndHourAgenda, ErrorMessage_default as ErrorMessage, EventAgenda, EventCalendar, EventDetailModalAgenda, EventDialog, EventGap, EventGapAgenda, EventHeight, EventHeightAgenda, EventItem, EventItemAgenda, EventsPopup, FavoriteButton, FileUploader, FilterButton, HideButton, Highlights_default as Highlights, HorizontalChart_default as HorizontalChart, HorizontalLegend_default as HorizontalLegend, HoverCardBase, HoverCardContentBase, HoverCardTriggerBase, ITEM_HEIGHT, InputBase, InputOTPBase, InputOTPGroupBase, InputOTPSeparatorBase, InputOTPSlotBase, LabelBase_default as LabelBase, Leaderboard, LikeButton, LoadingBase, LockButton, ModalBase, ModalCloseBase, ModalContentBase, ModalDescriptionBase, ModalFooterBase, ModalHeaderBase, ModalOverlayBase, ModalPortalBase, ModalTitleBase, ModalTriggerBase, ModeToggleBase, MonthView, MonthViewAgenda, MoreButton, MultiCombobox, MultiDayOverlay, MultiSelect, MultiSelectBase, MultiSelectContentBase, MultiSelectGroupBase, MultiSelectItemBase, MultiSelectSeparatorBase, MultiSelectTriggerBase, MultiSelectValueBase, NavigationMenuBase, NavigationMenuContentBase, NavigationMenuIndicatorBase, NavigationMenuItemBase, NavigationMenuLinkBase, NavigationMenuListBase, NavigationMenuTriggerBase, NavigationMenuViewportBase, NoData_default as NoData, NotificationButton, NumericInput, PeriodsDropdown_default as PeriodsDropdown, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, ProgressCirclesBase, ProgressPanelsBase, ProgressSegmentsBase, RadialMenu, RangePicker, RefreshButton, SaveButton, ScrollAreaBase, ScrollBarBase, SearchButton, Select, SelectBase, SelectContentBase, SelectEmpty, SelectGroupBase, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SettingsButton, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, ShowOnly_default as ShowOnly, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, StartHour, StartHourAgenda, StatusIndicator, SwitchBase, SystemTooltip_default as SystemTooltip, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, ThemeProviderBase, TimePicker, TimePickerInput, TimeSeries_default as TimeSeries, Toaster, TooltipBase, TooltipContentBase, TooltipProviderBase, TooltipSimple_default as TooltipSimple, TooltipTriggerBase, TooltipWithTotal_default as TooltipWithTotal, UndatedEvents, UniversalTooltipRenderer, UnlockButton, UploadButton, UseSideBarBase, VISIBLE_ITEMS, ViewButton, VisibilityButton, WeekCellsHeight, WeekCellsHeightAgenda, WeekView, WeekViewAgenda, adaptDataForTooltip, addHoursToDate, addHoursToDateAgenda, addMinutesToDateAgenda, badgeVariants, buttonVariantsBase, compactTick, computeChartWidth, computeNiceMax, computeYAxisTickWidth, convert12HourTo24Hour, createValueFormatter, createYTickFormatter, detectDataFields, detectXAxis, display12HourValue, formatDurationAgenda, formatDurationAgendaDays, formatFieldName, formatLinePercentage, generateAdditionalColors, generateColorMap, getAgendaEventsForDay, getAgendaEventsForDayAgenda, getAllEventsForDay, getAllEventsForDayAgenda, getArrowByType, getAutoColorAgenda, getBorderRadiusClasses, getBorderRadiusClassesAgenda, getDateByType, getEventColorClasses, getEventColorClassesAgenda, getEventEndDate, getEventStartDate, getEventsForDay, getEventsForDayAgenda, getItems, getMaxDataValue, getMinDataValue, getSpanningEventsForDay, getSpanningEventsForDayAgenda, getValid12Hour, getValidArrow12Hour, getValidArrowHour, getValidArrowMinuteOrSecond, getValidArrowNumber, getValidHour, getValidMinuteOrSecond, getValidNumber, isMultiDayEvent, isMultiDayEventAgenda, isValid12Hour, isValidHour, isValidMinuteOrSecond, niceCeil, normalizeAttendDate, processNeo4jData, renderInsideBarLabel, pillLabelRenderer_default as renderPillLabel, resolveChartMargins, resolveContainerPaddingLeft, set12Hours, setDateByType, setHours, setMinutes, setSeconds, sortEvents, sortEventsAgenda, toast, useBiaxial, useCalendarDnd, useCalendarDndAgenda, useChartClick, useChartDimensions, useChartHighlights, useChartLayout, useChartMinMax, useChartTooltips, useCurrentTimeIndicator, useCurrentTimeIndicatorAgenda, useDrag, useEventVisibility, useEventVisibilityAgenda, useIsMobile, useOpenTooltipForPeriod, useProcessedData, useSeriesOpacity, useTheme, useTimeSeriesRange, visualForItem };
|
|
21034
|
+
export { AddButton, Agenda, AgendaDaysToShow, AgendaDaysToShowAgenda, AgendaView, AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarCombobox, AvatarFallbackBase, AvatarImageBase, BackButton, Badge, Beam, BreadcrumbBase, BreadcrumbEllipsisBase, BreadcrumbItemBase, BreadcrumbLinkBase, BreadcrumbListBase, BreadcrumbPageBase, BreadcrumbSeparatorBase, Brush_default as Brush, ButtonBase, ButtonGroupBase, CENTER_INDEX, CalendarBase, CalendarDndProvider, CalendarDndProviderAgenda, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CarouselBase, ChangeButton, Chart_default as Chart, ChartControls, ChartHeader, ChartTotalLegend_default as ChartTotalLegend, CheckButton, CheckboxBase, CheckboxTree, CloseAllButton_default as CloseAllButton, CloseButton, CodeBlock, CollapsibleBase, CollapsibleContentBase, CollapsibleTriggerBase, Combobox, CommandBase, CommandDebouncedInputBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, ContextMenuBase, ContextMenuCheckboxItemBase, ContextMenuContentBase, ContextMenuGroupBase, ContextMenuItemBase, ContextMenuLabelBase, ContextMenuPortalBase, ContextMenuRadioGroupBase, ContextMenuRadioItemBase, ContextMenuSeparatorBase, ContextMenuShortcutBase, ContextMenuSubBase, ContextMenuSubContentBase, ContextMenuSubTriggerBase, ContextMenuTriggerBase, ControlledCombobox, CopyButton, CopyData, DateTimePicker, DayView, DayViewAgenda, DebouncedInput, DefaultEndHour, DefaultEndHourAgenda, DefaultStartHour, DefaultStartHourAgenda, DestructiveDialog, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DownloadButton, DraggableEvent2 as DraggableEvent, DraggableTooltip_default as DraggableTooltip, DrawerBase, DrawerCloseBase, DrawerContentBase, DrawerDescriptionBase, DrawerFooterBase, DrawerHeaderBase, DrawerOverlayBase, DrawerPortalBase, DrawerTitleBase, DrawerTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, DroppableCell, DroppableCellAgenda, EditButton, EndHour, EndHourAgenda, ErrorMessage_default as ErrorMessage, EventAgenda, EventCalendar, EventDetailModalAgenda, EventDialog, EventGap, EventGapAgenda, EventHeight, EventHeightAgenda, EventItem, EventItemAgenda, EventsPopup, FavoriteButton, FileTypes, FileUploader, FilterButton, HideButton, Highlights_default as Highlights, HorizontalChart_default as HorizontalChart, HorizontalLegend_default as HorizontalLegend, HoverCardBase, HoverCardContentBase, HoverCardTriggerBase, ITEM_HEIGHT, InputBase, InputOTPBase, InputOTPGroupBase, InputOTPSeparatorBase, InputOTPSlotBase, IntegrationCard, IntegrationTooltip_default as IntegrationTooltip, LabelBase_default as LabelBase, Leaderboard, LikeButton, LoadingBase, LockButton, ModalBase, ModalCloseBase, ModalContentBase, ModalDescriptionBase, ModalFooterBase, ModalHeaderBase, ModalOverlayBase, ModalPortalBase, ModalTitleBase, ModalTriggerBase, ModeToggleBase, MonthView, MonthViewAgenda, MoreButton, MultiCombobox, MultiDayOverlay, MultiSelect, MultiSelectBase, MultiSelectContentBase, MultiSelectGroupBase, MultiSelectItemBase, MultiSelectSeparatorBase, MultiSelectTriggerBase, MultiSelectValueBase, NameTooltip, NavigationMenuBase, NavigationMenuContentBase, NavigationMenuIndicatorBase, NavigationMenuItemBase, NavigationMenuLinkBase, NavigationMenuListBase, NavigationMenuTriggerBase, NavigationMenuViewportBase, NoData_default as NoData, NotificationButton, NumericInput, PeriodsDropdown_default as PeriodsDropdown, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, ProgressCirclesBase, ProgressPanelsBase, ProgressSegmentsBase, RadialMenu, RangePicker, RefreshButton, SaveButton, ScrollAreaBase, ScrollBarBase, SearchButton, Select, SelectBase, SelectContentBase, SelectEmpty, SelectGroupBase, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SettingsButton, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, ShowOnly_default as ShowOnly, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, StartHour, StartHourAgenda, StatusIndicator, SwitchBase, SystemNode, SystemTooltip_default as SystemTooltip, SystemsDiagram, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, ThemeProviderBase, TimePicker, TimePickerInput, TimeSeries_default as TimeSeries, Toaster, TooltipBase, TooltipBody, TooltipContentBase, TooltipProviderBase, TooltipSimple_default as TooltipSimple, TooltipTriggerBase, TooltipWithTotal_default as TooltipWithTotal, UndatedEvents, UniversalTooltipRenderer, UnlockButton, UploadButton, UseSideBarBase, VISIBLE_ITEMS, ViewButton, VisibilityButton, WeekCellsHeight, WeekCellsHeightAgenda, WeekView, WeekViewAgenda, YearViewAgenda, adaptDataForTooltip, addHoursToDate, addHoursToDateAgenda, addMinutesToDateAgenda, badgeVariants, buttonVariantsBase, compactTick, computeChartWidth, computeNiceMax, computeYAxisTickWidth, convert12HourTo24Hour, createValueFormatter, createYTickFormatter, detectDataFields, detectXAxis, display12HourValue, formatDurationAgenda, formatDurationAgendaDays, formatFieldName, formatLinePercentage, generateAdditionalColors, generateColorMap, getAgendaEventsForDay, getAgendaEventsForDayAgenda, getAllEventsForDay, getAllEventsForDayAgenda, getArrowByType, getAutoColorAgenda, getBorderRadiusClasses, getBorderRadiusClassesAgenda, getDateByType, getEventColorClasses, getEventColorClassesAgenda, getEventEndDate, getEventStartDate, getEventsForDay, getEventsForDayAgenda, getItems, getMaxDataValue, getMinDataValue, getSpanningEventsForDay, getSpanningEventsForDayAgenda, getValid12Hour, getValidArrow12Hour, getValidArrowHour, getValidArrowMinuteOrSecond, getValidArrowNumber, getValidHour, getValidMinuteOrSecond, getValidNumber, isMultiDayEvent, isMultiDayEventAgenda, isValid12Hour, isValidHour, isValidMinuteOrSecond, niceCeil, normalizeAttendDate, processIntegrationData, processNeo4jData, renderInsideBarLabel, pillLabelRenderer_default as renderPillLabel, resolveChartMargins, resolveContainerPaddingLeft, set12Hours, setDateByType, setHours, setMinutes, setSeconds, sortEvents, sortEventsAgenda, toast, useBiaxial, useCalendarDnd, useCalendarDndAgenda, useChartClick, useChartDimensions, useChartHighlights, useChartLayout, useChartMinMax, useChartTooltips, useCurrentTimeIndicator, useCurrentTimeIndicatorAgenda, useDrag, useEventVisibility, useEventVisibilityAgenda, useIsMobile, useIsTruncated, useOpenTooltipForPeriod, useProcessedData, useSeriesOpacity, useTheme, useTimeSeriesRange, visualForItem };
|