@goopti/ui 1.0.2 → 1.1.0

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.
Files changed (138) hide show
  1. package/dist/components/alert-dialog.d.ts +14 -0
  2. package/dist/components/alert-dialog.d.ts.map +1 -0
  3. package/dist/components/alert-dialog.js +25 -0
  4. package/dist/components/alert-dialog.js.map +1 -0
  5. package/dist/components/avatar.d.ts +8 -0
  6. package/dist/components/avatar.d.ts.map +1 -0
  7. package/dist/components/avatar.js +10 -0
  8. package/dist/components/avatar.js.map +1 -0
  9. package/dist/components/badge.d.ts +10 -0
  10. package/dist/components/badge.d.ts.map +1 -0
  11. package/dist/components/badge.js +22 -0
  12. package/dist/components/badge.js.map +1 -0
  13. package/dist/components/button.d.ts +11 -0
  14. package/dist/components/button.d.ts.map +1 -0
  15. package/dist/components/button.js +30 -0
  16. package/dist/components/button.js.map +1 -0
  17. package/dist/components/calendar.d.ts +8 -0
  18. package/dist/components/calendar.d.ts.map +1 -0
  19. package/dist/components/calendar.js +50 -0
  20. package/dist/components/calendar.js.map +1 -0
  21. package/dist/components/card.d.ts +21 -0
  22. package/dist/components/card.d.ts.map +1 -0
  23. package/dist/components/card.js +17 -0
  24. package/dist/components/card.js.map +1 -0
  25. package/dist/components/carousel.d.ts +10 -0
  26. package/dist/components/carousel.d.ts.map +1 -0
  27. package/dist/components/carousel.js +12 -0
  28. package/dist/components/carousel.js.map +1 -0
  29. package/dist/components/checkbox.d.ts +8 -0
  30. package/dist/components/checkbox.d.ts.map +1 -0
  31. package/dist/components/checkbox.js +8 -0
  32. package/dist/components/checkbox.js.map +1 -0
  33. package/dist/components/collapsible.d.ts +9 -0
  34. package/dist/components/collapsible.d.ts.map +1 -0
  35. package/dist/components/collapsible.js +11 -0
  36. package/dist/components/collapsible.js.map +1 -0
  37. package/dist/components/date-picker.d.ts +9 -0
  38. package/dist/components/date-picker.d.ts.map +1 -0
  39. package/dist/components/date-picker.js +29 -0
  40. package/dist/components/date-picker.js.map +1 -0
  41. package/dist/components/dialog.d.ts +20 -0
  42. package/dist/components/dialog.d.ts.map +1 -0
  43. package/dist/components/dialog.js +29 -0
  44. package/dist/components/dialog.js.map +1 -0
  45. package/dist/components/dropdown-menu.d.ts +15 -0
  46. package/dist/components/dropdown-menu.d.ts.map +1 -0
  47. package/dist/components/dropdown-menu.js +26 -0
  48. package/dist/components/dropdown-menu.js.map +1 -0
  49. package/dist/components/hover-card.d.ts +8 -0
  50. package/dist/components/hover-card.d.ts.map +1 -0
  51. package/dist/components/hover-card.js +10 -0
  52. package/dist/components/hover-card.js.map +1 -0
  53. package/dist/components/icon.d.ts +8 -0
  54. package/dist/components/icon.d.ts.map +1 -0
  55. package/dist/components/icon.js +11 -0
  56. package/dist/components/icon.js.map +1 -0
  57. package/dist/components/input-otp.d.ts +9 -0
  58. package/dist/components/input-otp.d.ts.map +1 -0
  59. package/dist/components/input-otp.js +22 -0
  60. package/dist/components/input-otp.js.map +1 -0
  61. package/dist/components/input.d.ts +6 -0
  62. package/dist/components/input.d.ts.map +1 -0
  63. package/dist/components/input.js +7 -0
  64. package/dist/components/input.js.map +1 -0
  65. package/dist/components/label.d.ts +6 -0
  66. package/dist/components/label.d.ts.map +1 -0
  67. package/dist/components/label.js +7 -0
  68. package/dist/components/label.js.map +1 -0
  69. package/dist/components/popover.d.ts +9 -0
  70. package/dist/components/popover.d.ts.map +1 -0
  71. package/dist/components/popover.js +21 -0
  72. package/dist/components/popover.js.map +1 -0
  73. package/dist/components/progress.d.ts +7 -0
  74. package/dist/components/progress.d.ts.map +1 -0
  75. package/dist/components/progress.js +7 -0
  76. package/dist/components/progress.js.map +1 -0
  77. package/dist/components/radio-group.d.ts +12 -0
  78. package/dist/components/radio-group.d.ts.map +1 -0
  79. package/dist/components/radio-group.js +7 -0
  80. package/dist/components/radio-group.js.map +1 -0
  81. package/dist/components/scroll-area.d.ts +7 -0
  82. package/dist/components/scroll-area.d.ts.map +1 -0
  83. package/dist/components/scroll-area.js +7 -0
  84. package/dist/components/scroll-area.js.map +1 -0
  85. package/dist/components/select.d.ts +13 -0
  86. package/dist/components/select.d.ts.map +1 -0
  87. package/dist/components/select.js +26 -0
  88. package/dist/components/select.js.map +1 -0
  89. package/dist/components/separator.d.ts +7 -0
  90. package/dist/components/separator.d.ts.map +1 -0
  91. package/dist/components/separator.js +7 -0
  92. package/dist/components/separator.js.map +1 -0
  93. package/dist/components/sheet.d.ts +10 -0
  94. package/dist/components/sheet.d.ts.map +1 -0
  95. package/dist/components/sheet.js +20 -0
  96. package/dist/components/sheet.js.map +1 -0
  97. package/dist/components/skeleton.d.ts +6 -0
  98. package/dist/components/skeleton.d.ts.map +1 -0
  99. package/dist/components/skeleton.js +7 -0
  100. package/dist/components/skeleton.js.map +1 -0
  101. package/dist/components/slider.d.ts +11 -0
  102. package/dist/components/slider.d.ts.map +1 -0
  103. package/dist/components/slider.js +31 -0
  104. package/dist/components/slider.js.map +1 -0
  105. package/dist/components/switch.d.ts +8 -0
  106. package/dist/components/switch.d.ts.map +1 -0
  107. package/dist/components/switch.js +7 -0
  108. package/dist/components/switch.js.map +1 -0
  109. package/dist/components/textarea.d.ts +6 -0
  110. package/dist/components/textarea.d.ts.map +1 -0
  111. package/dist/components/textarea.js +7 -0
  112. package/dist/components/textarea.js.map +1 -0
  113. package/dist/components/toast.d.ts +19 -0
  114. package/dist/components/toast.d.ts.map +1 -0
  115. package/dist/components/toast.js +25 -0
  116. package/dist/components/toast.js.map +1 -0
  117. package/dist/components/tooltip.d.ts +9 -0
  118. package/dist/components/tooltip.d.ts.map +1 -0
  119. package/dist/components/tooltip.js +16 -0
  120. package/dist/components/tooltip.js.map +1 -0
  121. package/dist/hooks/use-toast.d.ts +4 -0
  122. package/dist/hooks/use-toast.d.ts.map +1 -0
  123. package/dist/hooks/use-toast.js +9 -0
  124. package/dist/hooks/use-toast.js.map +1 -0
  125. package/dist/index.d.ts +62 -0
  126. package/dist/index.d.ts.map +1 -0
  127. package/dist/index.js +36 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/lib/utils.d.ts +3 -0
  130. package/dist/lib/utils.d.ts.map +1 -0
  131. package/dist/lib/utils.js +6 -0
  132. package/dist/lib/utils.js.map +1 -0
  133. package/dist/theme.css +140 -0
  134. package/package.json +1 -1
  135. package/dist/assets/index-gWZidFXq.js +0 -203
  136. package/dist/assets/index-p3H2VfDS.css +0 -1
  137. package/dist/assets/logo-opti-D621QI7V.png +0 -0
  138. package/dist/index.html +0 -15
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ export interface AlertDialogProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ open?: boolean;
4
+ onClose?: () => void;
5
+ onConfirm?: () => void;
6
+ title: string;
7
+ description: string;
8
+ confirmLabel?: string;
9
+ cancelLabel?: string;
10
+ destructive?: boolean;
11
+ }
12
+ declare const AlertDialog: React.ForwardRefExoticComponent<AlertDialogProps & React.RefAttributes<HTMLDivElement>>;
13
+ export { AlertDialog };
14
+ //# sourceMappingURL=alert-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../src/components/alert-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,WAAW,yFAiEhB,CAAC;AAGF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ const AlertDialog = React.forwardRef(({ open = false, onClose, onConfirm, title, description, confirmLabel = "Continuar", cancelLabel = "Cancelar", destructive, ...props }, ref) => {
5
+ React.useEffect(() => {
6
+ const onKey = (e) => {
7
+ if (e.key === "Escape")
8
+ onClose?.();
9
+ };
10
+ if (open)
11
+ document.addEventListener("keydown", onKey);
12
+ return () => document.removeEventListener("keydown", onKey);
13
+ }, [open, onClose]);
14
+ if (!open)
15
+ return null;
16
+ return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [_jsx("div", { className: "animate-overlay absolute inset-0 bg-black/50 backdrop-blur-[2px]" }), _jsxs("div", { ref: ref, className: "animate-content relative z-10 w-full max-w-md rounded-xl border bg-card p-6 shadow-lg", ...props, children: [_jsx("h2", { className: "font-display text-lg font-semibold text-foreground", children: title }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: description }), _jsxs("div", { className: "mt-6 flex justify-end gap-2", children: [_jsx("button", { onClick: onClose, className: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background disabled:pointer-events-none disabled:opacity-50 active:scale-[.98] border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2", children: cancelLabel }), _jsx("button", { onClick: () => {
17
+ onConfirm?.();
18
+ onClose?.();
19
+ }, className: cn("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background disabled:pointer-events-none disabled:opacity-50 active:scale-[.98] h-10 px-4 py-2", destructive
20
+ ? "bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm"
21
+ : "bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm"), children: confirmLabel })] })] })] }));
22
+ });
23
+ AlertDialog.displayName = "AlertDialog";
24
+ export { AlertDialog };
25
+ //# sourceMappingURL=alert-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-dialog.js","sourceRoot":"","sources":["../../src/components/alert-dialog.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAclC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CACE,EACE,IAAI,GAAG,KAAK,EACZ,OAAO,EACP,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,GAAG,WAAW,EAC1B,WAAW,GAAG,UAAU,EACxB,WAAW,EACX,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,EAAE,EAAE,CAAC;QACtC,CAAC,CAAC;QACF,IAAI,IAAI;YAAE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,eAAK,SAAS,EAAC,yDAAyD,aACtE,cACE,SAAS,EAAC,kEAAkE,GACvE,EACP,eACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,uFAAuF,KAC7F,KAAK,aAET,aAAI,SAAS,EAAC,oDAAoD,YAC/D,KAAK,GACH,EACL,YAAG,SAAS,EAAC,oCAAoC,YAAE,WAAW,GAAK,EACnE,eAAK,SAAS,EAAC,6BAA6B,aAC1C,iBACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,8YAA8Y,YAEvZ,WAAW,GACL,EACT,iBACE,OAAO,EAAE,GAAG,EAAE;oCACZ,SAAS,EAAE,EAAE,CAAC;oCACd,OAAO,EAAE,EAAE,CAAC;gCACd,CAAC,EACD,SAAS,EAAE,EAAE,CACX,+TAA+T,EAC/T,WAAW;oCACT,CAAC,CAAC,8EAA8E;oCAChF,CAAC,CAAC,kEAAkE,CACvE,YAEA,YAAY,GACN,IACL,IACF,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ export interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {
3
+ src?: string;
4
+ fallback?: string;
5
+ }
6
+ declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLSpanElement>>;
7
+ export { Avatar };
8
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACxE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,QAAA,MAAM,MAAM,qFA2BX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ const Avatar = React.forwardRef(({ className, src, fallback, ...props }, ref) => {
5
+ const [err, setErr] = React.useState(false);
6
+ return (_jsx("span", { ref: ref, className: cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full bg-muted", className), ...props, children: src && !err ? (_jsx("img", { src: src, onError: () => setErr(true), className: "aspect-square h-full w-full object-cover", alt: "avatar" })) : (_jsx("span", { className: "flex h-full w-full items-center justify-center text-sm font-semibold text-muted-foreground", children: fallback })) }));
7
+ });
8
+ Avatar.displayName = "Avatar";
9
+ export { Avatar };
10
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAOlC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,CACL,eACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,wEAAwE,EACxE,SAAS,CACV,KACG,KAAK,YAER,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CACb,cACE,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3B,SAAS,EAAC,0CAA0C,EACpD,GAAG,EAAC,QAAQ,GACZ,CACH,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,4FAA4F,YACzG,QAAQ,GACJ,CACR,GACI,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AACF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "info" | "brand" | "success" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
7
+ }
8
+ declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
9
+ export { Badge, badgeVariants };
10
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,aAAa;;8EAgBlB,CAAC;AAEF,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAC3C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,QAAA,MAAM,KAAK,oFAQV,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../lib/utils";
5
+ const badgeVariants = cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold", {
6
+ variants: {
7
+ variant: {
8
+ default: "border-transparent bg-primary text-primary-foreground",
9
+ secondary: "border-transparent bg-secondary text-secondary-foreground",
10
+ destructive: "border-transparent bg-destructive text-destructive-foreground",
11
+ success: "border-transparent bg-success text-success-foreground",
12
+ info: "border-transparent bg-info text-info-foreground",
13
+ brand: "border-transparent bg-brand text-brand-foreground",
14
+ outline: "border-border text-foreground",
15
+ },
16
+ },
17
+ defaultVariants: { variant: "default" },
18
+ });
19
+ const Badge = React.forwardRef(({ className, variant, ...props }, ref) => (_jsx("span", { ref: ref, className: cn(badgeVariants({ variant, className })), ...props })));
20
+ Badge.displayName = "Badge";
21
+ export { Badge, badgeVariants };
22
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,MAAM,aAAa,GAAG,GAAG,CACvB,kFAAkF,EAClF;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,uDAAuD;YAChE,SAAS,EAAE,2DAA2D;YACtE,WAAW,EAAE,+DAA+D;YAC5E,OAAO,EAAE,uDAAuD;YAChE,IAAI,EAAE,iDAAiD;YACvD,KAAK,EAAE,mDAAmD;YAC1D,OAAO,EAAE,+BAA+B;SACzC;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;CACxC,CACF,CAAC;AAMF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACzC,eACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAChD,KAAK,GACT,CACH,CACF,CAAC;AACF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "link" | "primary" | "destructive" | "outline" | "secondary" | "ghost" | "info" | "brand" | null | undefined;
5
+ size?: "default" | "icon" | "sm" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ }
9
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
10
+ export { Button, buttonVariants };
11
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EAwBnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;CAAG;AAE1C,QAAA,MAAM,MAAM,uFAQX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../lib/utils";
5
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background disabled:pointer-events-none disabled:opacity-50 active:scale-[.98] [&_svg]:pointer-events-none", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm",
9
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm",
10
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm",
11
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
12
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
13
+ ghost: "hover:bg-accent hover:text-accent-foreground",
14
+ link: "text-primary underline-offset-4 hover:underline",
15
+ info: "bg-info text-info-foreground hover:bg-info/90 shadow-sm",
16
+ brand: "bg-brand text-brand-foreground hover:bg-brand/90 shadow-sm",
17
+ },
18
+ size: {
19
+ default: "h-10 px-4 py-2",
20
+ sm: "h-9 rounded-md px-3 text-[13px]",
21
+ lg: "h-11 rounded-md px-8 text-base",
22
+ icon: "h-10 w-10",
23
+ },
24
+ },
25
+ defaultVariants: { variant: "default", size: "default" },
26
+ });
27
+ const Button = React.forwardRef(({ className, variant, size, ...props }, ref) => (_jsx("button", { className: cn(buttonVariants({ variant, size, className })), ref: ref, ...props })));
28
+ Button.displayName = "Button";
29
+ export { Button, buttonVariants };
30
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,MAAM,cAAc,GAAG,GAAG,CACxB,4UAA4U,EAC5U;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAM,kEAAkE;YAC/E,OAAO,EAAM,kEAAkE;YAC/E,WAAW,EAAE,8EAA8E;YAC3F,OAAO,EAAM,gFAAgF;YAC7F,SAAS,EAAI,8DAA8D;YAC3E,KAAK,EAAQ,8CAA8C;YAC3D,IAAI,EAAS,iDAAiD;YAC9D,IAAI,EAAS,yDAAyD;YACtE,KAAK,EAAQ,4DAA4D;SAC1E;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,gBAAgB;YACzB,EAAE,EAAE,iCAAiC;YACrC,EAAE,EAAE,gCAAgC;YACpC,IAAI,EAAE,WAAW;SAClB;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACzD,CACF,CAAC;AAMF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC/C,iBACE,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CACF,CAAC;AACF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ export interface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
+ value?: Date;
4
+ onChange?: (date: Date) => void;
5
+ }
6
+ declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<HTMLDivElement>>;
7
+ export { Calendar };
8
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8B/B,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC3F,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACjC;AAED,QAAA,MAAM,QAAQ,sFA4Eb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ import { Icon } from "./icon";
5
+ const MONTHS_PT = [
6
+ "Janeiro",
7
+ "Fevereiro",
8
+ "Março",
9
+ "Abril",
10
+ "Maio",
11
+ "Junho",
12
+ "Julho",
13
+ "Agosto",
14
+ "Setembro",
15
+ "Outubro",
16
+ "Novembro",
17
+ "Dezembro",
18
+ ];
19
+ const DOW_PT = ["D", "S", "T", "Q", "Q", "S", "S"];
20
+ function sameDay(a, b) {
21
+ return !!(a &&
22
+ b &&
23
+ a.getFullYear() === b.getFullYear() &&
24
+ a.getMonth() === b.getMonth() &&
25
+ a.getDate() === b.getDate());
26
+ }
27
+ const Calendar = React.forwardRef(({ value, onChange, className, ...props }, ref) => {
28
+ const today = new Date();
29
+ const [view, setView] = React.useState(() => value
30
+ ? new Date(value.getFullYear(), value.getMonth(), 1)
31
+ : new Date(today.getFullYear(), today.getMonth(), 1));
32
+ const year = view.getFullYear();
33
+ const month = view.getMonth();
34
+ const firstDow = new Date(year, month, 1).getDay();
35
+ const daysInMonth = new Date(year, month + 1, 0).getDate();
36
+ const cells = [];
37
+ for (let i = 0; i < firstDow; i++)
38
+ cells.push(null);
39
+ for (let d = 1; d <= daysInMonth; d++)
40
+ cells.push(new Date(year, month, d));
41
+ const shift = (n) => setView(new Date(year, month + n, 1));
42
+ return (_jsxs("div", { ref: ref, className: cn("w-fit rounded-lg border bg-card p-3", className), ...props, children: [_jsxs("div", { className: "mb-2 flex items-center justify-between px-1", children: [_jsx("button", { onClick: () => shift(-1), className: "inline-flex h-7 w-7 items-center justify-center rounded-md border border-input hover:bg-accent transition-colors", children: _jsx(Icon, { name: "chevron-left", size: 15 }) }), _jsxs("span", { className: "text-sm font-semibold text-foreground", children: [MONTHS_PT[month], " ", year] }), _jsx("button", { onClick: () => shift(1), className: "inline-flex h-7 w-7 items-center justify-center rounded-md border border-input hover:bg-accent transition-colors", children: _jsx(Icon, { name: "chevron-right", size: 15 }) })] }), _jsxs("div", { className: "grid grid-cols-7 gap-1", children: [DOW_PT.map((d, i) => (_jsx("div", { className: "flex h-8 w-9 items-center justify-center text-xs font-medium text-muted-foreground", children: d }, i))), cells.map((d, i) => d === null ? (_jsx("div", { className: "h-9 w-9" }, i)) : (_jsx("button", { onClick: () => onChange?.(d), className: cn("inline-flex h-9 w-9 items-center justify-center rounded-md text-sm transition-colors", sameDay(d, value)
43
+ ? "bg-primary text-primary-foreground font-semibold"
44
+ : sameDay(d, today)
45
+ ? "bg-accent text-accent-foreground font-medium"
46
+ : "text-foreground hover:bg-accent"), children: d.getDate() }, i)))] })] }));
47
+ });
48
+ Calendar.displayName = "Calendar";
49
+ export { Calendar };
50
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ }
4
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
5
+ export interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
6
+ }
7
+ declare const CardHeader: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
8
+ export interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
9
+ }
10
+ declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLHeadingElement>>;
11
+ export interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
12
+ }
13
+ declare const CardDescription: React.ForwardRefExoticComponent<CardDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
14
+ export interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
15
+ }
16
+ declare const CardContent: React.ForwardRefExoticComponent<CardContentProps & React.RefAttributes<HTMLDivElement>>;
17
+ export interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
18
+ }
19
+ declare const CardFooter: React.ForwardRefExoticComponent<CardFooterProps & React.RefAttributes<HTMLDivElement>>;
20
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, };
21
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAE1E,QAAA,MAAM,IAAI,kFAWT,CAAC;AAGF,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEhF,QAAA,MAAM,UAAU,wFAQf,CAAC;AAGF,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;CAAG;AAEnF,QAAA,MAAM,SAAS,2FAWd,CAAC;AAGF,MAAM,WAAW,oBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;CAAG;AAEvD,QAAA,MAAM,eAAe,mGASnB,CAAC;AAGH,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEjF,QAAA,MAAM,WAAW,yFAIhB,CAAC;AAGF,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEhF,QAAA,MAAM,UAAU,wFAQf,CAAC;AAGF,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,GACZ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ const Card = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("rounded-xl border bg-card text-card-foreground shadow-sm", className), ...props })));
5
+ Card.displayName = "Card";
6
+ const CardHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })));
7
+ CardHeader.displayName = "CardHeader";
8
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx("h3", { ref: ref, className: cn("font-display text-xl font-semibold leading-none tracking-tight", className), ...props })));
9
+ CardTitle.displayName = "CardTitle";
10
+ const CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx("p", { ref: ref, className: cn("text-sm text-muted-foreground", className), ...props })));
11
+ CardDescription.displayName = "CardDescription";
12
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("p-6 pt-0", className), ...props })));
13
+ CardContent.displayName = "CardContent";
14
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex items-center p-6 pt-0", className), ...props })));
15
+ CardFooter.displayName = "CardFooter";
16
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, };
17
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAIlC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAC3B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,SAAS,CACV,KACG,KAAK,GACT,CACH,CACF,CAAC;AACF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAI1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CACF,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAItC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,aACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,gEAAgE,EAChE,SAAS,CACV,KACG,KAAK,GACT,CACH,CACF,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAKpC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAGtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,YACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAIhD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACnE,CACF,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAIxC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CACF,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,GACZ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ export interface CarouselProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ slides: Array<{
4
+ label: string;
5
+ n: number;
6
+ }>;
7
+ }
8
+ declare const Carousel: React.ForwardRefExoticComponent<CarouselProps & React.RefAttributes<HTMLDivElement>>;
9
+ export { Carousel };
10
+ //# sourceMappingURL=carousel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../src/components/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED,QAAA,MAAM,QAAQ,sFAwDb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ import { Icon } from "./icon";
5
+ const Carousel = React.forwardRef(({ slides, className, ...props }, ref) => {
6
+ const [i, setI] = React.useState(0);
7
+ const go = (n) => setI((i + n + slides.length) % slides.length);
8
+ return (_jsxs("div", { ref: ref, className: cn("relative", className), ...props, children: [_jsx("div", { className: "overflow-hidden rounded-lg border", children: _jsx("div", { className: "flex transition-transform duration-300", style: { transform: `translateX(-${i * 100}%)` }, children: slides.map((s, k) => (_jsx("div", { className: "flex h-44 w-full flex-none items-center justify-center bg-muted", children: _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "font-display text-4xl font-semibold text-foreground", children: s.n }), _jsx("div", { className: "mt-1 text-sm text-muted-foreground", children: s.label })] }) }, k))) }) }), _jsx("button", { onClick: () => go(-1), className: "absolute -left-3 top-1/2 -translate-y-1/2 inline-flex h-9 w-9 items-center justify-center rounded-full border bg-card shadow-sm hover:bg-accent transition-colors", children: _jsx(Icon, { name: "chevron-left", size: 16 }) }), _jsx("button", { onClick: () => go(1), className: "absolute -right-3 top-1/2 -translate-y-1/2 inline-flex h-9 w-9 items-center justify-center rounded-full border bg-card shadow-sm hover:bg-accent transition-colors", children: _jsx(Icon, { name: "chevron-right", size: 16 }) }), _jsx("div", { className: "mt-3 flex justify-center gap-1.5", children: slides.map((_, k) => (_jsx("button", { onClick: () => setI(k), className: cn("h-1.5 rounded-full transition-all", k === i ? "w-5 bg-primary" : "w-1.5 bg-border") }, k))) })] }));
9
+ });
10
+ Carousel.displayName = "Carousel";
11
+ export { Carousel };
12
+ //# sourceMappingURL=carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../src/components/carousel.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM9B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACvC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAExE,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,aAC5D,cAAK,SAAS,EAAC,mCAAmC,YAChD,cACE,SAAS,EAAC,wCAAwC,EAClD,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,GAAG,GAAG,IAAI,EAAE,YAE/C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,cAEE,SAAS,EAAC,iEAAiE,YAE3E,eAAK,SAAS,EAAC,aAAa,aAC1B,cAAK,SAAS,EAAC,qDAAqD,YACjE,CAAC,CAAC,CAAC,GACA,EACN,cAAK,SAAS,EAAC,oCAAoC,YAChD,CAAC,CAAC,KAAK,GACJ,IACF,IAVD,CAAC,CAWF,CACP,CAAC,GACE,GACF,EACN,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACrB,SAAS,EAAC,mKAAmK,YAE7K,KAAC,IAAI,IAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAE,EAAE,GAAI,GAC/B,EACT,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACpB,SAAS,EAAC,oKAAoK,YAE9K,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,GAAI,GAChC,EACT,cAAK,SAAS,EAAC,kCAAkC,YAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,iBAEE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,EAAE,CACX,mCAAmC,EACnC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAC/C,IALI,CAAC,CAME,CACX,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ export interface CheckboxProps extends Omit<React.HTMLAttributes<HTMLButtonElement>, 'onChange'> {
3
+ checked?: boolean;
4
+ onChange?: (checked: boolean) => void;
5
+ }
6
+ declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
7
+ export { Checkbox };
8
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AAED,QAAA,MAAM,QAAQ,yFAkBb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ import { Icon } from "./icon";
5
+ const Checkbox = React.forwardRef(({ className, checked = false, onChange, id, ...props }, ref) => (_jsx("button", { ref: ref, id: id, role: "checkbox", "aria-checked": checked, onClick: () => onChange?.(!checked), className: cn("peer h-5 w-5 shrink-0 rounded-[6px] border border-input ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring flex items-center justify-center", checked ? "bg-primary border-primary text-primary-foreground" : "bg-background", className), ...props, children: checked && _jsx(Icon, { name: "check", size: 14 }) })));
6
+ Checkbox.displayName = "Checkbox";
7
+ export { Checkbox };
8
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC/D,iBACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,UAAU,kBACD,OAAO,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EACnC,SAAS,EAAE,EAAE,CACX,2MAA2M,EAC3M,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,eAAe,EAC/E,SAAS,CACV,KACG,KAAK,YAER,OAAO,IAAI,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACpC,CACV,CACF,CAAC;AACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ export interface CollapsibleProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ trigger: React.ReactNode;
4
+ children: React.ReactNode;
5
+ defaultOpen?: boolean;
6
+ }
7
+ declare const Collapsible: React.ForwardRefExoticComponent<CollapsibleProps & React.RefAttributes<HTMLDivElement>>;
8
+ export { Collapsible };
9
+ //# sourceMappingURL=collapsible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../src/components/collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5E,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,WAAW,yFA+BhB,CAAC;AAGF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ import { Icon } from "./icon";
5
+ const Collapsible = React.forwardRef(({ trigger, children, defaultOpen, className, ...props }, ref) => {
6
+ const [open, setOpen] = React.useState(!!defaultOpen);
7
+ return (_jsxs("div", { ref: ref, className: cn("w-full", className), ...props, children: [_jsxs("button", { onClick: () => setOpen(!open), className: "flex w-full items-center justify-between rounded-md border bg-card px-4 py-3 text-sm font-medium text-foreground hover:bg-accent transition-colors", children: [trigger, _jsx(Icon, { name: "chevron-down", size: 16, className: cn("text-muted-foreground transition-transform", open && "rotate-180") })] }), _jsx("div", { className: "grid transition-all duration-200", style: { gridTemplateRows: open ? "1fr" : "0fr" }, children: _jsx("div", { className: "overflow-hidden", children: _jsx("div", { className: "space-y-2 px-1 pt-2", children: children }) }) })] }));
8
+ });
9
+ Collapsible.displayName = "Collapsible";
10
+ export { Collapsible };
11
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.js","sourceRoot":"","sources":["../../src/components/collapsible.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAQ9B,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEtD,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAM,KAAK,aAC1D,kBACE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAC7B,SAAS,EAAC,oJAAoJ,aAE7J,OAAO,EACR,KAAC,IAAI,IACH,IAAI,EAAC,cAAc,EACnB,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,EAAE,CACX,4CAA4C,EAC5C,IAAI,IAAI,YAAY,CACrB,GACD,IACK,EACT,cACE,SAAS,EAAC,kCAAkC,EAC5C,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,YAEjD,cAAK,SAAS,EAAC,iBAAiB,YAC9B,cAAK,SAAS,EAAC,qBAAqB,YAAE,QAAQ,GAAO,GACjD,GACF,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ export interface DatePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
+ value?: Date;
4
+ onChange?: (date: Date) => void;
5
+ placeholder?: string;
6
+ }
7
+ declare const DatePicker: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<HTMLDivElement>>;
8
+ export { DatePicker };
9
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../src/components/date-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC7F,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,wFAkDf,CAAC;AAGF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ import { Icon } from "./icon";
5
+ import { Calendar } from "./calendar";
6
+ const DatePicker = React.forwardRef(({ value, onChange, placeholder = "Escolha uma data", className, ...props }, ref) => {
7
+ const [open, setOpen] = React.useState(false);
8
+ const containerRef = React.useRef(null);
9
+ React.useEffect(() => {
10
+ const fn = (e) => {
11
+ if (containerRef.current &&
12
+ !containerRef.current.contains(e.target)) {
13
+ setOpen(false);
14
+ }
15
+ };
16
+ document.addEventListener("mousedown", fn);
17
+ return () => document.removeEventListener("mousedown", fn);
18
+ }, []);
19
+ const fmt = (d) => d
20
+ ? `${String(d.getDate()).padStart(2, "0")}/${String(d.getMonth() + 1).padStart(2, "0")}/${d.getFullYear()}`
21
+ : "";
22
+ return (_jsxs("div", { ref: containerRef, className: cn("relative inline-block", className), ...props, children: [_jsxs("button", { onClick: () => setOpen(!open), className: cn("flex h-10 w-64 items-center gap-2 rounded-md border border-input bg-background px-3 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", !value && "text-muted-foreground"), children: [_jsx(Icon, { name: "calendar", size: 16, className: "opacity-70" }), value ? fmt(value) : placeholder] }), open && (_jsx("div", { className: "animate-pop absolute z-50 mt-1.5", ref: ref, children: _jsx(Calendar, { value: value, onChange: (d) => {
23
+ onChange?.(d);
24
+ setOpen(false);
25
+ }, className: "shadow-md" }) }))] }));
26
+ });
27
+ DatePicker.displayName = "DatePicker";
28
+ export { DatePicker };
29
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../src/components/date-picker.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAG,kBAAkB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAClF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAExD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,EAAE,GAAG,CAAC,CAAa,EAAE,EAAE;YAC3B,IACE,YAAY,CAAC,OAAO;gBACpB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAChD,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,GAAG,GAAG,CAAC,CAAQ,EAAE,EAAE,CACvB,CAAC;QACC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QAC3G,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,CACL,eAAK,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAAM,KAAK,aAClF,kBACE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAC7B,SAAS,EAAE,EAAE,CACX,qKAAqK,EACrK,CAAC,KAAK,IAAI,uBAAuB,CAClC,aAED,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,GAAG,EACxD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAC1B,EACR,IAAI,IAAI,CACP,cAAK,SAAS,EAAC,kCAAkC,EAAC,GAAG,EAAE,GAAG,YACxD,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;wBACd,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,EACD,SAAS,EAAC,WAAW,GACrB,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ export interface DialogProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ open?: boolean;
4
+ onClose?: () => void;
5
+ }
6
+ declare const Dialog: React.ForwardRefExoticComponent<DialogProps & React.RefAttributes<HTMLDivElement>>;
7
+ export interface DialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
8
+ }
9
+ declare const DialogHeader: React.ForwardRefExoticComponent<DialogHeaderProps & React.RefAttributes<HTMLDivElement>>;
10
+ export interface DialogTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
11
+ }
12
+ declare const DialogTitle: React.ForwardRefExoticComponent<DialogTitleProps & React.RefAttributes<HTMLHeadingElement>>;
13
+ export interface DialogDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
14
+ }
15
+ declare const DialogDescription: React.ForwardRefExoticComponent<DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
16
+ export interface DialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ }
18
+ declare const DialogFooter: React.ForwardRefExoticComponent<DialogFooterProps & React.RefAttributes<HTMLDivElement>>;
19
+ export { Dialog, DialogHeader, DialogTitle, DialogDescription, DialogFooter, };
20
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/components/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,MAAM,oFAkCX,CAAC;AAGF,MAAM,WAAW,iBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEjD,QAAA,MAAM,YAAY,0FAQjB,CAAC;AAGF,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;CAAG;AAErD,QAAA,MAAM,WAAW,6FAWhB,CAAC;AAGF,MAAM,WAAW,sBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;CAAG;AAEvD,QAAA,MAAM,iBAAiB,qGASrB,CAAC;AAGH,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAElF,QAAA,MAAM,YAAY,0FAQjB,CAAC;AAGF,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ import { Icon } from "./icon";
5
+ const Dialog = React.forwardRef(({ open = false, onClose, children, ...props }, ref) => {
6
+ React.useEffect(() => {
7
+ const onKey = (e) => {
8
+ if (e.key === "Escape")
9
+ onClose?.();
10
+ };
11
+ if (open)
12
+ document.addEventListener("keydown", onKey);
13
+ return () => document.removeEventListener("keydown", onKey);
14
+ }, [open, onClose]);
15
+ if (!open)
16
+ return null;
17
+ return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [_jsx("div", { className: "animate-overlay absolute inset-0 bg-black/50 backdrop-blur-[2px]", onClick: onClose }), _jsxs("div", { ref: ref, className: "animate-content relative z-10 w-full max-w-lg rounded-xl border bg-card p-6 shadow-lg", ...props, children: [children, _jsx("button", { onClick: onClose, className: "absolute right-4 top-4 rounded-md p-1 text-muted-foreground opacity-70 transition hover:opacity-100 hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: _jsx(Icon, { name: "x", size: 18 }) })] })] }));
18
+ });
19
+ Dialog.displayName = "Dialog";
20
+ const DialogHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex flex-col space-y-1.5 text-left mb-4", className), ...props })));
21
+ DialogHeader.displayName = "DialogHeader";
22
+ const DialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx("h2", { ref: ref, className: cn("font-display text-xl font-semibold tracking-tight text-foreground", className), ...props })));
23
+ DialogTitle.displayName = "DialogTitle";
24
+ const DialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx("p", { ref: ref, className: cn("text-sm text-muted-foreground", className), ...props })));
25
+ DialogDescription.displayName = "DialogDescription";
26
+ const DialogFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("mt-6 flex justify-end gap-2", className), ...props })));
27
+ DialogFooter.displayName = "DialogFooter";
28
+ export { Dialog, DialogHeader, DialogTitle, DialogDescription, DialogFooter, };
29
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/components/dialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ export interface DropdownMenuProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ trigger: React.ReactNode;
4
+ items: Array<{
5
+ label: string;
6
+ icon?: string;
7
+ onClick?: () => void;
8
+ destructive?: boolean;
9
+ separator?: boolean;
10
+ }>;
11
+ align?: "start" | "end";
12
+ }
13
+ declare const DropdownMenu: React.ForwardRefExoticComponent<DropdownMenuProps & React.RefAttributes<HTMLDivElement>>;
14
+ export { DropdownMenu };
15
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../src/components/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CACzB;AAED,QAAA,MAAM,YAAY,0FA4DjB,CAAC;AAGF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ import { Icon } from "./icon";
5
+ const DropdownMenu = React.forwardRef(({ trigger, items, align = "start", className, ...props }, ref) => {
6
+ const [open, setOpen] = React.useState(false);
7
+ const containerRef = React.useRef(null);
8
+ React.useEffect(() => {
9
+ const fn = (e) => {
10
+ if (containerRef.current &&
11
+ !containerRef.current.contains(e.target)) {
12
+ setOpen(false);
13
+ }
14
+ };
15
+ document.addEventListener("mousedown", fn);
16
+ return () => document.removeEventListener("mousedown", fn);
17
+ }, []);
18
+ return (_jsxs("div", { ref: containerRef, className: "relative inline-block", children: [_jsx("span", { onClick: () => setOpen(!open), children: trigger }), open && (_jsx("div", { ref: ref, className: cn("animate-pop absolute z-50 mt-1.5 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md", align === "end" ? "right-0" : "left-0", className), ...props, children: items.map((it, i) => it.separator ? (_jsx("div", { className: "-mx-1 my-1 h-px bg-border" }, i)) : (_jsxs("button", { onClick: () => {
19
+ it.onClick?.();
20
+ setOpen(false);
21
+ }, className: cn("flex w-full items-center gap-2 rounded-[6px] px-2 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground", it.destructive &&
22
+ "text-destructive hover:bg-destructive/10 hover:text-destructive"), children: [it.icon && _jsx(Icon, { name: it.icon, size: 15 }), _jsx("span", { className: "flex-1 text-left", children: it.label })] }, i))) }))] }));
23
+ });
24
+ DropdownMenu.displayName = "DropdownMenu";
25
+ export { DropdownMenu };
26
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","sourceRoot":"","sources":["../../src/components/dropdown-menu.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAc9B,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAChE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAExD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,EAAE,GAAG,CAAC,CAAa,EAAE,EAAE;YAC3B,IACE,YAAY,CAAC,OAAO;gBACpB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAChD,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,GAAG,EAAE,YAAY,EAAE,SAAS,EAAC,uBAAuB,aACvD,eAAM,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAG,OAAO,GAAQ,EACpD,IAAI,IAAI,CACP,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mIAAmI,EACnI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACtC,SAAS,CACV,KACG,KAAK,YAER,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CACnB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CACb,cAEE,SAAS,EAAC,2BAA2B,IADhC,CAAC,CAED,CACR,CAAC,CAAC,CAAC,CACF,kBAEE,OAAO,EAAE,GAAG,EAAE;wBACZ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,EACD,SAAS,EAAE,EAAE,CACX,iIAAiI,EACjI,EAAE,CAAC,WAAW;wBACZ,iEAAiE,CACpE,aAEA,EAAE,CAAC,IAAI,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,EAC7C,eAAM,SAAS,EAAC,kBAAkB,YAAE,EAAE,CAAC,KAAK,GAAQ,KAZ/C,CAAC,CAaC,CACV,CACF,GACG,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ export interface HoverCardProps extends React.HTMLAttributes<HTMLSpanElement> {
3
+ trigger: React.ReactNode;
4
+ children: React.ReactNode;
5
+ }
6
+ declare const HoverCard: React.ForwardRefExoticComponent<HoverCardProps & React.RefAttributes<HTMLSpanElement>>;
7
+ export { HoverCard };
8
+ //# sourceMappingURL=hover-card.d.ts.map