@mlw-packages/react-components 1.7.4 → 1.7.5
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 +117 -77
- package/dist/index.d.mts +34 -2
- package/dist/index.d.ts +34 -2
- package/dist/index.js +671 -331
- package/dist/index.mjs +632 -281
- package/package.json +3 -1
package/dist/index.mjs
CHANGED
|
@@ -492,7 +492,8 @@ function cn(...inputs) {
|
|
|
492
492
|
}
|
|
493
493
|
|
|
494
494
|
// src/components/ui/form/ButtonBase.tsx
|
|
495
|
-
import {
|
|
495
|
+
import { CircleNotchIcon } from "@phosphor-icons/react";
|
|
496
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
496
497
|
var buttonVariantsBase = cva(
|
|
497
498
|
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive active:scale-95",
|
|
498
499
|
{
|
|
@@ -527,16 +528,38 @@ var ButtonBase = React.forwardRef(
|
|
|
527
528
|
size,
|
|
528
529
|
asChild = false,
|
|
529
530
|
testid = `button-${variant ?? "default"}`,
|
|
531
|
+
isLoading = false,
|
|
532
|
+
children,
|
|
530
533
|
...props
|
|
531
534
|
}, ref) => {
|
|
532
535
|
const Comp = asChild ? Slot : "button";
|
|
533
|
-
|
|
536
|
+
const mergedDisabled = Boolean(props.disabled) || isLoading;
|
|
537
|
+
const isActivelyLoading = isLoading && !props.disabled;
|
|
538
|
+
return /* @__PURE__ */ jsxs(
|
|
534
539
|
Comp,
|
|
535
540
|
{
|
|
536
|
-
className: cn(
|
|
541
|
+
className: cn(
|
|
542
|
+
buttonVariantsBase({ variant, size, className }),
|
|
543
|
+
"relative"
|
|
544
|
+
),
|
|
537
545
|
ref,
|
|
538
546
|
"data-testid": testid ?? `button-${variant ?? "default"}`,
|
|
539
|
-
|
|
547
|
+
"aria-busy": isActivelyLoading || void 0,
|
|
548
|
+
disabled: mergedDisabled,
|
|
549
|
+
...props,
|
|
550
|
+
children: [
|
|
551
|
+
children,
|
|
552
|
+
isActivelyLoading && /* @__PURE__ */ jsxs("span", { className: "absolute inset-0 flex items-center justify-center pointer-events-none rounded-md", children: [
|
|
553
|
+
/* @__PURE__ */ jsx("span", { className: "absolute inset-0 rounded-md backdrop-blur overflow-hidden" }),
|
|
554
|
+
/* @__PURE__ */ jsx(
|
|
555
|
+
CircleNotchIcon,
|
|
556
|
+
{
|
|
557
|
+
weight: "bold",
|
|
558
|
+
className: "relative animate-spin h-4 w-4 text-current"
|
|
559
|
+
}
|
|
560
|
+
)
|
|
561
|
+
] })
|
|
562
|
+
]
|
|
540
563
|
}
|
|
541
564
|
);
|
|
542
565
|
}
|
|
@@ -579,7 +602,7 @@ ButtonGroupBase.displayName = "ButtonGroup";
|
|
|
579
602
|
import * as React2 from "react";
|
|
580
603
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
581
604
|
import { XIcon } from "@phosphor-icons/react";
|
|
582
|
-
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
605
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
583
606
|
var DialogBase = DialogPrimitive.Root;
|
|
584
607
|
var DialogTriggerBase = DialogPrimitive.Trigger;
|
|
585
608
|
var DialogPortalBase = DialogPrimitive.Portal;
|
|
@@ -598,9 +621,9 @@ var DialogOverlayBase = React2.forwardRef(({ className, testid: dataTestId = "di
|
|
|
598
621
|
));
|
|
599
622
|
DialogOverlayBase.displayName = DialogPrimitive.Overlay.displayName;
|
|
600
623
|
var DialogContentBase = React2.forwardRef(
|
|
601
|
-
({ className, children, testid: dataTestId = "dialog-content", ...props }, ref) => /* @__PURE__ */
|
|
624
|
+
({ className, children, testid: dataTestId = "dialog-content", ...props }, ref) => /* @__PURE__ */ jsxs2(DialogPortalBase, { children: [
|
|
602
625
|
/* @__PURE__ */ jsx2(DialogOverlayBase, {}),
|
|
603
|
-
/* @__PURE__ */
|
|
626
|
+
/* @__PURE__ */ jsxs2(
|
|
604
627
|
DialogPrimitive.Content,
|
|
605
628
|
{
|
|
606
629
|
ref,
|
|
@@ -612,7 +635,7 @@ var DialogContentBase = React2.forwardRef(
|
|
|
612
635
|
...props,
|
|
613
636
|
children: [
|
|
614
637
|
children,
|
|
615
|
-
/* @__PURE__ */
|
|
638
|
+
/* @__PURE__ */ jsxs2(DialogPrimitive.Close, { className: "absolute right-3 top-3 sm:right-4 sm: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 z-10 touch-manipulation", children: [
|
|
616
639
|
/* @__PURE__ */ jsx2(XIcon, { className: "h-5 w-5 sm:h-4 sm:w-4" }),
|
|
617
640
|
/* @__PURE__ */ jsx2("span", { className: "sr-only", children: "Close" })
|
|
618
641
|
] })
|
|
@@ -712,7 +735,7 @@ var ErrorMessage = ({ error }) => {
|
|
|
712
735
|
var ErrorMessage_default = ErrorMessage;
|
|
713
736
|
|
|
714
737
|
// src/components/ui/form/InputBase.tsx
|
|
715
|
-
import { jsx as jsx5, jsxs as
|
|
738
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
716
739
|
var InputBase = React4.forwardRef(
|
|
717
740
|
({
|
|
718
741
|
className,
|
|
@@ -725,9 +748,9 @@ var InputBase = React4.forwardRef(
|
|
|
725
748
|
error,
|
|
726
749
|
...props
|
|
727
750
|
}, ref) => {
|
|
728
|
-
return /* @__PURE__ */
|
|
751
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col w-full min-w-[150px]", children: [
|
|
729
752
|
label && /* @__PURE__ */ jsx5(LabelBase_default, { className: labelClassname, children: label }),
|
|
730
|
-
/* @__PURE__ */
|
|
753
|
+
/* @__PURE__ */ jsxs3(
|
|
731
754
|
"div",
|
|
732
755
|
{
|
|
733
756
|
className: cn(
|
|
@@ -768,7 +791,7 @@ import * as React5 from "react";
|
|
|
768
791
|
import { Command as CommandPrimitive } from "cmdk";
|
|
769
792
|
import { MagnifyingGlassIcon } from "@phosphor-icons/react";
|
|
770
793
|
import { motion, AnimatePresence } from "framer-motion";
|
|
771
|
-
import { jsx as jsx6, jsxs as
|
|
794
|
+
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
772
795
|
var CommandBase = React5.forwardRef(({ className, testid: dataTestId = "command-base", ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
773
796
|
CommandPrimitive,
|
|
774
797
|
{
|
|
@@ -802,7 +825,7 @@ var CommandDialogBase = ({ children, open, ...props }) => {
|
|
|
802
825
|
"command-dialog"
|
|
803
826
|
) }) }) });
|
|
804
827
|
};
|
|
805
|
-
var CommandInputBase = React5.forwardRef(({ className, testid: dataTestId = "command-input", ...props }, ref) => /* @__PURE__ */
|
|
828
|
+
var CommandInputBase = React5.forwardRef(({ className, testid: dataTestId = "command-input", ...props }, ref) => /* @__PURE__ */ jsxs4("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
806
829
|
/* @__PURE__ */ jsx6(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 text-primary" }),
|
|
807
830
|
/* @__PURE__ */ jsx6(
|
|
808
831
|
CommandPrimitive.Input,
|
|
@@ -926,7 +949,7 @@ PopoverContentBase.displayName = PopoverPrimitive.Content.displayName;
|
|
|
926
949
|
import { motion as motion2 } from "framer-motion";
|
|
927
950
|
import { useState } from "react";
|
|
928
951
|
import { CaretDownIcon, CheckIcon } from "@phosphor-icons/react";
|
|
929
|
-
import { jsx as jsx8, jsxs as
|
|
952
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
930
953
|
function ComboboxBase({
|
|
931
954
|
items,
|
|
932
955
|
renderSelected,
|
|
@@ -939,19 +962,19 @@ function ComboboxBase({
|
|
|
939
962
|
testIds = {}
|
|
940
963
|
}) {
|
|
941
964
|
const [open, setOpen] = useState(false);
|
|
942
|
-
return /* @__PURE__ */
|
|
965
|
+
return /* @__PURE__ */ jsxs5(
|
|
943
966
|
"div",
|
|
944
967
|
{
|
|
945
968
|
className: "col-span-1 w-full",
|
|
946
969
|
"data-testid": testIds.root ?? "combobox-base-root",
|
|
947
970
|
children: [
|
|
948
|
-
/* @__PURE__ */
|
|
971
|
+
/* @__PURE__ */ jsxs5(PopoverBase, { open, onOpenChange: setOpen, modal: true, children: [
|
|
949
972
|
/* @__PURE__ */ jsx8(
|
|
950
973
|
PopoverTriggerBase,
|
|
951
974
|
{
|
|
952
975
|
asChild: true,
|
|
953
976
|
className: "flex w-full justify-between dark:bg-[hsl(231,15%,19%)]",
|
|
954
|
-
children: /* @__PURE__ */
|
|
977
|
+
children: /* @__PURE__ */ jsxs5(
|
|
955
978
|
ButtonBase,
|
|
956
979
|
{
|
|
957
980
|
variant: "select",
|
|
@@ -985,7 +1008,7 @@ function ComboboxBase({
|
|
|
985
1008
|
{
|
|
986
1009
|
className: "max-h-[--radix-popover-content-available-height] w-[--radix-popover-trigger-width] p-0 border-none",
|
|
987
1010
|
"data-testid": testIds.popover ?? "combobox-popover",
|
|
988
|
-
children: /* @__PURE__ */
|
|
1011
|
+
children: /* @__PURE__ */ jsxs5(
|
|
989
1012
|
CommandBase,
|
|
990
1013
|
{
|
|
991
1014
|
className: "dark:text-white hover:bg-rsecondary",
|
|
@@ -999,11 +1022,11 @@ function ComboboxBase({
|
|
|
999
1022
|
"data-testid": testIds.search ?? "combobox-search"
|
|
1000
1023
|
}
|
|
1001
1024
|
),
|
|
1002
|
-
/* @__PURE__ */
|
|
1025
|
+
/* @__PURE__ */ jsxs5(CommandListBase, { "data-testid": testIds.list ?? "combobox-list", children: [
|
|
1003
1026
|
/* @__PURE__ */ jsx8(CommandEmptyBase, { "data-testid": testIds.empty ?? "combobox-empty", children: "Nenhum dado encontrado" }),
|
|
1004
1027
|
/* @__PURE__ */ jsx8(CommandGroupBase, { "data-testid": testIds.group ?? "combobox-group", children: items.map((item) => {
|
|
1005
1028
|
const isSelected = checkIsSelected(item.value);
|
|
1006
|
-
return /* @__PURE__ */
|
|
1029
|
+
return /* @__PURE__ */ jsxs5(
|
|
1007
1030
|
CommandItemBase,
|
|
1008
1031
|
{
|
|
1009
1032
|
keywords: [item.label],
|
|
@@ -1057,7 +1080,7 @@ function ComboboxBase({
|
|
|
1057
1080
|
}
|
|
1058
1081
|
|
|
1059
1082
|
// src/components/selects/Combobox.tsx
|
|
1060
|
-
import { jsx as jsx9, jsxs as
|
|
1083
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1061
1084
|
function Combobox({
|
|
1062
1085
|
items,
|
|
1063
1086
|
selected,
|
|
@@ -1091,7 +1114,7 @@ function Combobox({
|
|
|
1091
1114
|
},
|
|
1092
1115
|
[selected, onChange]
|
|
1093
1116
|
);
|
|
1094
|
-
return /* @__PURE__ */
|
|
1117
|
+
return /* @__PURE__ */ jsxs6("div", { className: cn("flex flex-col gap-1 w-full min-w-[150px]", className), children: [
|
|
1095
1118
|
label && /* @__PURE__ */ jsx9(LabelBase_default, { className: labelClassname, children: label }),
|
|
1096
1119
|
/* @__PURE__ */ jsx9(
|
|
1097
1120
|
ComboboxBase,
|
|
@@ -1112,7 +1135,7 @@ function Combobox({
|
|
|
1112
1135
|
import { useCallback as useCallback2, useMemo as useMemo2 } from "react";
|
|
1113
1136
|
import { XIcon as XIcon2 } from "@phosphor-icons/react";
|
|
1114
1137
|
import { motion as motion3, AnimatePresence as AnimatePresence2 } from "framer-motion";
|
|
1115
|
-
import { jsx as jsx10, jsxs as
|
|
1138
|
+
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1116
1139
|
function MultiCombobox({
|
|
1117
1140
|
items,
|
|
1118
1141
|
selected,
|
|
@@ -1173,7 +1196,7 @@ function MultiCombobox({
|
|
|
1173
1196
|
{
|
|
1174
1197
|
"data-testid": testIds.selectedWrapper ?? "combobox-selected-wrapper",
|
|
1175
1198
|
className: "flex w-full flex-wrap gap-2 overflow-hidden ",
|
|
1176
|
-
children: /* @__PURE__ */ jsx10(AnimatePresence2, { mode: "popLayout", children: selectedItems.map((item) => /* @__PURE__ */
|
|
1199
|
+
children: /* @__PURE__ */ jsx10(AnimatePresence2, { mode: "popLayout", children: selectedItems.map((item) => /* @__PURE__ */ jsxs7(
|
|
1177
1200
|
motion3.div,
|
|
1178
1201
|
{
|
|
1179
1202
|
layout: true,
|
|
@@ -1211,7 +1234,7 @@ function MultiCombobox({
|
|
|
1211
1234
|
}
|
|
1212
1235
|
);
|
|
1213
1236
|
}, [handleSelection, placeholder, selectedItems, testIds]);
|
|
1214
|
-
return /* @__PURE__ */
|
|
1237
|
+
return /* @__PURE__ */ jsxs7(
|
|
1215
1238
|
"div",
|
|
1216
1239
|
{
|
|
1217
1240
|
className: cn("flex flex-col gap-1 w-full min-w-[150px]", className),
|
|
@@ -1267,19 +1290,19 @@ TooltipContentBase.displayName = TooltipPrimitive.Content.displayName;
|
|
|
1267
1290
|
// src/components/ui/FilterBase.tsx
|
|
1268
1291
|
var import_colors = __toESM(require_colors2());
|
|
1269
1292
|
import { FunnelSimpleIcon, PlusIcon, TrashIcon } from "@phosphor-icons/react";
|
|
1270
|
-
import { jsx as jsx12, jsxs as
|
|
1293
|
+
import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1271
1294
|
|
|
1272
1295
|
// src/components/ui/SelectBase.tsx
|
|
1273
1296
|
import * as React8 from "react";
|
|
1274
1297
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
1275
1298
|
import { CheckIcon as CheckIcon2, CaretDownIcon as CaretDownIcon2, CaretUpIcon } from "@phosphor-icons/react";
|
|
1276
1299
|
import { motion as motion4, AnimatePresence as AnimatePresence3 } from "framer-motion";
|
|
1277
|
-
import { Fragment, jsx as jsx13, jsxs as
|
|
1300
|
+
import { Fragment, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1278
1301
|
var SelectBase = SelectPrimitive.Root;
|
|
1279
1302
|
var SelectGroupBase = SelectPrimitive.Group;
|
|
1280
1303
|
var SelectValueBase = SelectPrimitive.Value;
|
|
1281
|
-
var SelectTriggerBase = React8.forwardRef(({ className, children, open, error, ...props }, ref) => /* @__PURE__ */
|
|
1282
|
-
/* @__PURE__ */
|
|
1304
|
+
var SelectTriggerBase = React8.forwardRef(({ className, children, open, error, ...props }, ref) => /* @__PURE__ */ jsxs9("div", { className: cn("w-full", error && "mb-0"), children: [
|
|
1305
|
+
/* @__PURE__ */ jsxs9(
|
|
1283
1306
|
SelectPrimitive.Trigger,
|
|
1284
1307
|
{
|
|
1285
1308
|
ref,
|
|
@@ -1358,7 +1381,7 @@ var SelectContentBase = React8.forwardRef(
|
|
|
1358
1381
|
animate: { opacity: 1, scale: 1 },
|
|
1359
1382
|
exit: { opacity: 0, scale: 0.95 },
|
|
1360
1383
|
transition: { duration: 0.2 },
|
|
1361
|
-
children: /* @__PURE__ */
|
|
1384
|
+
children: /* @__PURE__ */ jsxs9(Fragment, { children: [
|
|
1362
1385
|
/* @__PURE__ */ jsx13(SelectScrollUpButtonBase, {}),
|
|
1363
1386
|
/* @__PURE__ */ jsx13(
|
|
1364
1387
|
SelectPrimitive.Viewport,
|
|
@@ -1397,7 +1420,7 @@ var SelectItemBase = React8.forwardRef(({ className, children, ...props }, ref)
|
|
|
1397
1420
|
),
|
|
1398
1421
|
...props,
|
|
1399
1422
|
asChild: true,
|
|
1400
|
-
children: /* @__PURE__ */
|
|
1423
|
+
children: /* @__PURE__ */ jsxs9(
|
|
1401
1424
|
motion4.div,
|
|
1402
1425
|
{
|
|
1403
1426
|
whileHover: { x: 4 },
|
|
@@ -1438,14 +1461,14 @@ import * as React9 from "react";
|
|
|
1438
1461
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1439
1462
|
import { CheckIcon as CheckIcon3, CaretRightIcon, CircleIcon } from "@phosphor-icons/react";
|
|
1440
1463
|
import { motion as motion5, AnimatePresence as AnimatePresence4 } from "framer-motion";
|
|
1441
|
-
import { jsx as jsx14, jsxs as
|
|
1464
|
+
import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1442
1465
|
var DropDownMenuBase = DropdownMenuPrimitive.Root;
|
|
1443
1466
|
var DropDownMenuTriggerBase = DropdownMenuPrimitive.Trigger;
|
|
1444
1467
|
var DropDownMenuGroupBase = DropdownMenuPrimitive.Group;
|
|
1445
1468
|
var DropDownMenuPortalBase = DropdownMenuPrimitive.Portal;
|
|
1446
1469
|
var DropDownMenuSubBase = DropdownMenuPrimitive.Sub;
|
|
1447
1470
|
var DropDownMenuRadioGroupBase = DropdownMenuPrimitive.RadioGroup;
|
|
1448
|
-
var DropDownMenuSubTriggerBase = React9.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */
|
|
1471
|
+
var DropDownMenuSubTriggerBase = React9.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1449
1472
|
DropdownMenuPrimitive.SubTrigger,
|
|
1450
1473
|
{
|
|
1451
1474
|
ref,
|
|
@@ -1506,7 +1529,7 @@ var DropDownMenuContentBase = React9.forwardRef(
|
|
|
1506
1529
|
) })
|
|
1507
1530
|
);
|
|
1508
1531
|
DropDownMenuContentBase.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1509
|
-
var DropDownMenuItemBase = React9.forwardRef(({ className, inset, leftIcon, rightIcon, children, ...props }, ref) => /* @__PURE__ */
|
|
1532
|
+
var DropDownMenuItemBase = React9.forwardRef(({ className, inset, leftIcon, rightIcon, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1510
1533
|
DropdownMenuPrimitive.Item,
|
|
1511
1534
|
{
|
|
1512
1535
|
ref,
|
|
@@ -1517,7 +1540,7 @@ var DropDownMenuItemBase = React9.forwardRef(({ className, inset, leftIcon, righ
|
|
|
1517
1540
|
),
|
|
1518
1541
|
...props,
|
|
1519
1542
|
children: [
|
|
1520
|
-
/* @__PURE__ */
|
|
1543
|
+
/* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2", children: [
|
|
1521
1544
|
leftIcon && /* @__PURE__ */ jsx14("span", { className: "[&>svg]:size-4", children: leftIcon }),
|
|
1522
1545
|
children
|
|
1523
1546
|
] }),
|
|
@@ -1526,7 +1549,7 @@ var DropDownMenuItemBase = React9.forwardRef(({ className, inset, leftIcon, righ
|
|
|
1526
1549
|
}
|
|
1527
1550
|
));
|
|
1528
1551
|
DropDownMenuItemBase.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1529
|
-
var DropDownMenuCheckboxItemBase = React9.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */
|
|
1552
|
+
var DropDownMenuCheckboxItemBase = React9.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1530
1553
|
DropdownMenuPrimitive.CheckboxItem,
|
|
1531
1554
|
{
|
|
1532
1555
|
ref,
|
|
@@ -1543,7 +1566,7 @@ var DropDownMenuCheckboxItemBase = React9.forwardRef(({ className, children, che
|
|
|
1543
1566
|
}
|
|
1544
1567
|
));
|
|
1545
1568
|
DropDownMenuCheckboxItemBase.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1546
|
-
var DropDownMenuRadioItemBase = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1569
|
+
var DropDownMenuRadioItemBase = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1547
1570
|
DropdownMenuPrimitive.RadioItem,
|
|
1548
1571
|
{
|
|
1549
1572
|
ref,
|
|
@@ -1657,7 +1680,7 @@ var useTheme = () => {
|
|
|
1657
1680
|
};
|
|
1658
1681
|
|
|
1659
1682
|
// src/components/mode-toggle.tsx
|
|
1660
|
-
import { Fragment as Fragment2, jsx as jsx16, jsxs as
|
|
1683
|
+
import { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1661
1684
|
var themeLabels = {
|
|
1662
1685
|
light: "Light",
|
|
1663
1686
|
dark: "Dark",
|
|
@@ -1674,15 +1697,15 @@ function ModeToggleBase({
|
|
|
1674
1697
|
}) {
|
|
1675
1698
|
const { setTheme, theme: currentTheme } = useTheme();
|
|
1676
1699
|
const isDark = currentTheme?.includes("dark") || currentTheme === "system" && typeof window !== "undefined" && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
1677
|
-
return /* @__PURE__ */
|
|
1678
|
-
/* @__PURE__ */ jsx16(DropDownMenuTriggerBase, { asChild: true, children: /* @__PURE__ */
|
|
1700
|
+
return /* @__PURE__ */ jsxs11(DropDownMenuBase, { children: [
|
|
1701
|
+
/* @__PURE__ */ jsx16(DropDownMenuTriggerBase, { asChild: true, children: /* @__PURE__ */ jsxs11(
|
|
1679
1702
|
ButtonBase,
|
|
1680
1703
|
{
|
|
1681
1704
|
variant: "ghost",
|
|
1682
1705
|
size: "icon",
|
|
1683
1706
|
className: "relative overflow-hidden border-transparent",
|
|
1684
1707
|
children: [
|
|
1685
|
-
/* @__PURE__ */
|
|
1708
|
+
/* @__PURE__ */ jsxs11(Fragment2, { children: [
|
|
1686
1709
|
/* @__PURE__ */ jsx16(
|
|
1687
1710
|
SunIcon,
|
|
1688
1711
|
{
|
|
@@ -1705,7 +1728,7 @@ function ModeToggleBase({
|
|
|
1705
1728
|
{
|
|
1706
1729
|
align: "end",
|
|
1707
1730
|
className: "border-border bg-popover text-popover-foreground",
|
|
1708
|
-
children: themes.map((theme) => /* @__PURE__ */
|
|
1731
|
+
children: themes.map((theme) => /* @__PURE__ */ jsxs11(
|
|
1709
1732
|
DropDownMenuItemBase,
|
|
1710
1733
|
{
|
|
1711
1734
|
onClick: () => setTheme(theme),
|
|
@@ -1725,8 +1748,8 @@ function ModeToggleBase({
|
|
|
1725
1748
|
// src/components/ui/layout/ScrollareaBase.tsx
|
|
1726
1749
|
import * as React10 from "react";
|
|
1727
1750
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
1728
|
-
import { jsx as jsx17, jsxs as
|
|
1729
|
-
var ScrollAreaBase = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1751
|
+
import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1752
|
+
var ScrollAreaBase = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
|
|
1730
1753
|
ScrollAreaPrimitive.Root,
|
|
1731
1754
|
{
|
|
1732
1755
|
ref,
|
|
@@ -1758,17 +1781,18 @@ var ScrollBarBase = React10.forwardRef(({ className, orientation = "vertical", .
|
|
|
1758
1781
|
ScrollBarBase.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
1759
1782
|
|
|
1760
1783
|
// src/components/selects/Select.tsx
|
|
1761
|
-
import { Fragment as Fragment3, jsx as jsx18, jsxs as
|
|
1784
|
+
import { Fragment as Fragment3, jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1762
1785
|
function Select({
|
|
1763
1786
|
items,
|
|
1764
1787
|
groupItems,
|
|
1765
1788
|
placeholder,
|
|
1766
1789
|
onChange,
|
|
1767
1790
|
error,
|
|
1768
|
-
testIds = {}
|
|
1791
|
+
testIds = {},
|
|
1792
|
+
disabled
|
|
1769
1793
|
}) {
|
|
1770
|
-
return /* @__PURE__ */
|
|
1771
|
-
/* @__PURE__ */
|
|
1794
|
+
return /* @__PURE__ */ jsxs13("div", { "data-testid": testIds.root ?? "select-root", children: [
|
|
1795
|
+
/* @__PURE__ */ jsxs13(
|
|
1772
1796
|
SelectBase,
|
|
1773
1797
|
{
|
|
1774
1798
|
onValueChange: onChange,
|
|
@@ -1782,6 +1806,7 @@ function Select({
|
|
|
1782
1806
|
error && "border-red-500"
|
|
1783
1807
|
),
|
|
1784
1808
|
"data-testid": testIds.trigger ?? "select-trigger",
|
|
1809
|
+
disabled,
|
|
1785
1810
|
children: /* @__PURE__ */ jsx18(
|
|
1786
1811
|
SelectValueBase,
|
|
1787
1812
|
{
|
|
@@ -1791,7 +1816,7 @@ function Select({
|
|
|
1791
1816
|
)
|
|
1792
1817
|
}
|
|
1793
1818
|
),
|
|
1794
|
-
/* @__PURE__ */ jsx18(ScrollAreaBase, { "data-testid": testIds.scrollarea ?? "select-scrollarea", children: /* @__PURE__ */ jsx18(SelectContentBase, { "data-testid": testIds.content ?? "select-content", children: groupItems ? /* @__PURE__ */ jsx18(Fragment3, { children: Object.keys(groupItems).map((key) => /* @__PURE__ */
|
|
1819
|
+
/* @__PURE__ */ jsx18(ScrollAreaBase, { "data-testid": testIds.scrollarea ?? "select-scrollarea", children: /* @__PURE__ */ jsx18(SelectContentBase, { "data-testid": testIds.content ?? "select-content", children: groupItems ? /* @__PURE__ */ jsx18(Fragment3, { children: Object.keys(groupItems).map((key) => /* @__PURE__ */ jsxs13(
|
|
1795
1820
|
SelectGroupBase,
|
|
1796
1821
|
{
|
|
1797
1822
|
"data-testid": testIds.group ?? "select-group",
|
|
@@ -2004,7 +2029,7 @@ import { useState as useState4, useRef, useEffect as useEffect3 } from "react";
|
|
|
2004
2029
|
import { motion as motion6, AnimatePresence as AnimatePresence5 } from "framer-motion";
|
|
2005
2030
|
import { DotsThreeIcon } from "@phosphor-icons/react/dist/ssr";
|
|
2006
2031
|
import { Check } from "@phosphor-icons/react/dist/ssr";
|
|
2007
|
-
import { jsx as jsx19, jsxs as
|
|
2032
|
+
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2008
2033
|
var menuVariants = {
|
|
2009
2034
|
hidden: { opacity: 0, y: -6, scale: 0.98 },
|
|
2010
2035
|
visible: { opacity: 1, y: 0, scale: 1 },
|
|
@@ -2052,8 +2077,8 @@ function PeriodsDropdown({
|
|
|
2052
2077
|
setOpen(false);
|
|
2053
2078
|
}
|
|
2054
2079
|
const containerStyle = typeof rightOffset === "number" ? { position: "relative", zIndex: 30 } : { position: "relative", zIndex: 30 };
|
|
2055
|
-
return /* @__PURE__ */
|
|
2056
|
-
/* @__PURE__ */
|
|
2080
|
+
return /* @__PURE__ */ jsxs14("div", { ref: wrapperRef, style: containerStyle, className: "mr-4", children: [
|
|
2081
|
+
/* @__PURE__ */ jsxs14(
|
|
2057
2082
|
"button",
|
|
2058
2083
|
{
|
|
2059
2084
|
className: "relative p-2.5 rounded-md hover:bg-accent/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-accent/50 transition flex items-center justify-center",
|
|
@@ -2076,7 +2101,7 @@ function PeriodsDropdown({
|
|
|
2076
2101
|
]
|
|
2077
2102
|
}
|
|
2078
2103
|
),
|
|
2079
|
-
/* @__PURE__ */ jsx19(AnimatePresence5, { children: open && /* @__PURE__ */
|
|
2104
|
+
/* @__PURE__ */ jsx19(AnimatePresence5, { children: open && /* @__PURE__ */ jsxs14(
|
|
2080
2105
|
motion6.div,
|
|
2081
2106
|
{
|
|
2082
2107
|
initial: "hidden",
|
|
@@ -2105,7 +2130,7 @@ function PeriodsDropdown({
|
|
|
2105
2130
|
ref: listRef,
|
|
2106
2131
|
className: "flex flex-col p-2 gap-1",
|
|
2107
2132
|
style: { maxHeight: 200, overflowY: "auto" },
|
|
2108
|
-
children: periods.map((p, idx) => /* @__PURE__ */
|
|
2133
|
+
children: periods.map((p, idx) => /* @__PURE__ */ jsxs14(
|
|
2109
2134
|
motion6.button,
|
|
2110
2135
|
{
|
|
2111
2136
|
className: "flex items-center justify-between w-full text-left px-3 py-2.5 rounded focus:outline-none transition-colors " + (activePeriods && activePeriods.includes(p) || p === activePeriod ? "bg-accent/10 font-medium" : "hover:bg-accent/15 focus-visible:ring-2 focus-visible:ring-accent/30"),
|
|
@@ -2136,7 +2161,7 @@ var PeriodsDropdown_default = PeriodsDropdown;
|
|
|
2136
2161
|
// src/components/charts/components/controls/ShowOnly.tsx
|
|
2137
2162
|
import { motion as motion7 } from "framer-motion";
|
|
2138
2163
|
import { Eye, EyeSlash } from "@phosphor-icons/react";
|
|
2139
|
-
import { Fragment as Fragment4, jsx as jsx20, jsxs as
|
|
2164
|
+
import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2140
2165
|
var ShowOnly = ({
|
|
2141
2166
|
showOnlyHighlighted,
|
|
2142
2167
|
setShowOnlyHighlighted,
|
|
@@ -2163,10 +2188,10 @@ var ShowOnly = ({
|
|
|
2163
2188
|
"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary/60",
|
|
2164
2189
|
!hasHighlights ? "opacity-60 cursor-not-allowed pointer-events-none" : showOnlyHighlighted ? "bg-primary/10 text-primary shadow-sm border border-primary/20" : "bg-transparent text-muted-foreground border border-transparent hover:bg-muted/10 hover:text-foreground"
|
|
2165
2190
|
),
|
|
2166
|
-
children: showOnlyHighlighted ? /* @__PURE__ */
|
|
2191
|
+
children: showOnlyHighlighted ? /* @__PURE__ */ jsxs15(Fragment4, { children: [
|
|
2167
2192
|
/* @__PURE__ */ jsx20(EyeSlash, { size: 16, weight: "regular" }),
|
|
2168
2193
|
/* @__PURE__ */ jsx20("span", { className: "sr-only", children: "Exibir todos" })
|
|
2169
|
-
] }) : /* @__PURE__ */
|
|
2194
|
+
] }) : /* @__PURE__ */ jsxs15(Fragment4, { children: [
|
|
2170
2195
|
/* @__PURE__ */ jsx20(Eye, { size: 16, weight: "bold" }),
|
|
2171
2196
|
/* @__PURE__ */ jsx20("span", { className: "sr-only", children: "Mostrar somente destacados" })
|
|
2172
2197
|
] })
|
|
@@ -2180,7 +2205,7 @@ var ShowOnly_default = ShowOnly;
|
|
|
2180
2205
|
// src/components/charts/components/controls/Highlights.tsx
|
|
2181
2206
|
import { motion as motion8, AnimatePresence as AnimatePresence6 } from "framer-motion";
|
|
2182
2207
|
import { CheckIcon as CheckIcon5 } from "@phosphor-icons/react/dist/ssr";
|
|
2183
|
-
import { jsx as jsx21, jsxs as
|
|
2208
|
+
import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2184
2209
|
var Highlights = ({
|
|
2185
2210
|
allKeys,
|
|
2186
2211
|
mapperConfig,
|
|
@@ -2231,7 +2256,7 @@ var Highlights = ({
|
|
|
2231
2256
|
className: pillClasses,
|
|
2232
2257
|
style: { minWidth: showFullLabel ? void 0 : 36 },
|
|
2233
2258
|
"aria-pressed": isHighlighted,
|
|
2234
|
-
children: /* @__PURE__ */
|
|
2259
|
+
children: /* @__PURE__ */ jsxs16(
|
|
2235
2260
|
motion8.button,
|
|
2236
2261
|
{
|
|
2237
2262
|
whileHover: { scale: isHighlighted ? 1.04 : 1.03 },
|
|
@@ -2293,7 +2318,7 @@ var Highlights_default = Highlights;
|
|
|
2293
2318
|
|
|
2294
2319
|
// src/components/charts/components/controls/CloseAllButton.tsx
|
|
2295
2320
|
import { XIcon as XIcon3 } from "@phosphor-icons/react/dist/ssr";
|
|
2296
|
-
import { jsx as jsx22, jsxs as
|
|
2321
|
+
import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2297
2322
|
var CloseAllButton = ({
|
|
2298
2323
|
count,
|
|
2299
2324
|
onCloseAll,
|
|
@@ -2329,7 +2354,7 @@ var CloseAllButton = ({
|
|
|
2329
2354
|
`;
|
|
2330
2355
|
};
|
|
2331
2356
|
if (variant === "inline") {
|
|
2332
|
-
return /* @__PURE__ */ jsx22("div", { className: "absolute top-4 right-4 z-30", children: /* @__PURE__ */
|
|
2357
|
+
return /* @__PURE__ */ jsx22("div", { className: "absolute top-4 right-4 z-30", children: /* @__PURE__ */ jsxs17(
|
|
2333
2358
|
ButtonBase,
|
|
2334
2359
|
{
|
|
2335
2360
|
variant: "ghost",
|
|
@@ -2347,7 +2372,7 @@ var CloseAllButton = ({
|
|
|
2347
2372
|
"div",
|
|
2348
2373
|
{
|
|
2349
2374
|
className: `${getPositionClasses()} animate-in fade-in slide-in-from-top-2 duration-300`,
|
|
2350
|
-
children: /* @__PURE__ */ jsx22("div", { children: /* @__PURE__ */
|
|
2375
|
+
children: /* @__PURE__ */ jsx22("div", { children: /* @__PURE__ */ jsxs17(
|
|
2351
2376
|
ButtonBase,
|
|
2352
2377
|
{
|
|
2353
2378
|
onClick: onCloseAll,
|
|
@@ -2382,7 +2407,7 @@ import React12, {
|
|
|
2382
2407
|
import { motion as motion9, AnimatePresence as AnimatePresence7 } from "framer-motion";
|
|
2383
2408
|
import { DotsSixVerticalIcon } from "@phosphor-icons/react";
|
|
2384
2409
|
import { XIcon as XIcon4 } from "@phosphor-icons/react/dist/ssr";
|
|
2385
|
-
import { Fragment as Fragment5, jsx as jsx23, jsxs as
|
|
2410
|
+
import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2386
2411
|
var ALIGNMENT_THRESHOLD = 25;
|
|
2387
2412
|
var GUIDE_THRESHOLD = 60;
|
|
2388
2413
|
var STRONG_SNAP_THRESHOLD = 35;
|
|
@@ -2475,7 +2500,7 @@ var DraggableTooltipComponent = ({
|
|
|
2475
2500
|
dataKey: "total",
|
|
2476
2501
|
name: "Total"
|
|
2477
2502
|
}) : defaultTotalFormatted;
|
|
2478
|
-
return /* @__PURE__ */
|
|
2503
|
+
return /* @__PURE__ */ jsxs18("div", { className: "text-sm", children: [
|
|
2479
2504
|
/* @__PURE__ */ jsx23("div", { className: "text-sm text-muted-foreground", children: "Total" }),
|
|
2480
2505
|
/* @__PURE__ */ jsx23(
|
|
2481
2506
|
"div",
|
|
@@ -2739,7 +2764,7 @@ var DraggableTooltipComponent = ({
|
|
|
2739
2764
|
},
|
|
2740
2765
|
[id, onClose]
|
|
2741
2766
|
);
|
|
2742
|
-
return /* @__PURE__ */
|
|
2767
|
+
return /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
2743
2768
|
dragging && alignmentGuides.map((guide, index) => {
|
|
2744
2769
|
const isHorizontal = guide.type === "horizontal";
|
|
2745
2770
|
const color = isHorizontal ? "#3b82f6" : "#ef4444";
|
|
@@ -2759,7 +2784,7 @@ var DraggableTooltipComponent = ({
|
|
|
2759
2784
|
guide.sourceTooltip.top + guide.sourceTooltip.height / 2,
|
|
2760
2785
|
guide.targetTooltip.top + guide.targetTooltip.height / 2
|
|
2761
2786
|
);
|
|
2762
|
-
return /* @__PURE__ */
|
|
2787
|
+
return /* @__PURE__ */ jsxs18("div", { children: [
|
|
2763
2788
|
/* @__PURE__ */ jsx23(
|
|
2764
2789
|
motion9.div,
|
|
2765
2790
|
{
|
|
@@ -2822,7 +2847,7 @@ var DraggableTooltipComponent = ({
|
|
|
2822
2847
|
)
|
|
2823
2848
|
] }, index);
|
|
2824
2849
|
}),
|
|
2825
|
-
/* @__PURE__ */ jsx23(AnimatePresence7, { children: /* @__PURE__ */
|
|
2850
|
+
/* @__PURE__ */ jsx23(AnimatePresence7, { children: /* @__PURE__ */ jsxs18(
|
|
2826
2851
|
motion9.div,
|
|
2827
2852
|
{
|
|
2828
2853
|
className: "fixed bg-card border border-border rounded-lg shadow-lg z-50 min-w-80 select-none",
|
|
@@ -2840,7 +2865,7 @@ var DraggableTooltipComponent = ({
|
|
|
2840
2865
|
role: "dialog",
|
|
2841
2866
|
"aria-label": title ? `Tooltip ${title}` : `Tooltip ${data.name}`,
|
|
2842
2867
|
children: [
|
|
2843
|
-
/* @__PURE__ */
|
|
2868
|
+
/* @__PURE__ */ jsxs18(
|
|
2844
2869
|
"div",
|
|
2845
2870
|
{
|
|
2846
2871
|
className: "flex items-center justify-between p-3 pb-2 border-b bg-muted/20 rounded-t-lg",
|
|
@@ -2862,8 +2887,8 @@ var DraggableTooltipComponent = ({
|
|
|
2862
2887
|
]
|
|
2863
2888
|
}
|
|
2864
2889
|
),
|
|
2865
|
-
/* @__PURE__ */ jsx23("div", { className: "px-3 py-2 bg-accent/5 border-l-4 border-primary", children: /* @__PURE__ */
|
|
2866
|
-
/* @__PURE__ */
|
|
2890
|
+
/* @__PURE__ */ jsx23("div", { className: "px-3 py-2 bg-accent/5 border-l-4 border-primary", children: /* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between gap-2", children: [
|
|
2891
|
+
/* @__PURE__ */ jsxs18("div", { children: [
|
|
2867
2892
|
/* @__PURE__ */ jsx23("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide", children: periodLabel }),
|
|
2868
2893
|
/* @__PURE__ */ jsx23("p", { className: "font-bold text-lg text-foreground mt-1 truncate", children: categoryFormatter ? categoryFormatter(String(data.name)) : data.name })
|
|
2869
2894
|
] }),
|
|
@@ -2876,7 +2901,7 @@ var DraggableTooltipComponent = ({
|
|
|
2876
2901
|
}
|
|
2877
2902
|
) })
|
|
2878
2903
|
] }) }),
|
|
2879
|
-
/* @__PURE__ */
|
|
2904
|
+
/* @__PURE__ */ jsxs18("div", { className: "p-3 pt-2 space-y-2", children: [
|
|
2880
2905
|
/* @__PURE__ */ jsx23("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2", children: dataLabel }),
|
|
2881
2906
|
useMemo4(
|
|
2882
2907
|
() => visibleKeys.map((key) => {
|
|
@@ -2900,7 +2925,7 @@ var DraggableTooltipComponent = ({
|
|
|
2900
2925
|
const pct = absDenominator > 0 ? Math.abs(val) / absDenominator * 100 : 0;
|
|
2901
2926
|
const isDimmed = highlightedSeries && highlightedSeries.size > 0 && !highlightedSeries.has(key);
|
|
2902
2927
|
const isHighlighted = highlightedSeries && highlightedSeries.has(key);
|
|
2903
|
-
return /* @__PURE__ */
|
|
2928
|
+
return /* @__PURE__ */ jsxs18(
|
|
2904
2929
|
"div",
|
|
2905
2930
|
{
|
|
2906
2931
|
role: "button",
|
|
@@ -2918,8 +2943,8 @@ var DraggableTooltipComponent = ({
|
|
|
2918
2943
|
border: isHighlighted ? `1px solid ${finalColors[key] || "#666"}22` : void 0
|
|
2919
2944
|
},
|
|
2920
2945
|
children: [
|
|
2921
|
-
/* @__PURE__ */
|
|
2922
|
-
/* @__PURE__ */
|
|
2946
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between", children: [
|
|
2947
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
|
|
2923
2948
|
/* @__PURE__ */ jsx23(
|
|
2924
2949
|
"div",
|
|
2925
2950
|
{
|
|
@@ -2937,7 +2962,7 @@ var DraggableTooltipComponent = ({
|
|
|
2937
2962
|
}
|
|
2938
2963
|
)
|
|
2939
2964
|
] }),
|
|
2940
|
-
/* @__PURE__ */
|
|
2965
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex items-baseline gap-2", children: [
|
|
2941
2966
|
/* @__PURE__ */ jsx23(
|
|
2942
2967
|
"span",
|
|
2943
2968
|
{
|
|
@@ -2975,7 +3000,7 @@ var DraggableTooltipComponent = ({
|
|
|
2975
3000
|
valueFormatter2
|
|
2976
3001
|
]
|
|
2977
3002
|
),
|
|
2978
|
-
/* @__PURE__ */ jsx23("div", { className: "mt-3 pt-2 border-t", children: /* @__PURE__ */
|
|
3003
|
+
/* @__PURE__ */ jsx23("div", { className: "mt-3 pt-2 border-t", children: /* @__PURE__ */ jsxs18("p", { className: "text-xs text-muted-foreground flex items-center gap-1", children: [
|
|
2979
3004
|
"Clique no ",
|
|
2980
3005
|
/* @__PURE__ */ jsx23(XIcon4, { size: 12 }),
|
|
2981
3006
|
" para remover"
|
|
@@ -3001,7 +3026,7 @@ DraggableTooltip.displayName = "DraggableTooltip";
|
|
|
3001
3026
|
var DraggableTooltip_default = DraggableTooltip;
|
|
3002
3027
|
|
|
3003
3028
|
// src/components/charts/components/tooltips/TooltipWithTotal.tsx
|
|
3004
|
-
import { jsx as jsx24, jsxs as
|
|
3029
|
+
import { jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3005
3030
|
var RechartTooltipWithTotal = ({
|
|
3006
3031
|
active,
|
|
3007
3032
|
payload,
|
|
@@ -3041,7 +3066,7 @@ var RechartTooltipWithTotal = ({
|
|
|
3041
3066
|
(sum, p) => sum + Math.abs(typeof p.value === "number" ? p.value : 0),
|
|
3042
3067
|
0
|
|
3043
3068
|
);
|
|
3044
|
-
return /* @__PURE__ */
|
|
3069
|
+
return /* @__PURE__ */ jsxs19(
|
|
3045
3070
|
"div",
|
|
3046
3071
|
{
|
|
3047
3072
|
role: "dialog",
|
|
@@ -3049,12 +3074,12 @@ var RechartTooltipWithTotal = ({
|
|
|
3049
3074
|
className: "bg-card border border-border rounded-lg p-3 shadow-2xl max-w-xs",
|
|
3050
3075
|
style: { minWidth: 220 },
|
|
3051
3076
|
children: [
|
|
3052
|
-
/* @__PURE__ */
|
|
3053
|
-
/* @__PURE__ */
|
|
3077
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex items-start justify-between mb-2", children: [
|
|
3078
|
+
/* @__PURE__ */ jsxs19("div", { className: "pr-2", children: [
|
|
3054
3079
|
/* @__PURE__ */ jsx24("p", { className: "text-xs text-muted-foreground", children: periodLabel }),
|
|
3055
3080
|
/* @__PURE__ */ jsx24("p", { className: "font-medium text-foreground truncate", children: displayLabel })
|
|
3056
3081
|
] }),
|
|
3057
|
-
/* @__PURE__ */
|
|
3082
|
+
/* @__PURE__ */ jsxs19("div", { className: "text-right ml-3", children: [
|
|
3058
3083
|
/* @__PURE__ */ jsx24("p", { className: "text-xs text-muted-foreground", children: totalLabel }),
|
|
3059
3084
|
/* @__PURE__ */ jsx24(
|
|
3060
3085
|
"p",
|
|
@@ -3088,9 +3113,9 @@ var RechartTooltipWithTotal = ({
|
|
|
3088
3113
|
dataKey: entry.dataKey,
|
|
3089
3114
|
name: entry.name
|
|
3090
3115
|
}) : defaultFormatted;
|
|
3091
|
-
return /* @__PURE__ */
|
|
3092
|
-
/* @__PURE__ */
|
|
3093
|
-
/* @__PURE__ */
|
|
3116
|
+
return /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-1", children: [
|
|
3117
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between text-sm", children: [
|
|
3118
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2 truncate", children: [
|
|
3094
3119
|
/* @__PURE__ */ jsx24(
|
|
3095
3120
|
"span",
|
|
3096
3121
|
{
|
|
@@ -3101,7 +3126,7 @@ var RechartTooltipWithTotal = ({
|
|
|
3101
3126
|
),
|
|
3102
3127
|
/* @__PURE__ */ jsx24("span", { className: "text-muted-foreground truncate", children: entry.name })
|
|
3103
3128
|
] }),
|
|
3104
|
-
/* @__PURE__ */
|
|
3129
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex items-baseline gap-3 ml-3", children: [
|
|
3105
3130
|
/* @__PURE__ */ jsx24(
|
|
3106
3131
|
"span",
|
|
3107
3132
|
{
|
|
@@ -3131,7 +3156,7 @@ var RechartTooltipWithTotal = ({
|
|
|
3131
3156
|
var TooltipWithTotal_default = RechartTooltipWithTotal;
|
|
3132
3157
|
|
|
3133
3158
|
// src/components/charts/components/tooltips/TooltipSimple.tsx
|
|
3134
|
-
import { jsx as jsx25, jsxs as
|
|
3159
|
+
import { jsx as jsx25, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3135
3160
|
var TooltipSimple = ({
|
|
3136
3161
|
active,
|
|
3137
3162
|
payload,
|
|
@@ -3143,7 +3168,7 @@ var TooltipSimple = ({
|
|
|
3143
3168
|
}) => {
|
|
3144
3169
|
if (!active || !payload || payload.length === 0) return null;
|
|
3145
3170
|
const displayLabel = categoryFormatter ? categoryFormatter(String(label ?? "")) : label;
|
|
3146
|
-
return /* @__PURE__ */
|
|
3171
|
+
return /* @__PURE__ */ jsxs20(
|
|
3147
3172
|
"div",
|
|
3148
3173
|
{
|
|
3149
3174
|
role: "dialog",
|
|
@@ -3151,7 +3176,7 @@ var TooltipSimple = ({
|
|
|
3151
3176
|
className: "bg-card border border-border rounded-lg p-3 shadow-2xl max-w-[280px]",
|
|
3152
3177
|
style: { minWidth: 220 },
|
|
3153
3178
|
children: [
|
|
3154
|
-
/* @__PURE__ */ jsx25("div", { className: "mb-2", children: /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-between gap-3", children: /* @__PURE__ */
|
|
3179
|
+
/* @__PURE__ */ jsx25("div", { className: "mb-2", children: /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-between gap-3", children: /* @__PURE__ */ jsxs20("div", { className: "min-w-0", children: [
|
|
3155
3180
|
/* @__PURE__ */ jsx25("p", { className: "text-xs text-muted-foreground", children: periodLabel }),
|
|
3156
3181
|
/* @__PURE__ */ jsx25("p", { className: "font-medium text-foreground truncate", children: displayLabel })
|
|
3157
3182
|
] }) }) }),
|
|
@@ -3176,12 +3201,12 @@ var TooltipSimple = ({
|
|
|
3176
3201
|
dataKey: entry.dataKey,
|
|
3177
3202
|
name: entry.name
|
|
3178
3203
|
}) : defaultFormatted;
|
|
3179
|
-
return /* @__PURE__ */
|
|
3204
|
+
return /* @__PURE__ */ jsxs20(
|
|
3180
3205
|
"div",
|
|
3181
3206
|
{
|
|
3182
3207
|
className: "flex items-center justify-between text-sm px-2 py-2 bg-card/0 hover:bg-muted transition-colors",
|
|
3183
3208
|
children: [
|
|
3184
|
-
/* @__PURE__ */
|
|
3209
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
3185
3210
|
/* @__PURE__ */ jsx25(
|
|
3186
3211
|
"span",
|
|
3187
3212
|
{
|
|
@@ -3211,7 +3236,7 @@ var TooltipSimple = ({
|
|
|
3211
3236
|
var TooltipSimple_default = TooltipSimple;
|
|
3212
3237
|
|
|
3213
3238
|
// src/components/charts/utils/pillLabelRenderer.tsx
|
|
3214
|
-
import { jsx as jsx26, jsxs as
|
|
3239
|
+
import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3215
3240
|
var formatCompactNumber = (value) => {
|
|
3216
3241
|
const isNegative = value < 0;
|
|
3217
3242
|
const absValue = Math.abs(value);
|
|
@@ -3305,7 +3330,7 @@ var renderPillLabel = (color, variant, valueFormatter2) => {
|
|
|
3305
3330
|
textColor = "#374151";
|
|
3306
3331
|
}
|
|
3307
3332
|
}
|
|
3308
|
-
return /* @__PURE__ */
|
|
3333
|
+
return /* @__PURE__ */ jsxs21("g", { children: [
|
|
3309
3334
|
/* @__PURE__ */ jsx26(
|
|
3310
3335
|
"rect",
|
|
3311
3336
|
{
|
|
@@ -3339,7 +3364,7 @@ var renderPillLabel = (color, variant, valueFormatter2) => {
|
|
|
3339
3364
|
var pillLabelRenderer_default = renderPillLabel;
|
|
3340
3365
|
|
|
3341
3366
|
// src/components/charts/Chart.tsx
|
|
3342
|
-
import { jsx as jsx27, jsxs as
|
|
3367
|
+
import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3343
3368
|
var DEFAULT_COLORS = ["#55af7d", "#8e68ff", "#2273e1"];
|
|
3344
3369
|
var Chart = ({
|
|
3345
3370
|
data,
|
|
@@ -3771,7 +3796,7 @@ var Chart = ({
|
|
|
3771
3796
|
overflowY: "hidden",
|
|
3772
3797
|
minWidth: 0
|
|
3773
3798
|
},
|
|
3774
|
-
children: /* @__PURE__ */
|
|
3799
|
+
children: /* @__PURE__ */ jsxs22(
|
|
3775
3800
|
"div",
|
|
3776
3801
|
{
|
|
3777
3802
|
className: cn("rounded-lg bg-card p-2 relative", className),
|
|
@@ -3792,7 +3817,7 @@ var Chart = ({
|
|
|
3792
3817
|
children: /* @__PURE__ */ jsx27("h3", { className: titleClassName, children: title })
|
|
3793
3818
|
}
|
|
3794
3819
|
),
|
|
3795
|
-
allKeys.length > 0 && (finalEnableHighlights || finalEnableShowOnly) && /* @__PURE__ */
|
|
3820
|
+
allKeys.length > 0 && (finalEnableHighlights || finalEnableShowOnly) && /* @__PURE__ */ jsxs22(
|
|
3796
3821
|
"div",
|
|
3797
3822
|
{
|
|
3798
3823
|
className: "flex items-center w-full",
|
|
@@ -3867,7 +3892,7 @@ var Chart = ({
|
|
|
3867
3892
|
)
|
|
3868
3893
|
}
|
|
3869
3894
|
),
|
|
3870
|
-
/* @__PURE__ */ jsx27(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */
|
|
3895
|
+
/* @__PURE__ */ jsx27(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs22(
|
|
3871
3896
|
ComposedChart,
|
|
3872
3897
|
{
|
|
3873
3898
|
data: processedData,
|
|
@@ -3928,9 +3953,7 @@ var Chart = ({
|
|
|
3928
3953
|
label: yAxisLabel ? {
|
|
3929
3954
|
value: yAxisLabel,
|
|
3930
3955
|
angle: -90,
|
|
3931
|
-
|
|
3932
|
-
// to avoid overlapping the Y values / bars.
|
|
3933
|
-
position: "left",
|
|
3956
|
+
position: "leftTop",
|
|
3934
3957
|
style: {
|
|
3935
3958
|
fontSize: 12,
|
|
3936
3959
|
fill: "hsl(var(--muted-foreground))",
|
|
@@ -4151,7 +4174,7 @@ import {
|
|
|
4151
4174
|
Legend as Legend2,
|
|
4152
4175
|
LabelList as LabelList2
|
|
4153
4176
|
} from "recharts";
|
|
4154
|
-
import { jsx as jsx28, jsxs as
|
|
4177
|
+
import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4155
4178
|
var DEFAULT_COLORS2 = ["#55af7d", "#8e68ff", "#2273e1"];
|
|
4156
4179
|
var BarChart = ({
|
|
4157
4180
|
data,
|
|
@@ -4572,10 +4595,10 @@ var BarChart = ({
|
|
|
4572
4595
|
label
|
|
4573
4596
|
}) => {
|
|
4574
4597
|
if (!active || !payload) return null;
|
|
4575
|
-
return /* @__PURE__ */
|
|
4598
|
+
return /* @__PURE__ */ jsxs23("div", { className: "bg-card border border-border rounded-lg p-3 shadow-lg", children: [
|
|
4576
4599
|
/* @__PURE__ */ jsx28("p", { className: "font-medium text-foreground mb-2", children: label }),
|
|
4577
4600
|
payload.map(
|
|
4578
|
-
(entry, index) => /* @__PURE__ */
|
|
4601
|
+
(entry, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2 text-sm", children: [
|
|
4579
4602
|
/* @__PURE__ */ jsx28(
|
|
4580
4603
|
"div",
|
|
4581
4604
|
{
|
|
@@ -4583,7 +4606,7 @@ var BarChart = ({
|
|
|
4583
4606
|
style: { backgroundColor: entry.color }
|
|
4584
4607
|
}
|
|
4585
4608
|
),
|
|
4586
|
-
/* @__PURE__ */
|
|
4609
|
+
/* @__PURE__ */ jsxs23("span", { className: "text-muted-foreground", children: [
|
|
4587
4610
|
entry.name,
|
|
4588
4611
|
":"
|
|
4589
4612
|
] }),
|
|
@@ -4604,7 +4627,7 @@ var BarChart = ({
|
|
|
4604
4627
|
return `${baseClasses} text-left`;
|
|
4605
4628
|
}
|
|
4606
4629
|
};
|
|
4607
|
-
return /* @__PURE__ */
|
|
4630
|
+
return /* @__PURE__ */ jsxs23(
|
|
4608
4631
|
"div",
|
|
4609
4632
|
{
|
|
4610
4633
|
className: cn("rounded-lg bg-card p-4 relative", className),
|
|
@@ -4614,7 +4637,7 @@ var BarChart = ({
|
|
|
4614
4637
|
},
|
|
4615
4638
|
children: [
|
|
4616
4639
|
title && /* @__PURE__ */ jsx28("div", { style: { paddingLeft: `${resolvedContainerPaddingLeft}px` }, children: /* @__PURE__ */ jsx28("h3", { className: getTitleClassName(titlePosition), children: title }) }),
|
|
4617
|
-
/* @__PURE__ */
|
|
4640
|
+
/* @__PURE__ */ jsxs23(
|
|
4618
4641
|
RechartsBarChart,
|
|
4619
4642
|
{
|
|
4620
4643
|
data: processedData,
|
|
@@ -4727,7 +4750,7 @@ var BarChart = ({
|
|
|
4727
4750
|
guide.sourceTooltip.top + guide.sourceTooltip.height / 2,
|
|
4728
4751
|
guide.targetTooltip.top + guide.targetTooltip.height / 2
|
|
4729
4752
|
);
|
|
4730
|
-
return /* @__PURE__ */
|
|
4753
|
+
return /* @__PURE__ */ jsxs23("div", { children: [
|
|
4731
4754
|
/* @__PURE__ */ jsx28(
|
|
4732
4755
|
"div",
|
|
4733
4756
|
{
|
|
@@ -4825,7 +4848,7 @@ import {
|
|
|
4825
4848
|
Legend as Legend3,
|
|
4826
4849
|
LabelList as LabelList3
|
|
4827
4850
|
} from "recharts";
|
|
4828
|
-
import { jsx as jsx29, jsxs as
|
|
4851
|
+
import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4829
4852
|
var defaultData = [
|
|
4830
4853
|
{ name: "A", value: 100 },
|
|
4831
4854
|
{ name: "B", value: 200 },
|
|
@@ -5207,7 +5230,7 @@ var CustomLineChart = ({
|
|
|
5207
5230
|
return "text-left";
|
|
5208
5231
|
}
|
|
5209
5232
|
};
|
|
5210
|
-
return /* @__PURE__ */ jsx29("div", { className: cn("relative", className), children: /* @__PURE__ */
|
|
5233
|
+
return /* @__PURE__ */ jsx29("div", { className: cn("relative", className), children: /* @__PURE__ */ jsxs24(
|
|
5211
5234
|
"div",
|
|
5212
5235
|
{
|
|
5213
5236
|
className: "rounded-lg bg-card p-4 relative border border-border",
|
|
@@ -5218,7 +5241,7 @@ var CustomLineChart = ({
|
|
|
5218
5241
|
onClick: handleChartBackgroundClick,
|
|
5219
5242
|
children: [
|
|
5220
5243
|
title && /* @__PURE__ */ jsx29("div", { style: { paddingLeft: `${resolvedContainerPaddingLeft}px` }, children: /* @__PURE__ */ jsx29("div", { className: cn("mb-4", getTitleClass()), children: /* @__PURE__ */ jsx29("h3", { className: "text-lg font-semibold text-foreground", children: title }) }) }),
|
|
5221
|
-
/* @__PURE__ */
|
|
5244
|
+
/* @__PURE__ */ jsxs24(
|
|
5222
5245
|
RechartsLineChart,
|
|
5223
5246
|
{
|
|
5224
5247
|
data,
|
|
@@ -5309,7 +5332,7 @@ var CustomLineChart = ({
|
|
|
5309
5332
|
guide.sourceTooltip.top + guide.sourceTooltip.height / 2,
|
|
5310
5333
|
guide.targetTooltip.top + guide.targetTooltip.height / 2
|
|
5311
5334
|
);
|
|
5312
|
-
return /* @__PURE__ */
|
|
5335
|
+
return /* @__PURE__ */ jsxs24("div", { children: [
|
|
5313
5336
|
/* @__PURE__ */ jsx29(
|
|
5314
5337
|
"div",
|
|
5315
5338
|
{
|
|
@@ -5402,7 +5425,7 @@ import {
|
|
|
5402
5425
|
Tooltip as Tooltip4,
|
|
5403
5426
|
Legend as Legend4
|
|
5404
5427
|
} from "recharts";
|
|
5405
|
-
import { jsx as jsx30, jsxs as
|
|
5428
|
+
import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5406
5429
|
var defaultData2 = [
|
|
5407
5430
|
{ name: "Vendas", value: 4e3 },
|
|
5408
5431
|
{ name: "Marketing", value: 3e3 },
|
|
@@ -5469,7 +5492,7 @@ var CustomPieChart = ({
|
|
|
5469
5492
|
centerY = "50%"
|
|
5470
5493
|
}) => {
|
|
5471
5494
|
const finalColors = colors2 || DEFAULT_COLORS4;
|
|
5472
|
-
return /* @__PURE__ */ jsx30("div", { className: cn("w-full rounded-lg bg-card p-4", className), children: /* @__PURE__ */ jsx30(ResponsiveContainer2, { width, height, children: /* @__PURE__ */
|
|
5495
|
+
return /* @__PURE__ */ jsx30("div", { className: cn("w-full rounded-lg bg-card p-4", className), children: /* @__PURE__ */ jsx30(ResponsiveContainer2, { width, height, children: /* @__PURE__ */ jsxs25(RechartsPieChart, { children: [
|
|
5473
5496
|
/* @__PURE__ */ jsx30(
|
|
5474
5497
|
Pie,
|
|
5475
5498
|
{
|
|
@@ -5965,7 +5988,7 @@ import {
|
|
|
5965
5988
|
FilePptIcon,
|
|
5966
5989
|
FileDocIcon
|
|
5967
5990
|
} from "@phosphor-icons/react";
|
|
5968
|
-
import { Fragment as Fragment6, jsx as jsx35, jsxs as
|
|
5991
|
+
import { Fragment as Fragment6, jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5969
5992
|
var formatFileSize = (bytes) => {
|
|
5970
5993
|
if (bytes === 0) return "0 Bytes";
|
|
5971
5994
|
const k = 1024;
|
|
@@ -6175,7 +6198,7 @@ var FileUploader = React18.forwardRef(
|
|
|
6175
6198
|
};
|
|
6176
6199
|
const acceptString = accept.join(",");
|
|
6177
6200
|
const defaultSubtext = dropzoneSubtext || `Formatos: ${accept.join(", ")}. M\xE1ximo: ${formatFileSize(maxSize)}`;
|
|
6178
|
-
return /* @__PURE__ */ jsx35("div", { ref, className: cn("w-full", className), ...props, children: /* @__PURE__ */
|
|
6201
|
+
return /* @__PURE__ */ jsx35("div", { ref, className: cn("w-full", className), ...props, children: /* @__PURE__ */ jsxs26(
|
|
6179
6202
|
motion10.div,
|
|
6180
6203
|
{
|
|
6181
6204
|
className: cn(
|
|
@@ -6266,7 +6289,7 @@ var FileUploader = React18.forwardRef(
|
|
|
6266
6289
|
children: defaultSubtext
|
|
6267
6290
|
}
|
|
6268
6291
|
),
|
|
6269
|
-
/* @__PURE__ */ jsx35(AnimatePresence8, { children: files.length > 0 && /* @__PURE__ */
|
|
6292
|
+
/* @__PURE__ */ jsx35(AnimatePresence8, { children: files.length > 0 && /* @__PURE__ */ jsxs26(
|
|
6270
6293
|
motion10.div,
|
|
6271
6294
|
{
|
|
6272
6295
|
initial: { opacity: 0, scale: 0.8, y: 10 },
|
|
@@ -6284,7 +6307,7 @@ var FileUploader = React18.forwardRef(
|
|
|
6284
6307
|
transition: { duration: 0.3 },
|
|
6285
6308
|
children: [
|
|
6286
6309
|
/* @__PURE__ */ jsx35("div", { className: "h-4 w-4 text-primary flex items-center justify-center", children: /* @__PURE__ */ jsx35(CheckIcon6, { size: 16, className: "text-emerald-500" }) }),
|
|
6287
|
-
/* @__PURE__ */
|
|
6310
|
+
/* @__PURE__ */ jsxs26(
|
|
6288
6311
|
motion10.span,
|
|
6289
6312
|
{
|
|
6290
6313
|
className: "text-sm font-semibold text-primary",
|
|
@@ -6307,15 +6330,15 @@ var FileUploader = React18.forwardRef(
|
|
|
6307
6330
|
initial: animate ? { opacity: 0, y: 10 } : false,
|
|
6308
6331
|
animate: { opacity: 1, y: 0 },
|
|
6309
6332
|
transition: { delay: 0.3 },
|
|
6310
|
-
children: /* @__PURE__ */
|
|
6311
|
-
/* @__PURE__ */
|
|
6333
|
+
children: /* @__PURE__ */ jsxs26("div", { children: [
|
|
6334
|
+
/* @__PURE__ */ jsxs26("h4", { className: "mb-3 text-sm font-medium text-muted-foreground", children: [
|
|
6312
6335
|
"Arquivos selecionados (",
|
|
6313
6336
|
files.length,
|
|
6314
6337
|
"/",
|
|
6315
6338
|
maxFiles,
|
|
6316
6339
|
")"
|
|
6317
6340
|
] }),
|
|
6318
|
-
/* @__PURE__ */ jsx35("div", { className: "space-y-2 overflow-y-auto max-h-44", children: /* @__PURE__ */ jsx35(AnimatePresence8, { mode: "popLayout", children: files.map((file, index) => /* @__PURE__ */
|
|
6341
|
+
/* @__PURE__ */ jsx35("div", { className: "space-y-2 overflow-y-auto max-h-44", children: /* @__PURE__ */ jsx35(AnimatePresence8, { mode: "popLayout", children: files.map((file, index) => /* @__PURE__ */ jsxs26(
|
|
6319
6342
|
motion10.div,
|
|
6320
6343
|
{
|
|
6321
6344
|
layout: true,
|
|
@@ -6349,7 +6372,7 @@ var FileUploader = React18.forwardRef(
|
|
|
6349
6372
|
// Ícone baseado no tipo de arquivo
|
|
6350
6373
|
getFileTypeIcon(file)
|
|
6351
6374
|
) }),
|
|
6352
|
-
/* @__PURE__ */
|
|
6375
|
+
/* @__PURE__ */ jsxs26("div", { className: "min-w-0 flex-1", children: [
|
|
6353
6376
|
/* @__PURE__ */ jsx35(
|
|
6354
6377
|
"p",
|
|
6355
6378
|
{
|
|
@@ -6358,9 +6381,9 @@ var FileUploader = React18.forwardRef(
|
|
|
6358
6381
|
children: file.name
|
|
6359
6382
|
}
|
|
6360
6383
|
),
|
|
6361
|
-
/* @__PURE__ */
|
|
6384
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [
|
|
6362
6385
|
/* @__PURE__ */ jsx35("span", { children: formatFileSize(file.size) }),
|
|
6363
|
-
file.type && /* @__PURE__ */
|
|
6386
|
+
file.type && /* @__PURE__ */ jsxs26(Fragment6, { children: [
|
|
6364
6387
|
/* @__PURE__ */ jsx35("span", { children: "\u2022" }),
|
|
6365
6388
|
/* @__PURE__ */ jsx35("span", { className: "uppercase", children: getFileExtension(file.name) })
|
|
6366
6389
|
] })
|
|
@@ -6405,7 +6428,7 @@ FileUploader.displayName = "FileUploader";
|
|
|
6405
6428
|
// src/components/ui/feedback/AlertDialogBase.tsx
|
|
6406
6429
|
import * as React19 from "react";
|
|
6407
6430
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
6408
|
-
import { jsx as jsx36, jsxs as
|
|
6431
|
+
import { jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6409
6432
|
var AlertDialogBase = AlertDialogPrimitive.Root;
|
|
6410
6433
|
var AlertDialogTriggerBase = AlertDialogPrimitive.Trigger;
|
|
6411
6434
|
var AlertDialogPortalBase = AlertDialogPrimitive.Portal;
|
|
@@ -6422,7 +6445,7 @@ var AlertDialogOverlayBase = React19.forwardRef(({ className, testid = "alertdia
|
|
|
6422
6445
|
}
|
|
6423
6446
|
));
|
|
6424
6447
|
AlertDialogOverlayBase.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
6425
|
-
var AlertDialogContentBase = React19.forwardRef(({ className, testid = "alertdialog-content", ...props }, ref) => /* @__PURE__ */
|
|
6448
|
+
var AlertDialogContentBase = React19.forwardRef(({ className, testid = "alertdialog-content", ...props }, ref) => /* @__PURE__ */ jsxs27(AlertDialogPortalBase, { children: [
|
|
6426
6449
|
/* @__PURE__ */ jsx36(AlertDialogOverlayBase, {}),
|
|
6427
6450
|
/* @__PURE__ */ jsx36(
|
|
6428
6451
|
AlertDialogPrimitive.Content,
|
|
@@ -6510,7 +6533,7 @@ AlertDialogCancelBase.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
|
6510
6533
|
// src/components/ui/feedback/DestructiveDialog.tsx
|
|
6511
6534
|
import * as React20 from "react";
|
|
6512
6535
|
import { XCircleIcon } from "@phosphor-icons/react";
|
|
6513
|
-
import { jsx as jsx37, jsxs as
|
|
6536
|
+
import { jsx as jsx37, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6514
6537
|
var DestructiveDialog = ({
|
|
6515
6538
|
title,
|
|
6516
6539
|
description,
|
|
@@ -6520,21 +6543,21 @@ var DestructiveDialog = ({
|
|
|
6520
6543
|
triggerContent
|
|
6521
6544
|
}) => {
|
|
6522
6545
|
const triggerEl = React20.isValidElement(children) ? /* @__PURE__ */ jsx37(AlertDialogTriggerBase, { asChild: true, children }) : /* @__PURE__ */ jsx37(AlertDialogTriggerBase, { children: /* @__PURE__ */ jsx37(ButtonBase, { variant: "destructive", children: triggerContent ?? "Excluir" }) });
|
|
6523
|
-
return /* @__PURE__ */
|
|
6546
|
+
return /* @__PURE__ */ jsxs28(AlertDialogBase, { children: [
|
|
6524
6547
|
triggerEl,
|
|
6525
|
-
/* @__PURE__ */
|
|
6548
|
+
/* @__PURE__ */ jsxs28(
|
|
6526
6549
|
AlertDialogContentBase,
|
|
6527
6550
|
{
|
|
6528
6551
|
className: cn("border border-destructive bg-background"),
|
|
6529
6552
|
children: [
|
|
6530
|
-
/* @__PURE__ */
|
|
6553
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-start gap-4", children: [
|
|
6531
6554
|
/* @__PURE__ */ jsx37("div", { className: "flex items-center justify-center w-10 h-10 rounded-full ring-1 ring-destructive/30", children: /* @__PURE__ */ jsx37(XCircleIcon, { className: "w-6 h-6 text-destructive" }) }),
|
|
6532
|
-
/* @__PURE__ */
|
|
6555
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex-1", children: [
|
|
6533
6556
|
/* @__PURE__ */ jsx37(AlertDialogTitleBase, { className: "text-lg sm:text-xl font-semibold text-destructive", children: title }),
|
|
6534
6557
|
/* @__PURE__ */ jsx37(AlertDialogDescriptionBase, { className: "mt-2 text-sm text-muted-foreground", children: description })
|
|
6535
6558
|
] })
|
|
6536
6559
|
] }),
|
|
6537
|
-
/* @__PURE__ */
|
|
6560
|
+
/* @__PURE__ */ jsxs28(AlertDialogFooterBase, { className: "mt-2 flex justify-end gap-3", children: [
|
|
6538
6561
|
/* @__PURE__ */ jsx37(
|
|
6539
6562
|
AlertDialogCancelBase,
|
|
6540
6563
|
{
|
|
@@ -6566,7 +6589,7 @@ var DestructiveDialog = ({
|
|
|
6566
6589
|
// src/components/ui/feedback/LoadingBase.tsx
|
|
6567
6590
|
import * as React21 from "react";
|
|
6568
6591
|
import { cva as cva3 } from "class-variance-authority";
|
|
6569
|
-
import { jsx as jsx38, jsxs as
|
|
6592
|
+
import { jsx as jsx38, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6570
6593
|
var loadingVariants = cva3(
|
|
6571
6594
|
"rounded-full border-2 animate-spin border-muted border-t-primary",
|
|
6572
6595
|
{
|
|
@@ -6640,7 +6663,7 @@ var LoadingBase = React21.forwardRef(
|
|
|
6640
6663
|
}, []);
|
|
6641
6664
|
const renderSpinner = () => {
|
|
6642
6665
|
if (variant === "dots") {
|
|
6643
|
-
return /* @__PURE__ */
|
|
6666
|
+
return /* @__PURE__ */ jsxs29("div", { className: cn(dotsVariants({ size })), "aria-hidden": "true", children: [
|
|
6644
6667
|
/* @__PURE__ */ jsx38(
|
|
6645
6668
|
"div",
|
|
6646
6669
|
{
|
|
@@ -6687,7 +6710,7 @@ var LoadingBase = React21.forwardRef(
|
|
|
6687
6710
|
}
|
|
6688
6711
|
);
|
|
6689
6712
|
};
|
|
6690
|
-
const loadingContent = /* @__PURE__ */
|
|
6713
|
+
const loadingContent = /* @__PURE__ */ jsxs29("div", { className: "flex flex-col items-center gap-4", children: [
|
|
6691
6714
|
renderSpinner(),
|
|
6692
6715
|
message && /* @__PURE__ */ jsx38("p", { className: "text-sm font-medium text-muted-foreground animate-pulse", children: message })
|
|
6693
6716
|
] });
|
|
@@ -6738,7 +6761,7 @@ LoadingBase.displayName = "LoadingBase";
|
|
|
6738
6761
|
import * as React22 from "react";
|
|
6739
6762
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
6740
6763
|
import { XIcon as XIcon6 } from "@phosphor-icons/react";
|
|
6741
|
-
import { jsx as jsx39, jsxs as
|
|
6764
|
+
import { jsx as jsx39, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6742
6765
|
var ModalBase = DialogPrimitive2.Root;
|
|
6743
6766
|
var ModalTriggerBase = DialogPrimitive2.Trigger;
|
|
6744
6767
|
var ModalPortalBase = DialogPrimitive2.Portal;
|
|
@@ -6768,7 +6791,7 @@ var ModalContentBase = React22.forwardRef(
|
|
|
6768
6791
|
}, ref) => {
|
|
6769
6792
|
const sizeClass = size === "sm" ? "max-w-md" : size === "lg" ? "max-w-4xl" : size === "full" ? "w-full max-w-[calc(100%-2rem)]" : "max-w-2xl";
|
|
6770
6793
|
const positionClass = centered ? "left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%]" : "left-[50%] top-20 translate-x-[-50%] translate-y-0 sm:translate-y-0";
|
|
6771
|
-
return /* @__PURE__ */
|
|
6794
|
+
return /* @__PURE__ */ jsxs30(ModalPortalBase, { children: [
|
|
6772
6795
|
/* @__PURE__ */ jsx39(
|
|
6773
6796
|
ModalOverlayBase,
|
|
6774
6797
|
{
|
|
@@ -6794,7 +6817,7 @@ var ModalContentBase = React22.forwardRef(
|
|
|
6794
6817
|
}
|
|
6795
6818
|
}
|
|
6796
6819
|
),
|
|
6797
|
-
/* @__PURE__ */
|
|
6820
|
+
/* @__PURE__ */ jsxs30(
|
|
6798
6821
|
DialogPrimitive2.Content,
|
|
6799
6822
|
{
|
|
6800
6823
|
ref,
|
|
@@ -6809,7 +6832,7 @@ var ModalContentBase = React22.forwardRef(
|
|
|
6809
6832
|
...props,
|
|
6810
6833
|
children: [
|
|
6811
6834
|
children,
|
|
6812
|
-
/* @__PURE__ */
|
|
6835
|
+
/* @__PURE__ */ jsxs30(DialogPrimitive2.Close, { className: "absolute right-3 top-3 sm:right-4 sm:top-4 rounded-md bg-muted/10 p-1.5 opacity-80 hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none z-10 hover:bg-muted/20 transition-colors", children: [
|
|
6813
6836
|
/* @__PURE__ */ jsx39(XIcon6, { className: "h-5 w-5 sm:h-4 sm:w-4 text-foreground" }),
|
|
6814
6837
|
/* @__PURE__ */ jsx39("span", { className: "sr-only", children: "Close" })
|
|
6815
6838
|
] })
|
|
@@ -6873,7 +6896,7 @@ ModalDescriptionBase.displayName = DialogPrimitive2.Description.displayName;
|
|
|
6873
6896
|
// src/components/ui/feedback/ProgressBase.tsx
|
|
6874
6897
|
import * as React23 from "react";
|
|
6875
6898
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
6876
|
-
import { jsx as jsx40, jsxs as
|
|
6899
|
+
import { jsx as jsx40, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6877
6900
|
var ProgressBase = React23.forwardRef(
|
|
6878
6901
|
({
|
|
6879
6902
|
className,
|
|
@@ -6923,15 +6946,15 @@ var ProgressBase = React23.forwardRef(
|
|
|
6923
6946
|
);
|
|
6924
6947
|
case "bar":
|
|
6925
6948
|
default:
|
|
6926
|
-
return /* @__PURE__ */
|
|
6949
|
+
return /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-1 w-full min-w-[150px]", children: [
|
|
6927
6950
|
label && /* @__PURE__ */ jsx40(LabelBase_default, { className: "py-2", children: label }),
|
|
6928
|
-
/* @__PURE__ */
|
|
6929
|
-
showValue && valuePosition === "left" && /* @__PURE__ */
|
|
6951
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2", children: [
|
|
6952
|
+
showValue && valuePosition === "left" && /* @__PURE__ */ jsxs31("div", { className: "w-12 text-sm text-right font-extrabold", children: [
|
|
6930
6953
|
Math.round(value || 0),
|
|
6931
6954
|
"%"
|
|
6932
6955
|
] }),
|
|
6933
6956
|
leftIcon && /* @__PURE__ */ jsx40("div", { className: "flex items-center justify-center", children: leftIcon }),
|
|
6934
|
-
/* @__PURE__ */
|
|
6957
|
+
/* @__PURE__ */ jsxs31(
|
|
6935
6958
|
ProgressPrimitive.Root,
|
|
6936
6959
|
{
|
|
6937
6960
|
ref,
|
|
@@ -6947,7 +6970,6 @@ var ProgressBase = React23.forwardRef(
|
|
|
6947
6970
|
{
|
|
6948
6971
|
className: cn(
|
|
6949
6972
|
"h-full transition-all duration-500 ease-in-out rounded-lg",
|
|
6950
|
-
// quando não usa autocolor, Indicator deve mostrar a cor primária
|
|
6951
6973
|
autocolor && autocolor.length >= 2 ? "bg-transparent" : "bg-primary"
|
|
6952
6974
|
),
|
|
6953
6975
|
style: { width: `${indicatorWidth}%` }
|
|
@@ -6984,13 +7006,13 @@ var ProgressBase = React23.forwardRef(
|
|
|
6984
7006
|
{
|
|
6985
7007
|
"aria-hidden": "true",
|
|
6986
7008
|
className: "absolute top-0 bottom-0 w-0.5 bg-black/70 transition-all duration-500 ease-in-out pointer-events-none",
|
|
6987
|
-
style: { left:
|
|
6988
|
-
children: value >
|
|
7009
|
+
style: { left: `${100 / value * 100}%` },
|
|
7010
|
+
children: value > 120 && /* @__PURE__ */ jsx40("div", { className: "absolute left-full ml-2 top-1/2 -translate-y-1/2 text-xs whitespace-nowrap font-extrabold", children: `+${Math.round(
|
|
6989
7011
|
value - 100
|
|
6990
7012
|
)}%` })
|
|
6991
7013
|
}
|
|
6992
7014
|
),
|
|
6993
|
-
showValue && valuePosition === "inside" && /* @__PURE__ */
|
|
7015
|
+
showValue && valuePosition === "inside" && /* @__PURE__ */ jsxs31(
|
|
6994
7016
|
"span",
|
|
6995
7017
|
{
|
|
6996
7018
|
className: "absolute inset-0 flex items-center justify-center text-sm select-none pointer-events-none text-secondary font-extrabold",
|
|
@@ -7004,7 +7026,7 @@ var ProgressBase = React23.forwardRef(
|
|
|
7004
7026
|
]
|
|
7005
7027
|
}
|
|
7006
7028
|
),
|
|
7007
|
-
showValue && valuePosition === "right" && /* @__PURE__ */
|
|
7029
|
+
showValue && valuePosition === "right" && /* @__PURE__ */ jsxs31("div", { className: "w-12 text-sm font-extrabold text-left", children: [
|
|
7008
7030
|
Math.round(value || 0),
|
|
7009
7031
|
"%"
|
|
7010
7032
|
] }),
|
|
@@ -7021,7 +7043,7 @@ var ProgressSegmentsBase = ({
|
|
|
7021
7043
|
value
|
|
7022
7044
|
}) => {
|
|
7023
7045
|
const filled = Math.round(value / 100 * segments);
|
|
7024
|
-
return /* @__PURE__ */
|
|
7046
|
+
return /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-1 w-full min-w-[150px]", children: [
|
|
7025
7047
|
label && /* @__PURE__ */ jsx40(LabelBase_default, { className: "py-2", children: label }),
|
|
7026
7048
|
/* @__PURE__ */ jsx40("div", { className: "flex gap-1 w-full", children: Array.from({ length: segments }).map((_, idx) => /* @__PURE__ */ jsx40(
|
|
7027
7049
|
"div",
|
|
@@ -7052,13 +7074,13 @@ var ProgressPanelsBase = ({
|
|
|
7052
7074
|
steps,
|
|
7053
7075
|
currentStep
|
|
7054
7076
|
}) => {
|
|
7055
|
-
return /* @__PURE__ */
|
|
7077
|
+
return /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-1 w-full", children: [
|
|
7056
7078
|
label && /* @__PURE__ */ jsx40(LabelBase_default, { className: "py-2", children: label }),
|
|
7057
7079
|
/* @__PURE__ */ jsx40("div", { className: "flex w-full gap-1 rounded-lg overflow-hidden", children: steps.map((step, idx) => {
|
|
7058
7080
|
const isActive = idx === currentStep;
|
|
7059
7081
|
const isLast = idx === steps.length - 1;
|
|
7060
|
-
return /* @__PURE__ */
|
|
7061
|
-
/* @__PURE__ */
|
|
7082
|
+
return /* @__PURE__ */ jsxs31(React23.Fragment, { children: [
|
|
7083
|
+
/* @__PURE__ */ jsxs31(
|
|
7062
7084
|
"div",
|
|
7063
7085
|
{
|
|
7064
7086
|
className: cn(
|
|
@@ -7084,9 +7106,9 @@ var ProgressCirclesBase = ({
|
|
|
7084
7106
|
steps,
|
|
7085
7107
|
currentStep
|
|
7086
7108
|
}) => {
|
|
7087
|
-
return /* @__PURE__ */
|
|
7109
|
+
return /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-2 w-full", children: [
|
|
7088
7110
|
label && /* @__PURE__ */ jsx40("label", { className: "py-2 text-base font-semibold text-gray-700 dark:text-gray-300", children: label }),
|
|
7089
|
-
/* @__PURE__ */
|
|
7111
|
+
/* @__PURE__ */ jsxs31("div", { className: "relative flex items-center justify-between w-full", children: [
|
|
7090
7112
|
/* @__PURE__ */ jsx40("div", { className: "absolute top-5 left-0 w-full h-1 bg-zinc-200 dark:bg-zinc-700" }),
|
|
7091
7113
|
/* @__PURE__ */ jsx40(
|
|
7092
7114
|
"div",
|
|
@@ -7099,7 +7121,7 @@ var ProgressCirclesBase = ({
|
|
|
7099
7121
|
),
|
|
7100
7122
|
steps.map((step, idx) => {
|
|
7101
7123
|
const isActive = idx <= currentStep;
|
|
7102
|
-
return /* @__PURE__ */
|
|
7124
|
+
return /* @__PURE__ */ jsxs31(
|
|
7103
7125
|
"div",
|
|
7104
7126
|
{
|
|
7105
7127
|
className: "relative flex flex-col items-center w-10",
|
|
@@ -7249,13 +7271,13 @@ CheckboxBase.displayName = CheckboxPrimitive.Root.displayName;
|
|
|
7249
7271
|
import * as React25 from "react";
|
|
7250
7272
|
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
7251
7273
|
import { CaretUpDownIcon } from "@phosphor-icons/react";
|
|
7252
|
-
import { jsx as jsx44, jsxs as
|
|
7274
|
+
import { jsx as jsx44, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
7253
7275
|
var CollapsibleBase = React25.forwardRef(({ ...props }, ref) => {
|
|
7254
7276
|
return /* @__PURE__ */ jsx44(CollapsiblePrimitive.Root, { ref, "data-slot": "collapsible", ...props });
|
|
7255
7277
|
});
|
|
7256
7278
|
CollapsibleBase.displayName = CollapsiblePrimitive.Root.displayName;
|
|
7257
7279
|
var CollapsibleTriggerBase = React25.forwardRef(({ className, children, leftIcon, showCaret = true, ...props }, ref) => {
|
|
7258
|
-
return /* @__PURE__ */
|
|
7280
|
+
return /* @__PURE__ */ jsxs32(
|
|
7259
7281
|
CollapsiblePrimitive.CollapsibleTrigger,
|
|
7260
7282
|
{
|
|
7261
7283
|
ref,
|
|
@@ -7266,7 +7288,7 @@ var CollapsibleTriggerBase = React25.forwardRef(({ className, children, leftIcon
|
|
|
7266
7288
|
"data-slot": "collapsible-trigger",
|
|
7267
7289
|
...props,
|
|
7268
7290
|
children: [
|
|
7269
|
-
/* @__PURE__ */
|
|
7291
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-2", children: [
|
|
7270
7292
|
leftIcon && /* @__PURE__ */ jsx44("span", { className: "flex-shrink-0 [&>svg]:size-4", children: leftIcon }),
|
|
7271
7293
|
/* @__PURE__ */ jsx44("span", { children })
|
|
7272
7294
|
] }),
|
|
@@ -7295,7 +7317,7 @@ CollapsibleContentBase.displayName = CollapsiblePrimitive.CollapsibleContent.dis
|
|
|
7295
7317
|
|
|
7296
7318
|
// src/components/ui/form/DebounceInput.tsx
|
|
7297
7319
|
import { useEffect as useEffect10, useState as useState11 } from "react";
|
|
7298
|
-
import { CircleNotchIcon } from "@phosphor-icons/react";
|
|
7320
|
+
import { CircleNotchIcon as CircleNotchIcon2 } from "@phosphor-icons/react";
|
|
7299
7321
|
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
7300
7322
|
|
|
7301
7323
|
// src/components/ui/form/HoverCardBase.tsx
|
|
@@ -7338,7 +7360,7 @@ function HoverCardContentBase({
|
|
|
7338
7360
|
import * as React26 from "react";
|
|
7339
7361
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
7340
7362
|
import { MinusIcon } from "@phosphor-icons/react";
|
|
7341
|
-
import { jsx as jsx47, jsxs as
|
|
7363
|
+
import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
7342
7364
|
function InputOTPBase({
|
|
7343
7365
|
className,
|
|
7344
7366
|
containerClassName,
|
|
@@ -7374,7 +7396,7 @@ function InputOTPSlotBase({
|
|
|
7374
7396
|
}) {
|
|
7375
7397
|
const inputOTPContext = React26.useContext(OTPInputContext);
|
|
7376
7398
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
7377
|
-
return /* @__PURE__ */
|
|
7399
|
+
return /* @__PURE__ */ jsxs33(
|
|
7378
7400
|
"div",
|
|
7379
7401
|
{
|
|
7380
7402
|
"data-slot": "input-otp-slot",
|
|
@@ -7398,7 +7420,7 @@ function InputOTPSeparatorBase({ ...props }) {
|
|
|
7398
7420
|
// src/components/ui/form/SliderBase.tsx
|
|
7399
7421
|
import * as React27 from "react";
|
|
7400
7422
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
7401
|
-
import { jsx as jsx48, jsxs as
|
|
7423
|
+
import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
7402
7424
|
var SlideBase = React27.forwardRef(
|
|
7403
7425
|
({
|
|
7404
7426
|
className,
|
|
@@ -7409,13 +7431,13 @@ var SlideBase = React27.forwardRef(
|
|
|
7409
7431
|
...props
|
|
7410
7432
|
}, ref) => {
|
|
7411
7433
|
const isVertical = orientation === "vertical";
|
|
7412
|
-
return /* @__PURE__ */
|
|
7434
|
+
return /* @__PURE__ */ jsxs34(
|
|
7413
7435
|
"div",
|
|
7414
7436
|
{
|
|
7415
7437
|
className: cn("flex flex-col gap-1", isVertical ? "h-full " : "w-full"),
|
|
7416
7438
|
children: [
|
|
7417
7439
|
label && /* @__PURE__ */ jsx48(LabelBase_default, { className: "py-2", children: label }),
|
|
7418
|
-
/* @__PURE__ */
|
|
7440
|
+
/* @__PURE__ */ jsxs34(
|
|
7419
7441
|
"div",
|
|
7420
7442
|
{
|
|
7421
7443
|
className: cn(
|
|
@@ -7424,7 +7446,7 @@ var SlideBase = React27.forwardRef(
|
|
|
7424
7446
|
),
|
|
7425
7447
|
children: [
|
|
7426
7448
|
leftIcon && /* @__PURE__ */ jsx48("div", { className: "flex items-center justify-center", children: leftIcon }),
|
|
7427
|
-
/* @__PURE__ */
|
|
7449
|
+
/* @__PURE__ */ jsxs34(
|
|
7428
7450
|
SliderPrimitive.Root,
|
|
7429
7451
|
{
|
|
7430
7452
|
ref,
|
|
@@ -8240,7 +8262,7 @@ SwitchBase.displayName = SwitchPrimitives.Root.displayName;
|
|
|
8240
8262
|
import * as React30 from "react";
|
|
8241
8263
|
import { motion as motion12 } from "framer-motion";
|
|
8242
8264
|
import { TrashIcon as TrashIcon2 } from "@phosphor-icons/react";
|
|
8243
|
-
import { jsx as jsx51, jsxs as
|
|
8265
|
+
import { jsx as jsx51, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
8244
8266
|
var TextAreaBase = React30.forwardRef(
|
|
8245
8267
|
({ className, clearable = false, onClear, ...props }, ref) => {
|
|
8246
8268
|
const [isFocused, setIsFocused] = React30.useState(false);
|
|
@@ -8288,7 +8310,7 @@ var TextAreaBase = React30.forwardRef(
|
|
|
8288
8310
|
React30.useEffect(() => {
|
|
8289
8311
|
setHasContent(!!props.value || !!props.defaultValue);
|
|
8290
8312
|
}, [props.value, props.defaultValue]);
|
|
8291
|
-
return /* @__PURE__ */
|
|
8313
|
+
return /* @__PURE__ */ jsxs35("div", { className: "relative", children: [
|
|
8292
8314
|
/* @__PURE__ */ jsx51(
|
|
8293
8315
|
"textarea",
|
|
8294
8316
|
{
|
|
@@ -8312,7 +8334,7 @@ var TextAreaBase = React30.forwardRef(
|
|
|
8312
8334
|
...props
|
|
8313
8335
|
}
|
|
8314
8336
|
),
|
|
8315
|
-
clearable && hasContent && /* @__PURE__ */ jsx51(TooltipProviderBase, { children: /* @__PURE__ */
|
|
8337
|
+
clearable && hasContent && /* @__PURE__ */ jsx51(TooltipProviderBase, { children: /* @__PURE__ */ jsxs35(
|
|
8316
8338
|
TooltipBase,
|
|
8317
8339
|
{
|
|
8318
8340
|
open: showConfirmTooltip,
|
|
@@ -8339,14 +8361,14 @@ var TextAreaBase = React30.forwardRef(
|
|
|
8339
8361
|
children: /* @__PURE__ */ jsx51(TrashIcon2, { size: 16, weight: "regular" })
|
|
8340
8362
|
}
|
|
8341
8363
|
) }),
|
|
8342
|
-
/* @__PURE__ */
|
|
8364
|
+
/* @__PURE__ */ jsxs35(
|
|
8343
8365
|
TooltipContentBase,
|
|
8344
8366
|
{
|
|
8345
8367
|
side: "left",
|
|
8346
8368
|
className: "bg-background border border-border shadow-lg p-3 flex flex-col gap-2",
|
|
8347
8369
|
children: [
|
|
8348
8370
|
/* @__PURE__ */ jsx51("p", { className: "text-sm text-foreground font-medium mb-1", children: "Limpar todo o texto?" }),
|
|
8349
|
-
/* @__PURE__ */
|
|
8371
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex gap-2", children: [
|
|
8350
8372
|
/* @__PURE__ */ jsx51(
|
|
8351
8373
|
"button",
|
|
8352
8374
|
{
|
|
@@ -8392,7 +8414,7 @@ var TextAreaBase = React30.forwardRef(
|
|
|
8392
8414
|
children: /* @__PURE__ */ jsx51("div", { className: "absolute inset-0 rounded-lg bg-gradient-to-r from-ring/20 via-ring/10 to-ring/20 blur-sm" })
|
|
8393
8415
|
}
|
|
8394
8416
|
),
|
|
8395
|
-
isFocused && hasContent && props.maxLength && /* @__PURE__ */
|
|
8417
|
+
isFocused && hasContent && props.maxLength && /* @__PURE__ */ jsxs35(
|
|
8396
8418
|
motion12.div,
|
|
8397
8419
|
{
|
|
8398
8420
|
initial: { opacity: 0, y: -10 },
|
|
@@ -8415,7 +8437,7 @@ TextAreaBase.displayName = "TextAreaBase";
|
|
|
8415
8437
|
import * as React31 from "react";
|
|
8416
8438
|
import useEmblaCarousel from "embla-carousel-react";
|
|
8417
8439
|
import { ArrowLeftIcon as ArrowLeftIcon2, ArrowRightIcon as ArrowRightIcon2 } from "@phosphor-icons/react";
|
|
8418
|
-
import { jsx as jsx52, jsxs as
|
|
8440
|
+
import { jsx as jsx52, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
8419
8441
|
var CarouselContext = React31.createContext(null);
|
|
8420
8442
|
function useCarousel() {
|
|
8421
8443
|
const context = React31.useContext(CarouselContext);
|
|
@@ -8558,7 +8580,7 @@ function CarouselPrevious({
|
|
|
8558
8580
|
...props
|
|
8559
8581
|
}) {
|
|
8560
8582
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
8561
|
-
return /* @__PURE__ */
|
|
8583
|
+
return /* @__PURE__ */ jsxs36(
|
|
8562
8584
|
ButtonBase,
|
|
8563
8585
|
{
|
|
8564
8586
|
"data-slot": "carousel-previous",
|
|
@@ -8586,7 +8608,7 @@ function CarouselNextBase({
|
|
|
8586
8608
|
...props
|
|
8587
8609
|
}) {
|
|
8588
8610
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
8589
|
-
return /* @__PURE__ */
|
|
8611
|
+
return /* @__PURE__ */ jsxs36(
|
|
8590
8612
|
ButtonBase,
|
|
8591
8613
|
{
|
|
8592
8614
|
"data-slot": "carousel-next",
|
|
@@ -8782,7 +8804,7 @@ TabsContentBase.displayName = TabsPrimitive.Content.displayName;
|
|
|
8782
8804
|
// src/components/ui/navigation/BreadcrumbBase.tsx
|
|
8783
8805
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
8784
8806
|
import { CaretRightIcon as CaretRightIcon3, DotsThreeIcon as DotsThreeIcon3 } from "@phosphor-icons/react";
|
|
8785
|
-
import { jsx as jsx56, jsxs as
|
|
8807
|
+
import { jsx as jsx56, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
8786
8808
|
function BreadcrumbBase({ ...props }) {
|
|
8787
8809
|
return /* @__PURE__ */ jsx56("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
|
|
8788
8810
|
}
|
|
@@ -8858,7 +8880,7 @@ function BreadcrumbEllipsisBase({
|
|
|
8858
8880
|
className,
|
|
8859
8881
|
...props
|
|
8860
8882
|
}) {
|
|
8861
|
-
return /* @__PURE__ */
|
|
8883
|
+
return /* @__PURE__ */ jsxs37(
|
|
8862
8884
|
"span",
|
|
8863
8885
|
{
|
|
8864
8886
|
"data-slot": "breadcrumb-ellipsis",
|
|
@@ -8877,14 +8899,14 @@ function BreadcrumbEllipsisBase({
|
|
|
8877
8899
|
// src/components/ui/navigation/NavigationMenuBase.tsx
|
|
8878
8900
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
8879
8901
|
import { CaretDownIcon as CaretDownIcon3 } from "@phosphor-icons/react";
|
|
8880
|
-
import { jsx as jsx57, jsxs as
|
|
8902
|
+
import { jsx as jsx57, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
8881
8903
|
function NavigationMenuBase({
|
|
8882
8904
|
className,
|
|
8883
8905
|
children,
|
|
8884
8906
|
viewport = true,
|
|
8885
8907
|
...props
|
|
8886
8908
|
}) {
|
|
8887
|
-
return /* @__PURE__ */
|
|
8909
|
+
return /* @__PURE__ */ jsxs38(
|
|
8888
8910
|
NavigationMenuPrimitive.Root,
|
|
8889
8911
|
{
|
|
8890
8912
|
"data-slot": "navigation-menu",
|
|
@@ -8935,7 +8957,7 @@ function NavigationMenuTriggerBase({
|
|
|
8935
8957
|
children,
|
|
8936
8958
|
...props
|
|
8937
8959
|
}) {
|
|
8938
|
-
return /* @__PURE__ */
|
|
8960
|
+
return /* @__PURE__ */ jsxs38(
|
|
8939
8961
|
NavigationMenuPrimitive.Trigger,
|
|
8940
8962
|
{
|
|
8941
8963
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -9048,7 +9070,7 @@ import * as React36 from "react";
|
|
|
9048
9070
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
9049
9071
|
import { cva as cva4 } from "class-variance-authority";
|
|
9050
9072
|
import { XIcon as XIcon8 } from "@phosphor-icons/react";
|
|
9051
|
-
import { jsx as jsx58, jsxs as
|
|
9073
|
+
import { jsx as jsx58, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
9052
9074
|
var SheetBase = SheetPrimitive.Root;
|
|
9053
9075
|
var SheetTriggerBase = SheetPrimitive.Trigger;
|
|
9054
9076
|
var SheetCloseBase = SheetPrimitive.Close;
|
|
@@ -9081,16 +9103,16 @@ var sheetVariants = cva4(
|
|
|
9081
9103
|
}
|
|
9082
9104
|
}
|
|
9083
9105
|
);
|
|
9084
|
-
var SheetContentBase = React36.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */
|
|
9106
|
+
var SheetContentBase = React36.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs39(SheetPortalBase, { children: [
|
|
9085
9107
|
/* @__PURE__ */ jsx58(SheetOverlayBase, {}),
|
|
9086
|
-
/* @__PURE__ */
|
|
9108
|
+
/* @__PURE__ */ jsxs39(
|
|
9087
9109
|
SheetPrimitive.Content,
|
|
9088
9110
|
{
|
|
9089
9111
|
ref,
|
|
9090
9112
|
className: cn(sheetVariants({ side }), className),
|
|
9091
9113
|
...props,
|
|
9092
9114
|
children: [
|
|
9093
|
-
/* @__PURE__ */
|
|
9115
|
+
/* @__PURE__ */ jsxs39(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: [
|
|
9094
9116
|
/* @__PURE__ */ jsx58(XIcon8, { className: "h-4 w-4" }),
|
|
9095
9117
|
/* @__PURE__ */ jsx58("span", { className: "sr-only", children: "Close" })
|
|
9096
9118
|
] }),
|
|
@@ -9149,7 +9171,7 @@ SheetDescriptionBase.displayName = SheetPrimitive.Description.displayName;
|
|
|
9149
9171
|
|
|
9150
9172
|
// src/components/ui/navigation/SidebarBase.tsx
|
|
9151
9173
|
import { SidebarSimpleIcon } from "@phosphor-icons/react";
|
|
9152
|
-
import { jsx as jsx59, jsxs as
|
|
9174
|
+
import { jsx as jsx59, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
9153
9175
|
var SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
9154
9176
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
9155
9177
|
var SIDEBAR_WIDTH = "16rem";
|
|
@@ -9277,7 +9299,7 @@ var SidebarBase = React37.forwardRef(
|
|
|
9277
9299
|
}
|
|
9278
9300
|
) });
|
|
9279
9301
|
}
|
|
9280
|
-
return /* @__PURE__ */
|
|
9302
|
+
return /* @__PURE__ */ jsxs40(
|
|
9281
9303
|
"div",
|
|
9282
9304
|
{
|
|
9283
9305
|
ref,
|
|
@@ -9327,7 +9349,7 @@ var SidebarBase = React37.forwardRef(
|
|
|
9327
9349
|
SidebarBase.displayName = "SidebarBase";
|
|
9328
9350
|
var SidebarTriggerBase = React37.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
9329
9351
|
const { toggleSidebar } = UseSideBarBase();
|
|
9330
|
-
return /* @__PURE__ */ jsx59("div", { children: /* @__PURE__ */
|
|
9352
|
+
return /* @__PURE__ */ jsx59("div", { children: /* @__PURE__ */ jsxs40(
|
|
9331
9353
|
ButtonBase,
|
|
9332
9354
|
{
|
|
9333
9355
|
ref,
|
|
@@ -9583,7 +9605,7 @@ var SidebarMenuButtonBase = React37.forwardRef(
|
|
|
9583
9605
|
children: tooltip
|
|
9584
9606
|
};
|
|
9585
9607
|
}
|
|
9586
|
-
return /* @__PURE__ */
|
|
9608
|
+
return /* @__PURE__ */ jsxs40(TooltipBase, { children: [
|
|
9587
9609
|
/* @__PURE__ */ jsx59(TooltipTriggerBase, { asChild: true, children: button }),
|
|
9588
9610
|
/* @__PURE__ */ jsx59(
|
|
9589
9611
|
TooltipContentBase,
|
|
@@ -9643,7 +9665,7 @@ var SidebarMenuSkeletonBase = React37.forwardRef(({ className, showIcon = false,
|
|
|
9643
9665
|
const width = React37.useMemo(() => {
|
|
9644
9666
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
9645
9667
|
}, []);
|
|
9646
|
-
return /* @__PURE__ */
|
|
9668
|
+
return /* @__PURE__ */ jsxs40(
|
|
9647
9669
|
"div",
|
|
9648
9670
|
{
|
|
9649
9671
|
ref,
|
|
@@ -9714,7 +9736,7 @@ SidebarMenuSubButtonBase.displayName = "SidebarMenuSubButtonBase";
|
|
|
9714
9736
|
|
|
9715
9737
|
// src/components/ui/overlays/DrawerBase.tsx
|
|
9716
9738
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
9717
|
-
import { jsx as jsx60, jsxs as
|
|
9739
|
+
import { jsx as jsx60, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
9718
9740
|
function DrawerBase({
|
|
9719
9741
|
...props
|
|
9720
9742
|
}) {
|
|
@@ -9756,9 +9778,9 @@ function DrawerContentBase({
|
|
|
9756
9778
|
children,
|
|
9757
9779
|
...props
|
|
9758
9780
|
}) {
|
|
9759
|
-
return /* @__PURE__ */
|
|
9781
|
+
return /* @__PURE__ */ jsxs41(DrawerPortalBase, { children: [
|
|
9760
9782
|
/* @__PURE__ */ jsx60(DrawerOverlayBase, {}),
|
|
9761
|
-
/* @__PURE__ */
|
|
9783
|
+
/* @__PURE__ */ jsxs41(
|
|
9762
9784
|
DrawerPrimitive.Content,
|
|
9763
9785
|
{
|
|
9764
9786
|
"data-slot": "drawer-content",
|
|
@@ -9895,7 +9917,7 @@ var useTooltip = () => {
|
|
|
9895
9917
|
|
|
9896
9918
|
// src/components/ui/UniversalTooltipRenderer.tsx
|
|
9897
9919
|
import { XIcon as XIcon9 } from "@phosphor-icons/react/dist/ssr";
|
|
9898
|
-
import { jsx as jsx62, jsxs as
|
|
9920
|
+
import { jsx as jsx62, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
9899
9921
|
var UniversalTooltipRenderer = ({
|
|
9900
9922
|
className,
|
|
9901
9923
|
showCloseButton = true,
|
|
@@ -9912,8 +9934,8 @@ var UniversalTooltipRenderer = ({
|
|
|
9912
9934
|
clearAllTooltips
|
|
9913
9935
|
} = useUniversalTooltip();
|
|
9914
9936
|
const { removeTooltip, handleElementMouseDown } = useTooltip();
|
|
9915
|
-
return /* @__PURE__ */
|
|
9916
|
-
showCloseAllButton && tooltips.length > 1 && /* @__PURE__ */ jsx62("div", { className: "fixed top-6 left-1/2 transform -translate-x-1/2 z-50 pointer-events-auto animate-in fade-in slide-in-from-top-2 duration-300", children: /* @__PURE__ */
|
|
9937
|
+
return /* @__PURE__ */ jsxs42("div", { className: cn("fixed inset-0 pointer-events-none z-50", className), children: [
|
|
9938
|
+
showCloseAllButton && tooltips.length > 1 && /* @__PURE__ */ jsx62("div", { className: "fixed top-6 left-1/2 transform -translate-x-1/2 z-50 pointer-events-auto animate-in fade-in slide-in-from-top-2 duration-300", children: /* @__PURE__ */ jsxs42(
|
|
9917
9939
|
"button",
|
|
9918
9940
|
{
|
|
9919
9941
|
onClick: clearAllTooltips,
|
|
@@ -9935,7 +9957,7 @@ var UniversalTooltipRenderer = ({
|
|
|
9935
9957
|
const endX = isHorizontal ? Math.max(guide.sourceTooltip.left + guide.sourceTooltip.width / 2, guide.targetTooltip.left + guide.targetTooltip.width / 2) : guide.targetTooltip.left + guide.targetTooltip.width / 2;
|
|
9936
9958
|
const startY = isHorizontal ? guide.sourceTooltip.top + guide.sourceTooltip.height / 2 : Math.min(guide.sourceTooltip.top + guide.sourceTooltip.height / 2, guide.targetTooltip.top + guide.targetTooltip.height / 2);
|
|
9937
9959
|
const endY = isHorizontal ? guide.targetTooltip.top + guide.targetTooltip.height / 2 : Math.max(guide.sourceTooltip.top + guide.sourceTooltip.height / 2, guide.targetTooltip.top + guide.targetTooltip.height / 2);
|
|
9938
|
-
return /* @__PURE__ */
|
|
9960
|
+
return /* @__PURE__ */ jsxs42("div", { className: "pointer-events-none", children: [
|
|
9939
9961
|
/* @__PURE__ */ jsx62(
|
|
9940
9962
|
"div",
|
|
9941
9963
|
{
|
|
@@ -9989,7 +10011,7 @@ var UniversalTooltipRenderer = ({
|
|
|
9989
10011
|
)
|
|
9990
10012
|
] }, index);
|
|
9991
10013
|
}),
|
|
9992
|
-
tooltips.map((tooltip) => /* @__PURE__ */
|
|
10014
|
+
tooltips.map((tooltip) => /* @__PURE__ */ jsxs42(
|
|
9993
10015
|
"div",
|
|
9994
10016
|
{
|
|
9995
10017
|
className: cn(
|
|
@@ -10003,8 +10025,8 @@ var UniversalTooltipRenderer = ({
|
|
|
10003
10025
|
},
|
|
10004
10026
|
onMouseDown: (e) => handleElementMouseDown(tooltip.id, e),
|
|
10005
10027
|
children: [
|
|
10006
|
-
/* @__PURE__ */
|
|
10007
|
-
/* @__PURE__ */
|
|
10028
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-between p-3 border-b bg-muted/20 rounded-t-lg", children: [
|
|
10029
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-2", children: [
|
|
10008
10030
|
/* @__PURE__ */ jsx62("div", { className: "w-2 h-2 bg-primary rounded-full" }),
|
|
10009
10031
|
/* @__PURE__ */ jsx62("span", { className: "text-sm font-medium text-muted-foreground", children: "Tooltip" })
|
|
10010
10032
|
] }),
|
|
@@ -10044,7 +10066,7 @@ import {
|
|
|
10044
10066
|
CalendarIcon
|
|
10045
10067
|
} from "@phosphor-icons/react";
|
|
10046
10068
|
import { AnimatePresence as AnimatePresence9 } from "framer-motion";
|
|
10047
|
-
import { jsx as jsx63, jsxs as
|
|
10069
|
+
import { jsx as jsx63, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
10048
10070
|
function CalendarBase2({
|
|
10049
10071
|
className,
|
|
10050
10072
|
classNames,
|
|
@@ -10065,7 +10087,7 @@ function CalendarBase2({
|
|
|
10065
10087
|
"div",
|
|
10066
10088
|
{
|
|
10067
10089
|
className: cn(
|
|
10068
|
-
"rounded-md border bg-background p-2 overflow-hidden flex flex-col",
|
|
10090
|
+
"rounded-md border bg-background p-2 sm:p-3 md:p-4 overflow-hidden flex flex-col",
|
|
10069
10091
|
className
|
|
10070
10092
|
),
|
|
10071
10093
|
children: /* @__PURE__ */ jsx63("div", { className: "relative flex-1 flex flex-col min-h-0", children: /* @__PURE__ */ jsx63(AnimatePresence9, { initial: false, mode: "wait", custom: direction, children: /* @__PURE__ */ jsx63(
|
|
@@ -10078,43 +10100,38 @@ function CalendarBase2({
|
|
|
10078
10100
|
showOutsideDays,
|
|
10079
10101
|
month,
|
|
10080
10102
|
onMonthChange: handleMonthChange,
|
|
10081
|
-
className: "w-full h-full
|
|
10103
|
+
className: "w-full h-full flex flex-col",
|
|
10082
10104
|
classNames: {
|
|
10083
|
-
months: "flex
|
|
10084
|
-
month: "
|
|
10085
|
-
caption: "flex
|
|
10086
|
-
caption_label: "text-[clamp(0.
|
|
10087
|
-
nav: "
|
|
10105
|
+
months: "flex flex-col sm:flex-row gap-3 sm:gap-4 w-full",
|
|
10106
|
+
month: "flex-1 min-w-0",
|
|
10107
|
+
caption: "flex items-center justify-between gap-2 pr-1 min-h-[2.25rem] mb-2",
|
|
10108
|
+
caption_label: "text-[clamp(0.85rem,1.4vw,1.125rem)] sm:text-[clamp(0.9rem,1.6vw,1.125rem)] font-semibold capitalize text-left",
|
|
10109
|
+
nav: "flex items-center gap-2",
|
|
10088
10110
|
nav_button: cn(
|
|
10089
10111
|
buttonVariantsBase({ variant: "outline" }),
|
|
10090
|
-
"h-8 w-8
|
|
10091
|
-
"[@media(min-width:400px)]:h-9 [@media(min-width:400px)]:w-9"
|
|
10112
|
+
"h-8 w-8 sm:h-9 sm:w-9 md:h-10 md:w-10 flex items-center justify-center p-0 rounded-md transition-transform duration-150 ease-out focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/40 active:scale-95"
|
|
10092
10113
|
),
|
|
10093
|
-
nav_button_previous: "
|
|
10094
|
-
nav_button_next: "
|
|
10095
|
-
table: "w-full
|
|
10096
|
-
head_row: "
|
|
10097
|
-
head_cell: "text-muted-foreground rounded-md
|
|
10098
|
-
row: "
|
|
10114
|
+
nav_button_previous: "",
|
|
10115
|
+
nav_button_next: "",
|
|
10116
|
+
table: "w-full min-w-0 flex-1 grid grid-rows-[auto_1fr] gap-2",
|
|
10117
|
+
head_row: "grid grid-cols-7 gap-1 mb-1",
|
|
10118
|
+
head_cell: "text-muted-foreground rounded-md font-semibold text-[clamp(0.575rem,1.2vw,0.75rem)] sm:text-[clamp(0.65rem,1.1vw,0.825rem)] text-center pb-1 uppercase tracking-wider",
|
|
10119
|
+
row: "grid grid-cols-7 gap-1",
|
|
10099
10120
|
cell: cn(
|
|
10100
|
-
"
|
|
10121
|
+
"min-w-0 h-9 sm:h-10 md:h-11 p-0 relative flex items-center justify-center",
|
|
10101
10122
|
"[&:has([aria-selected].day-range-end)]:rounded-r-lg",
|
|
10102
10123
|
"[&:has([aria-selected].day-range-start)]:rounded-l-lg",
|
|
10103
10124
|
"[&:has([aria-selected].day-outside)]:bg-muted/50",
|
|
10104
|
-
"[&:has([aria-selected])]:bg-muted"
|
|
10105
|
-
"first:[&:has([aria-selected])]:rounded-l-lg",
|
|
10106
|
-
"last:[&:has([aria-selected])]:rounded-r-lg",
|
|
10107
|
-
"focus-within:relative focus-within:z-20"
|
|
10125
|
+
"[&:has([aria-selected])]:bg-muted"
|
|
10108
10126
|
),
|
|
10109
10127
|
day: cn(
|
|
10110
10128
|
buttonVariantsBase({ variant: "ghost" }),
|
|
10111
|
-
"w-full h-full p-0",
|
|
10112
|
-
"aria-selected:opacity-100 hover:bg-muted
|
|
10113
|
-
" transition-all duration-200 ease-out hover:scale-105 active:scale-95"
|
|
10129
|
+
"w-full h-full p-0 m-0 flex items-center justify-center text-[clamp(0.775rem,1.2vw,0.95rem)] sm:text-sm",
|
|
10130
|
+
"aria-selected:opacity-100 hover:bg-muted transition-all duration-150 ease-out active:scale-95"
|
|
10114
10131
|
),
|
|
10115
10132
|
day_selected: "bg-primary text-primary-foreground hover:bg-primary/90 focus:bg-primary/90 font-semibold hover:text-white",
|
|
10116
10133
|
day_today: "bg-muted text-foreground font-bold ring-2 ring-primary/30 ring-inset",
|
|
10117
|
-
day_outside: "
|
|
10134
|
+
day_outside: "text-muted-foreground/40 opacity-60 aria-selected:bg-muted/50 aria-selected:text-foreground",
|
|
10118
10135
|
day_disabled: "text-muted-foreground/30 opacity-40 cursor-not-allowed",
|
|
10119
10136
|
day_range_middle: "aria-selected:bg-muted aria-selected:text-foreground",
|
|
10120
10137
|
day_hidden: "invisible",
|
|
@@ -10287,7 +10304,7 @@ function display12HourValue(hours) {
|
|
|
10287
10304
|
}
|
|
10288
10305
|
|
|
10289
10306
|
// src/components/picker/TimePickerInput.tsx
|
|
10290
|
-
import { jsx as jsx64, jsxs as
|
|
10307
|
+
import { jsx as jsx64, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
10291
10308
|
var TimePickerInput = React40.forwardRef(
|
|
10292
10309
|
({
|
|
10293
10310
|
className,
|
|
@@ -10374,7 +10391,7 @@ var TimePickerInput = React40.forwardRef(
|
|
|
10374
10391
|
const baseLabel = getPickerLabel();
|
|
10375
10392
|
return `${baseLabel}, valor atual: ${calculatedValue}.`;
|
|
10376
10393
|
};
|
|
10377
|
-
return /* @__PURE__ */
|
|
10394
|
+
return /* @__PURE__ */ jsxs44("div", { className: "relative group flex flex-col items-center", children: [
|
|
10378
10395
|
getPickerLabel() && /* @__PURE__ */ jsx64(
|
|
10379
10396
|
"label",
|
|
10380
10397
|
{
|
|
@@ -10383,7 +10400,7 @@ var TimePickerInput = React40.forwardRef(
|
|
|
10383
10400
|
children: getPickerLabel()
|
|
10384
10401
|
}
|
|
10385
10402
|
),
|
|
10386
|
-
/* @__PURE__ */
|
|
10403
|
+
/* @__PURE__ */ jsxs44(
|
|
10387
10404
|
"div",
|
|
10388
10405
|
{
|
|
10389
10406
|
className: cn(
|
|
@@ -10410,7 +10427,7 @@ var TimePickerInput = React40.forwardRef(
|
|
|
10410
10427
|
children: /* @__PURE__ */ jsx64(CaretUpIcon2, { size: 14, className: "sm:w-4 sm:h-4" })
|
|
10411
10428
|
}
|
|
10412
10429
|
),
|
|
10413
|
-
/* @__PURE__ */
|
|
10430
|
+
/* @__PURE__ */ jsxs44("div", { className: "relative", children: [
|
|
10414
10431
|
/* @__PURE__ */ jsx64(
|
|
10415
10432
|
"input",
|
|
10416
10433
|
{
|
|
@@ -10486,7 +10503,7 @@ var TimePickerInput = React40.forwardRef(
|
|
|
10486
10503
|
TimePickerInput.displayName = "TimePickerInput";
|
|
10487
10504
|
|
|
10488
10505
|
// src/components/picker/TimePicker.tsx
|
|
10489
|
-
import { Fragment as Fragment8, jsx as jsx65, jsxs as
|
|
10506
|
+
import { Fragment as Fragment8, jsx as jsx65, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
10490
10507
|
function TimePicker({
|
|
10491
10508
|
date,
|
|
10492
10509
|
setDate,
|
|
@@ -10511,7 +10528,7 @@ function TimePicker({
|
|
|
10511
10528
|
hidden: { opacity: 0, y: 10 },
|
|
10512
10529
|
visible: { opacity: 1, y: 0 }
|
|
10513
10530
|
};
|
|
10514
|
-
return /* @__PURE__ */
|
|
10531
|
+
return /* @__PURE__ */ jsxs45(
|
|
10515
10532
|
motion14.div,
|
|
10516
10533
|
{
|
|
10517
10534
|
variants: containerVariants,
|
|
@@ -10584,7 +10601,7 @@ function TimePicker({
|
|
|
10584
10601
|
|
|
10585
10602
|
// src/components/picker/DateTimePicker.tsx
|
|
10586
10603
|
import { CalendarBlankIcon, ClockIcon } from "@phosphor-icons/react";
|
|
10587
|
-
import { jsx as jsx66, jsxs as
|
|
10604
|
+
import { jsx as jsx66, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
10588
10605
|
function DateTimePicker({
|
|
10589
10606
|
label,
|
|
10590
10607
|
date,
|
|
@@ -10640,23 +10657,40 @@ function DateTimePicker({
|
|
|
10640
10657
|
setInternalDate(date);
|
|
10641
10658
|
}
|
|
10642
10659
|
}, [date, open]);
|
|
10643
|
-
return /* @__PURE__ */
|
|
10660
|
+
return /* @__PURE__ */ jsxs46("div", { className: cn("space-y-2 w-full sm:w-auto", className), children: [
|
|
10644
10661
|
label && /* @__PURE__ */ jsx66(LabelBase_default, { children: label }),
|
|
10645
|
-
/* @__PURE__ */
|
|
10646
|
-
/* @__PURE__ */ jsx66(
|
|
10647
|
-
|
|
10662
|
+
/* @__PURE__ */ jsxs46(PopoverBase, { open, onOpenChange: setOpen, children: [
|
|
10663
|
+
/* @__PURE__ */ jsx66(
|
|
10664
|
+
PopoverTriggerBase,
|
|
10648
10665
|
{
|
|
10649
|
-
|
|
10650
|
-
|
|
10651
|
-
|
|
10652
|
-
|
|
10653
|
-
|
|
10654
|
-
|
|
10655
|
-
|
|
10656
|
-
|
|
10657
|
-
|
|
10666
|
+
disabled,
|
|
10667
|
+
asChild: true,
|
|
10668
|
+
className: cn(error && "border-red-500"),
|
|
10669
|
+
children: /* @__PURE__ */ jsxs46(
|
|
10670
|
+
ButtonBase,
|
|
10671
|
+
{
|
|
10672
|
+
variant: "outline",
|
|
10673
|
+
className: cn(
|
|
10674
|
+
"w-full justify-start text-left min-w-0 overflow-hidden ",
|
|
10675
|
+
!date && "text-muted-foreground"
|
|
10676
|
+
),
|
|
10677
|
+
children: [
|
|
10678
|
+
/* @__PURE__ */ jsx66(
|
|
10679
|
+
"span",
|
|
10680
|
+
{
|
|
10681
|
+
className: cn(
|
|
10682
|
+
"truncate flex-1",
|
|
10683
|
+
!date && "text-muted-foreground"
|
|
10684
|
+
),
|
|
10685
|
+
children: date ? format(date, getDisplayFormat(), { locale: ptBR }) : "Selecione uma data"
|
|
10686
|
+
}
|
|
10687
|
+
),
|
|
10688
|
+
/* @__PURE__ */ jsx66(CalendarBlankIcon, { className: "flex-shrink-0 w-5 h-5 sm:w-6 sm:h-6" })
|
|
10689
|
+
]
|
|
10690
|
+
}
|
|
10691
|
+
)
|
|
10658
10692
|
}
|
|
10659
|
-
)
|
|
10693
|
+
),
|
|
10660
10694
|
/* @__PURE__ */ jsx66(ErrorMessage_default, { error }),
|
|
10661
10695
|
/* @__PURE__ */ jsx66(
|
|
10662
10696
|
PopoverContentBase,
|
|
@@ -10667,7 +10701,7 @@ function DateTimePicker({
|
|
|
10667
10701
|
side: "bottom",
|
|
10668
10702
|
avoidCollisions: true,
|
|
10669
10703
|
collisionPadding: 8,
|
|
10670
|
-
children: /* @__PURE__ */
|
|
10704
|
+
children: /* @__PURE__ */ jsxs46("div", { className: "flex flex-col space-y-2 sm:space-y-3 p-2 sm:p-3 md:p-4 max-h-[calc(100vh-4rem)] overflow-y-auto", children: [
|
|
10671
10705
|
/* @__PURE__ */ jsx66(
|
|
10672
10706
|
CalendarBase2,
|
|
10673
10707
|
{
|
|
@@ -10676,6 +10710,7 @@ function DateTimePicker({
|
|
|
10676
10710
|
selected: internalDate,
|
|
10677
10711
|
onSelect: (d) => handleSelect(d),
|
|
10678
10712
|
initialFocus: true,
|
|
10713
|
+
defaultMonth: fromDate ?? toDate ?? internalDate,
|
|
10679
10714
|
fromDate,
|
|
10680
10715
|
toDate,
|
|
10681
10716
|
className: cn(
|
|
@@ -10684,13 +10719,13 @@ function DateTimePicker({
|
|
|
10684
10719
|
)
|
|
10685
10720
|
}
|
|
10686
10721
|
),
|
|
10687
|
-
!hideTime && !(hideHour && hideMinute) && /* @__PURE__ */ jsx66("div", { className: "flex justify-center w-full px-2", children: /* @__PURE__ */
|
|
10722
|
+
!hideTime && !(hideHour && hideMinute) && /* @__PURE__ */ jsx66("div", { className: "flex justify-center w-full px-2", children: /* @__PURE__ */ jsxs46(
|
|
10688
10723
|
PopoverBase,
|
|
10689
10724
|
{
|
|
10690
10725
|
open: timePickerOpen,
|
|
10691
10726
|
onOpenChange: setTimePickerOpen,
|
|
10692
10727
|
children: [
|
|
10693
|
-
/* @__PURE__ */ jsx66(PopoverTriggerBase, { asChild: true, children: /* @__PURE__ */
|
|
10728
|
+
/* @__PURE__ */ jsx66(PopoverTriggerBase, { asChild: true, children: /* @__PURE__ */ jsxs46(
|
|
10694
10729
|
ButtonBase,
|
|
10695
10730
|
{
|
|
10696
10731
|
variant: "outline",
|
|
@@ -10722,7 +10757,7 @@ function DateTimePicker({
|
|
|
10722
10757
|
sideOffset: 8,
|
|
10723
10758
|
avoidCollisions: true,
|
|
10724
10759
|
collisionPadding: 8,
|
|
10725
|
-
children: /* @__PURE__ */
|
|
10760
|
+
children: /* @__PURE__ */ jsxs46("div", { className: "flex flex-col items-center space-y-2 sm:space-y-3", children: [
|
|
10726
10761
|
/* @__PURE__ */ jsx66("h4", { className: "text-sm sm:text-base font-medium text-center", children: "Alterar Hor\xE1rio" }),
|
|
10727
10762
|
/* @__PURE__ */ jsx66(
|
|
10728
10763
|
TimePicker,
|
|
@@ -10760,6 +10795,8 @@ import * as React42 from "react";
|
|
|
10760
10795
|
import {
|
|
10761
10796
|
DayPicker as DayPicker3
|
|
10762
10797
|
} from "react-day-picker";
|
|
10798
|
+
import ptBR2 from "date-fns/locale/pt-BR";
|
|
10799
|
+
import { format as format2 } from "date-fns";
|
|
10763
10800
|
import {
|
|
10764
10801
|
CaretLeftIcon as CaretLeftIcon3,
|
|
10765
10802
|
CaretRightIcon as CaretRightIcon5,
|
|
@@ -10767,7 +10804,8 @@ import {
|
|
|
10767
10804
|
} from "@phosphor-icons/react";
|
|
10768
10805
|
import { motion as motion15, AnimatePresence as AnimatePresence11, useAnimation } from "framer-motion";
|
|
10769
10806
|
import { CalendarDotIcon } from "@phosphor-icons/react/dist/ssr";
|
|
10770
|
-
import { jsx as jsx67, jsxs as
|
|
10807
|
+
import { jsx as jsx67, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
10808
|
+
var dateFnsLocale = ptBR2?.default ?? ptBR2;
|
|
10771
10809
|
function RangePicker({
|
|
10772
10810
|
value,
|
|
10773
10811
|
onChange,
|
|
@@ -10790,14 +10828,14 @@ function RangePicker({
|
|
|
10790
10828
|
setRange(void 0);
|
|
10791
10829
|
onChange?.(void 0);
|
|
10792
10830
|
};
|
|
10793
|
-
return /* @__PURE__ */
|
|
10831
|
+
return /* @__PURE__ */ jsxs47(PopoverBase, { open, onOpenChange: setOpen, children: [
|
|
10794
10832
|
/* @__PURE__ */ jsx67(PopoverTriggerBase, { asChild: true, children: /* @__PURE__ */ jsx67(
|
|
10795
10833
|
motion15.div,
|
|
10796
10834
|
{
|
|
10797
10835
|
whileTap: { scale: 0.97 },
|
|
10798
10836
|
whileHover: { scale: open ? 1.03 : 1.01 },
|
|
10799
10837
|
transition: { type: "spring", stiffness: 300, damping: 20 },
|
|
10800
|
-
children: /* @__PURE__ */
|
|
10838
|
+
children: /* @__PURE__ */ jsxs47(
|
|
10801
10839
|
ButtonBase,
|
|
10802
10840
|
{
|
|
10803
10841
|
variant: "outline",
|
|
@@ -10809,7 +10847,9 @@ function RangePicker({
|
|
|
10809
10847
|
className: "text-sm font-medium",
|
|
10810
10848
|
transition: { duration: 0.2 },
|
|
10811
10849
|
animate: controls,
|
|
10812
|
-
children: range?.from && range?.to ? `${range.from
|
|
10850
|
+
children: range?.from && range?.to ? `${format2(range.from, "P", {
|
|
10851
|
+
locale: dateFnsLocale
|
|
10852
|
+
})} - ${format2(range.to, "P", { locale: dateFnsLocale })}` : label
|
|
10813
10853
|
}
|
|
10814
10854
|
),
|
|
10815
10855
|
/* @__PURE__ */ jsx67(
|
|
@@ -10831,7 +10871,7 @@ function RangePicker({
|
|
|
10831
10871
|
{
|
|
10832
10872
|
asChild: true,
|
|
10833
10873
|
className: "w-auto min-w-[250px] p-0 shadow-xl overflow-y-hidden",
|
|
10834
|
-
children: /* @__PURE__ */
|
|
10874
|
+
children: /* @__PURE__ */ jsxs47(
|
|
10835
10875
|
motion15.div,
|
|
10836
10876
|
{
|
|
10837
10877
|
initial: { opacity: 0, y: 16 },
|
|
@@ -10853,46 +10893,42 @@ function RangePicker({
|
|
|
10853
10893
|
mode: "range",
|
|
10854
10894
|
selected: range,
|
|
10855
10895
|
onSelect: handleSelect,
|
|
10896
|
+
locale: dateFnsLocale,
|
|
10856
10897
|
showOutsideDays: true,
|
|
10857
10898
|
fromDate: minDate,
|
|
10858
10899
|
toDate: maxDate,
|
|
10859
10900
|
className: "min-w-0 flex flex-col",
|
|
10860
10901
|
classNames: {
|
|
10861
|
-
months: "flex
|
|
10862
|
-
month: "
|
|
10863
|
-
caption: "flex
|
|
10864
|
-
caption_label: "text-[clamp(0.
|
|
10865
|
-
nav: "
|
|
10902
|
+
months: "flex flex-col sm:flex-row gap-3 sm:gap-4 w-full",
|
|
10903
|
+
month: "flex-1 min-w-0",
|
|
10904
|
+
caption: "flex items-center justify-between gap-2 pr-1 min-h-[2.25rem] mb-2",
|
|
10905
|
+
caption_label: "text-[clamp(0.85rem,1.4vw,1.125rem)] sm:text-[clamp(0.9rem,1.6vw,1.125rem)] font-semibold capitalize text-left",
|
|
10906
|
+
nav: "flex items-center gap-2",
|
|
10866
10907
|
nav_button: cn(
|
|
10867
10908
|
buttonVariantsBase({ variant: "outline" }),
|
|
10868
|
-
"h-8 w-8
|
|
10869
|
-
"[@media(min-width:400px)]:h-9 [@media(min-width:400px)]:w-9"
|
|
10909
|
+
"h-8 w-8 sm:h-9 sm:w-9 md:h-10 md:w-10 flex items-center justify-center p-0 rounded-md transition-transform duration-150 ease-out focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/40 active:scale-95"
|
|
10870
10910
|
),
|
|
10871
|
-
nav_button_previous: "
|
|
10872
|
-
nav_button_next: "
|
|
10873
|
-
table: "w-full
|
|
10874
|
-
head_row: "
|
|
10875
|
-
head_cell: "text-muted-foreground rounded-md
|
|
10876
|
-
row: "
|
|
10911
|
+
nav_button_previous: "",
|
|
10912
|
+
nav_button_next: "",
|
|
10913
|
+
table: "w-full min-w-0 flex-1 grid grid-rows-[auto_1fr] gap-2",
|
|
10914
|
+
head_row: "grid grid-cols-7 gap-1 mb-1",
|
|
10915
|
+
head_cell: "text-muted-foreground rounded-md font-semibold text-[clamp(0.575rem,1.2vw,0.75rem)] sm:text-[clamp(0.65rem,1.1vw,0.825rem)] text-center pb-1 uppercase tracking-wider",
|
|
10916
|
+
row: "grid grid-cols-7 gap-1",
|
|
10877
10917
|
cell: cn(
|
|
10878
|
-
"
|
|
10918
|
+
"min-w-0 h-9 p-0 relative flex items-center justify-center",
|
|
10879
10919
|
"[&:has([aria-selected].day-range-end)]:rounded-r-lg",
|
|
10880
10920
|
"[&:has([aria-selected].day-range-start)]:rounded-l-lg",
|
|
10881
10921
|
"[&:has([aria-selected].day-outside)]:bg-muted/50",
|
|
10882
|
-
"[&:has([aria-selected])]:bg-muted"
|
|
10883
|
-
"first:[&:has([aria-selected])]:rounded-l-lg",
|
|
10884
|
-
"last:[&:has([aria-selected])]:rounded-r-lg",
|
|
10885
|
-
"focus-within:relative focus-within:z-20"
|
|
10922
|
+
"[&:has([aria-selected])]:bg-muted"
|
|
10886
10923
|
),
|
|
10887
10924
|
day: cn(
|
|
10888
10925
|
buttonVariantsBase({ variant: "ghost" }),
|
|
10889
|
-
"w-full h-full
|
|
10890
|
-
"aria-selected:opacity-100 hover:bg-muted
|
|
10891
|
-
"transition-all duration-200 ease-out !scale-100 aria-selected:!scale-100 hover:!scale-100 active:!scale-100"
|
|
10926
|
+
"w-full h-full p-0 m-0 flex items-center justify-center text-[clamp(0.775rem,1.2vw,0.95rem)] sm:text-sm",
|
|
10927
|
+
"aria-selected:opacity-100 hover:bg-muted transition-all duration-150 ease-out active:scale-95"
|
|
10892
10928
|
),
|
|
10893
|
-
day_selected: "bg-primary text-primary-foreground hover:bg-primary/90 focus:bg-primary/90 font-semibold hover:text-white
|
|
10894
|
-
day_today: "bg-muted text-foreground font-bold ring-2 ring-primary/
|
|
10895
|
-
day_outside: "
|
|
10929
|
+
day_selected: "bg-primary text-primary-foreground hover:bg-primary/90 focus:bg-primary/90 font-semibold hover:text-white",
|
|
10930
|
+
day_today: "bg-muted text-foreground font-bold ring-2 ring-primary/30 ring-inset",
|
|
10931
|
+
day_outside: "text-muted-foreground/40 opacity-60 aria-selected:bg-muted/50 aria-selected:text-foreground",
|
|
10896
10932
|
day_disabled: "text-muted-foreground/30 opacity-40 cursor-not-allowed",
|
|
10897
10933
|
day_range_middle: "aria-selected:bg-muted aria-selected:text-foreground",
|
|
10898
10934
|
day_hidden: "invisible"
|
|
@@ -10905,7 +10941,7 @@ function RangePicker({
|
|
|
10905
10941
|
)
|
|
10906
10942
|
}
|
|
10907
10943
|
) }),
|
|
10908
|
-
/* @__PURE__ */
|
|
10944
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex justify-end gap-2 px-4 pb-4", children: [
|
|
10909
10945
|
/* @__PURE__ */ jsx67("div", { style: { display: "inline-block" }, children: /* @__PURE__ */ jsx67(
|
|
10910
10946
|
motion15.div,
|
|
10911
10947
|
{
|
|
@@ -10972,7 +11008,7 @@ RangePicker.displayName = "RangePicker";
|
|
|
10972
11008
|
// src/components/ui/navigation/ContextMenuBase.tsx
|
|
10973
11009
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
10974
11010
|
import { CaretRightIcon as CaretRightIcon6, CheckIcon as CheckIcon9, CircleIcon as CircleIcon2 } from "@phosphor-icons/react";
|
|
10975
|
-
import { jsx as jsx68, jsxs as
|
|
11011
|
+
import { jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
10976
11012
|
function ContextMenuBase(props) {
|
|
10977
11013
|
return /* @__PURE__ */ jsx68(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
|
|
10978
11014
|
}
|
|
@@ -10997,7 +11033,7 @@ function ContextMenuSubTriggerBase({
|
|
|
10997
11033
|
children,
|
|
10998
11034
|
...props
|
|
10999
11035
|
}) {
|
|
11000
|
-
return /* @__PURE__ */
|
|
11036
|
+
return /* @__PURE__ */ jsxs48(
|
|
11001
11037
|
ContextMenuPrimitive.SubTrigger,
|
|
11002
11038
|
{
|
|
11003
11039
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -11093,7 +11129,7 @@ function ContextMenuCheckboxItemBase({
|
|
|
11093
11129
|
checked,
|
|
11094
11130
|
...props
|
|
11095
11131
|
}) {
|
|
11096
|
-
return /* @__PURE__ */
|
|
11132
|
+
return /* @__PURE__ */ jsxs48(
|
|
11097
11133
|
ContextMenuPrimitive.CheckboxItem,
|
|
11098
11134
|
{
|
|
11099
11135
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -11119,7 +11155,7 @@ function ContextMenuRadioItemBase({
|
|
|
11119
11155
|
children,
|
|
11120
11156
|
...props
|
|
11121
11157
|
}) {
|
|
11122
|
-
return /* @__PURE__ */
|
|
11158
|
+
return /* @__PURE__ */ jsxs48(
|
|
11123
11159
|
ContextMenuPrimitive.RadioItem,
|
|
11124
11160
|
{
|
|
11125
11161
|
"data-slot": "context-menu-radio-item",
|
|
@@ -11181,6 +11217,320 @@ function ContextMenuShortcutBase({
|
|
|
11181
11217
|
);
|
|
11182
11218
|
}
|
|
11183
11219
|
|
|
11220
|
+
// src/components/ui/CodeBlock.tsx
|
|
11221
|
+
import {
|
|
11222
|
+
ArrowRightIcon as ArrowRightIcon3,
|
|
11223
|
+
ArrowsOutIcon,
|
|
11224
|
+
CheckIcon as CheckIcon10,
|
|
11225
|
+
CodeIcon,
|
|
11226
|
+
CopyIcon as CopyIcon2,
|
|
11227
|
+
DownloadIcon,
|
|
11228
|
+
FileArchiveIcon,
|
|
11229
|
+
FolderIcon,
|
|
11230
|
+
GearIcon as GearIcon2,
|
|
11231
|
+
TerminalIcon
|
|
11232
|
+
} from "@phosphor-icons/react";
|
|
11233
|
+
import React43 from "react";
|
|
11234
|
+
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
|
|
11235
|
+
import { jsx as jsx69, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
11236
|
+
var CodeBlock = ({
|
|
11237
|
+
language,
|
|
11238
|
+
filename,
|
|
11239
|
+
code,
|
|
11240
|
+
highlightLines = [],
|
|
11241
|
+
tabs = [],
|
|
11242
|
+
breadcrumb = [],
|
|
11243
|
+
showStats = true
|
|
11244
|
+
}) => {
|
|
11245
|
+
const [copied, setCopied] = React43.useState(false);
|
|
11246
|
+
const [activeTab, setActiveTab] = React43.useState(0);
|
|
11247
|
+
const [isExpanded, setIsExpanded] = React43.useState(false);
|
|
11248
|
+
const tabsExist = tabs.length > 0;
|
|
11249
|
+
const cssVars = React43.useMemo(
|
|
11250
|
+
() => ({
|
|
11251
|
+
container: {
|
|
11252
|
+
backgroundColor: "hsl(var(--card))",
|
|
11253
|
+
borderColor: "hsl(var(--border))"
|
|
11254
|
+
},
|
|
11255
|
+
header: {
|
|
11256
|
+
backgroundColor: "hsl(var(--popover))",
|
|
11257
|
+
borderBottomColor: "hsl(var(--border))"
|
|
11258
|
+
},
|
|
11259
|
+
filename: { color: "hsl(var(--card-foreground))" },
|
|
11260
|
+
mutedText: { color: "hsl(var(--muted-foreground))" },
|
|
11261
|
+
icon: { color: "hsl(var(--muted-foreground))" },
|
|
11262
|
+
lineNumbers: {
|
|
11263
|
+
color: "hsl(var(--muted-foreground))",
|
|
11264
|
+
borderRight: `1px solid hsl(var(--border))`
|
|
11265
|
+
},
|
|
11266
|
+
highlightBorder: `3px solid hsl(var(--primary))`
|
|
11267
|
+
}),
|
|
11268
|
+
[]
|
|
11269
|
+
);
|
|
11270
|
+
const sanitizeCode = (input) => {
|
|
11271
|
+
if (!input) return "";
|
|
11272
|
+
let out = input.replace(
|
|
11273
|
+
/(^['"]use client['"];?\s*|\b'use client';|\b"use client";)/g,
|
|
11274
|
+
""
|
|
11275
|
+
);
|
|
11276
|
+
out = out.replace(/style=\{[\s\S]*?\}/g, "");
|
|
11277
|
+
out = out.replace(/style=(["'`])(?:\\.|(?!\1)[\s\S])*?\1/g, "");
|
|
11278
|
+
return out;
|
|
11279
|
+
};
|
|
11280
|
+
const getActiveRawCode = () => (tabsExist ? tabs[activeTab].code : code) || "";
|
|
11281
|
+
const activeRawCode = getActiveRawCode();
|
|
11282
|
+
const activeCodeSanitized = sanitizeCode(activeRawCode);
|
|
11283
|
+
const copyToClipboard = async () => {
|
|
11284
|
+
const textToCopy = activeCodeSanitized;
|
|
11285
|
+
if (textToCopy) {
|
|
11286
|
+
await navigator.clipboard.writeText(textToCopy);
|
|
11287
|
+
setCopied(true);
|
|
11288
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
11289
|
+
}
|
|
11290
|
+
};
|
|
11291
|
+
const downloadCode = () => {
|
|
11292
|
+
const textToDownload = activeCodeSanitized;
|
|
11293
|
+
const activeFilename = tabsExist ? tabs[activeTab].name : filename;
|
|
11294
|
+
if (textToDownload) {
|
|
11295
|
+
const blob = new Blob([textToDownload], { type: "text/plain" });
|
|
11296
|
+
const url = URL.createObjectURL(blob);
|
|
11297
|
+
const a = document.createElement("a");
|
|
11298
|
+
a.href = url;
|
|
11299
|
+
a.download = activeFilename;
|
|
11300
|
+
document.body.appendChild(a);
|
|
11301
|
+
a.click();
|
|
11302
|
+
document.body.removeChild(a);
|
|
11303
|
+
URL.revokeObjectURL(url);
|
|
11304
|
+
}
|
|
11305
|
+
};
|
|
11306
|
+
const activeLanguage = tabsExist ? tabs[activeTab].language || language : language;
|
|
11307
|
+
const activeHighlightLines = tabsExist ? tabs[activeTab].highlightLines || [] : highlightLines;
|
|
11308
|
+
const getLanguageIcon = (lang) => {
|
|
11309
|
+
switch (lang.toLowerCase()) {
|
|
11310
|
+
case "javascript":
|
|
11311
|
+
case "jsx":
|
|
11312
|
+
case "typescript":
|
|
11313
|
+
case "tsx":
|
|
11314
|
+
return /* @__PURE__ */ jsx69(CodeIcon, { size: "1em", className: "text-yellow-400" });
|
|
11315
|
+
case "bash":
|
|
11316
|
+
case "shell":
|
|
11317
|
+
return /* @__PURE__ */ jsx69(TerminalIcon, { size: "1em", className: "text-green-400" });
|
|
11318
|
+
default:
|
|
11319
|
+
return /* @__PURE__ */ jsx69(FileArchiveIcon, { size: "1em", className: "text-blue-400" });
|
|
11320
|
+
}
|
|
11321
|
+
};
|
|
11322
|
+
const getCodeStats = (source) => {
|
|
11323
|
+
const lines = source.split("\n").length;
|
|
11324
|
+
const chars = source.length;
|
|
11325
|
+
const words = source.split(/\s+/).filter((word) => word.length > 0).length;
|
|
11326
|
+
return { lines, chars, words };
|
|
11327
|
+
};
|
|
11328
|
+
const stats = showStats ? getCodeStats(activeCodeSanitized) : null;
|
|
11329
|
+
return /* @__PURE__ */ jsxs49(
|
|
11330
|
+
"div",
|
|
11331
|
+
{
|
|
11332
|
+
className: `relative w-full rounded-xl overflow-hidden shadow-sm border no-underline-code`,
|
|
11333
|
+
style: cssVars.container,
|
|
11334
|
+
children: [
|
|
11335
|
+
/* @__PURE__ */ jsx69("style", { children: `.no-underline-code a { text-decoration: none !important; text-shadow: none !important; box-shadow: none !important; } .no-underline-code code a { text-decoration: none !important; }` }),
|
|
11336
|
+
/* @__PURE__ */ jsxs49("div", { className: `flex items-stretch min-h-[3rem]`, style: cssVars.header, children: [
|
|
11337
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex-1 flex items-center min-w-0 px-3", children: [
|
|
11338
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex gap-2 mr-3 shrink-0", children: [
|
|
11339
|
+
/* @__PURE__ */ jsx69("div", { className: "w-3 h-3 rounded-full bg-red-500" }),
|
|
11340
|
+
/* @__PURE__ */ jsx69("div", { className: "w-3 h-3 rounded-full bg-yellow-500" }),
|
|
11341
|
+
/* @__PURE__ */ jsx69("div", { className: "w-3 h-3 rounded-full bg-green-500" })
|
|
11342
|
+
] }),
|
|
11343
|
+
breadcrumb.length > 0 && /* @__PURE__ */ jsxs49("div", { className: "flex items-center min-w-0", children: [
|
|
11344
|
+
/* @__PURE__ */ jsx69(FolderIcon, { size: "1em", style: cssVars.icon }),
|
|
11345
|
+
/* @__PURE__ */ jsx69("div", { className: "flex items-center min-w-0 ml-2", children: breadcrumb.map((crumb, index) => /* @__PURE__ */ jsxs49(React43.Fragment, { children: [
|
|
11346
|
+
/* @__PURE__ */ jsx69(
|
|
11347
|
+
"span",
|
|
11348
|
+
{
|
|
11349
|
+
className: "text-xs truncate",
|
|
11350
|
+
style: cssVars.mutedText,
|
|
11351
|
+
children: crumb
|
|
11352
|
+
}
|
|
11353
|
+
),
|
|
11354
|
+
index < breadcrumb.length - 1 && /* @__PURE__ */ jsx69(
|
|
11355
|
+
ArrowRightIcon3,
|
|
11356
|
+
{
|
|
11357
|
+
size: "0.75em",
|
|
11358
|
+
style: cssVars.icon,
|
|
11359
|
+
className: "shrink-0 mx-1"
|
|
11360
|
+
}
|
|
11361
|
+
)
|
|
11362
|
+
] }, index)) })
|
|
11363
|
+
] })
|
|
11364
|
+
] }),
|
|
11365
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-end shrink-0 px-2", children: [
|
|
11366
|
+
stats && /* @__PURE__ */ jsxs49(
|
|
11367
|
+
"div",
|
|
11368
|
+
{
|
|
11369
|
+
className: `text-xs mx-2 truncate hidden md:block`,
|
|
11370
|
+
style: cssVars.mutedText,
|
|
11371
|
+
children: [
|
|
11372
|
+
stats.lines,
|
|
11373
|
+
"L \u2022 ",
|
|
11374
|
+
stats.words,
|
|
11375
|
+
"W"
|
|
11376
|
+
]
|
|
11377
|
+
}
|
|
11378
|
+
),
|
|
11379
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex", children: [
|
|
11380
|
+
/* @__PURE__ */ jsx69(
|
|
11381
|
+
"button",
|
|
11382
|
+
{
|
|
11383
|
+
onClick: () => setIsExpanded(!isExpanded),
|
|
11384
|
+
className: `p-2 transition-colors hover:bg-gray-200 dark:hover:bg-slate-700`,
|
|
11385
|
+
title: "Toggle fullscreen",
|
|
11386
|
+
children: /* @__PURE__ */ jsx69(ArrowsOutIcon, { size: "1em", style: cssVars.icon })
|
|
11387
|
+
}
|
|
11388
|
+
),
|
|
11389
|
+
/* @__PURE__ */ jsx69(
|
|
11390
|
+
"button",
|
|
11391
|
+
{
|
|
11392
|
+
onClick: downloadCode,
|
|
11393
|
+
className: `p-2 transition-colors hover:bg-gray-200 dark:hover:bg-slate-700`,
|
|
11394
|
+
title: "Download code",
|
|
11395
|
+
children: /* @__PURE__ */ jsx69(DownloadIcon, { size: "1em", style: cssVars.icon })
|
|
11396
|
+
}
|
|
11397
|
+
),
|
|
11398
|
+
/* @__PURE__ */ jsx69(
|
|
11399
|
+
"button",
|
|
11400
|
+
{
|
|
11401
|
+
onClick: copyToClipboard,
|
|
11402
|
+
className: `p-2 transition-colors hover:bg-gray-200 dark:hover:bg-slate-700`,
|
|
11403
|
+
title: "Copy code",
|
|
11404
|
+
children: copied ? /* @__PURE__ */ jsx69(
|
|
11405
|
+
CheckIcon10,
|
|
11406
|
+
{
|
|
11407
|
+
size: "1em",
|
|
11408
|
+
style: { color: "hsl(var(--primary))" }
|
|
11409
|
+
}
|
|
11410
|
+
) : /* @__PURE__ */ jsx69(CopyIcon2, { size: "1em", style: cssVars.icon })
|
|
11411
|
+
}
|
|
11412
|
+
)
|
|
11413
|
+
] })
|
|
11414
|
+
] })
|
|
11415
|
+
] }),
|
|
11416
|
+
tabsExist && /* @__PURE__ */ jsx69(
|
|
11417
|
+
"div",
|
|
11418
|
+
{
|
|
11419
|
+
className: `flex border-b overflow-x-auto`,
|
|
11420
|
+
style: {
|
|
11421
|
+
borderColor: "hsl(var(--border))",
|
|
11422
|
+
backgroundColor: "hsl(var(--popover))"
|
|
11423
|
+
},
|
|
11424
|
+
children: tabs.map((tab, index) => /* @__PURE__ */ jsxs49(
|
|
11425
|
+
"button",
|
|
11426
|
+
{
|
|
11427
|
+
onClick: () => setActiveTab(index),
|
|
11428
|
+
className: `flex items-center gap-2 px-4 py-2 text-sm transition-all duration-200 border-b-2 shrink-0 ${activeTab === index ? "border-blue-500" : "border-transparent"}`,
|
|
11429
|
+
style: activeTab === index ? {
|
|
11430
|
+
backgroundColor: "hsl(var(--card))",
|
|
11431
|
+
color: "hsl(var(--card-foreground))"
|
|
11432
|
+
} : void 0,
|
|
11433
|
+
children: [
|
|
11434
|
+
getLanguageIcon(tab.language || language),
|
|
11435
|
+
/* @__PURE__ */ jsx69("span", { className: "truncate max-w-[10rem]", children: tab.name })
|
|
11436
|
+
]
|
|
11437
|
+
},
|
|
11438
|
+
index
|
|
11439
|
+
))
|
|
11440
|
+
}
|
|
11441
|
+
),
|
|
11442
|
+
!tabsExist && filename && /* @__PURE__ */ jsx69(
|
|
11443
|
+
"div",
|
|
11444
|
+
{
|
|
11445
|
+
className: "flex items-center px-3 py-2 border-b",
|
|
11446
|
+
style: {
|
|
11447
|
+
borderColor: "hsl(var(--border))",
|
|
11448
|
+
backgroundColor: "hsl(var(--popover))"
|
|
11449
|
+
},
|
|
11450
|
+
children: /* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
11451
|
+
getLanguageIcon(language),
|
|
11452
|
+
/* @__PURE__ */ jsx69(
|
|
11453
|
+
"span",
|
|
11454
|
+
{
|
|
11455
|
+
className: "text-sm font-medium truncate",
|
|
11456
|
+
style: cssVars.filename,
|
|
11457
|
+
children: filename
|
|
11458
|
+
}
|
|
11459
|
+
)
|
|
11460
|
+
] })
|
|
11461
|
+
}
|
|
11462
|
+
),
|
|
11463
|
+
/* @__PURE__ */ jsx69(
|
|
11464
|
+
"div",
|
|
11465
|
+
{
|
|
11466
|
+
className: `relative ${isExpanded ? "max-h-screen overflow-auto" : "max-h-96 overflow-auto"}`,
|
|
11467
|
+
children: /* @__PURE__ */ jsx69(
|
|
11468
|
+
SyntaxHighlighter,
|
|
11469
|
+
{
|
|
11470
|
+
language: activeLanguage,
|
|
11471
|
+
customStyle: {
|
|
11472
|
+
margin: 0,
|
|
11473
|
+
padding: "1rem",
|
|
11474
|
+
fontSize: "0.875rem",
|
|
11475
|
+
lineHeight: "1.5",
|
|
11476
|
+
backgroundColor: "hsl(var(--card))"
|
|
11477
|
+
},
|
|
11478
|
+
wrapLines: true,
|
|
11479
|
+
showLineNumbers: true,
|
|
11480
|
+
lineNumberStyle: {
|
|
11481
|
+
...cssVars.lineNumbers,
|
|
11482
|
+
minWidth: "3em",
|
|
11483
|
+
paddingRight: "1em",
|
|
11484
|
+
marginRight: "1em"
|
|
11485
|
+
},
|
|
11486
|
+
lineProps: (lineNumber) => ({
|
|
11487
|
+
style: {
|
|
11488
|
+
backgroundColor: activeHighlightLines.includes(lineNumber) ? "hsl(var(--highlight))" : "transparent",
|
|
11489
|
+
display: "block",
|
|
11490
|
+
width: "100%",
|
|
11491
|
+
borderLeft: activeHighlightLines.includes(lineNumber) ? cssVars.highlightBorder : "none",
|
|
11492
|
+
paddingLeft: "0.5rem"
|
|
11493
|
+
}
|
|
11494
|
+
}),
|
|
11495
|
+
PreTag: "div",
|
|
11496
|
+
children: String(activeCodeSanitized)
|
|
11497
|
+
}
|
|
11498
|
+
)
|
|
11499
|
+
}
|
|
11500
|
+
),
|
|
11501
|
+
showStats && stats && /* @__PURE__ */ jsxs49(
|
|
11502
|
+
"div",
|
|
11503
|
+
{
|
|
11504
|
+
className: "px-3 py-2 border-t text-xs flex items-center justify-between min-h-[2.5rem]",
|
|
11505
|
+
style: {
|
|
11506
|
+
borderTopColor: "hsl(var(--border))",
|
|
11507
|
+
backgroundColor: "hsl(var(--popover))",
|
|
11508
|
+
color: "hsl(var(--muted-foreground))"
|
|
11509
|
+
},
|
|
11510
|
+
children: [
|
|
11511
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
11512
|
+
/* @__PURE__ */ jsx69("span", { className: "truncate", children: activeLanguage.toUpperCase() }),
|
|
11513
|
+
/* @__PURE__ */ jsxs49("span", { className: "truncate hidden sm:inline", children: [
|
|
11514
|
+
stats.lines,
|
|
11515
|
+
" lines"
|
|
11516
|
+
] }),
|
|
11517
|
+
/* @__PURE__ */ jsxs49("span", { className: "truncate hidden md:inline", children: [
|
|
11518
|
+
stats.chars,
|
|
11519
|
+
" chars"
|
|
11520
|
+
] })
|
|
11521
|
+
] }),
|
|
11522
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-1 shrink-0", children: [
|
|
11523
|
+
/* @__PURE__ */ jsx69(GearIcon2, { size: "0.75em", style: cssVars.icon }),
|
|
11524
|
+
/* @__PURE__ */ jsx69("span", { children: "UTF-8" })
|
|
11525
|
+
] })
|
|
11526
|
+
]
|
|
11527
|
+
}
|
|
11528
|
+
)
|
|
11529
|
+
]
|
|
11530
|
+
}
|
|
11531
|
+
);
|
|
11532
|
+
};
|
|
11533
|
+
|
|
11184
11534
|
// src/hooks/use-drag.tsx
|
|
11185
11535
|
import { useState as useState20, useCallback as useCallback12, useRef as useRef8, useEffect as useEffect18 } from "react";
|
|
11186
11536
|
var useDrag = (options = {}) => {
|
|
@@ -11303,6 +11653,7 @@ export {
|
|
|
11303
11653
|
CheckboxBase,
|
|
11304
11654
|
CloseAllButton_default as CloseAllButton,
|
|
11305
11655
|
CloseButton,
|
|
11656
|
+
CodeBlock,
|
|
11306
11657
|
CollapsibleBase,
|
|
11307
11658
|
CollapsibleContentBase,
|
|
11308
11659
|
CollapsibleTriggerBase,
|