@epa-datos/ui 0.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/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/dist/components/epa/conversion-funnel.d.ts +17 -0
  4. package/dist/components/epa/conversion-funnel.js +52 -0
  5. package/dist/components/epa/date-range-picker.d.ts +42 -0
  6. package/dist/components/epa/date-range-picker.js +184 -0
  7. package/dist/components/epa/heatmap.d.ts +25 -0
  8. package/dist/components/epa/heatmap.js +79 -0
  9. package/dist/components/epa/metric-card-group.d.ts +41 -0
  10. package/dist/components/epa/metric-card-group.js +47 -0
  11. package/dist/components/ui/accordion.d.ts +6 -0
  12. package/dist/components/ui/accordion.js +17 -0
  13. package/dist/components/ui/alert-dialog.d.ts +18 -0
  14. package/dist/components/ui/alert-dialog.js +42 -0
  15. package/dist/components/ui/alert.d.ts +10 -0
  16. package/dist/components/ui/alert.js +30 -0
  17. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  18. package/dist/components/ui/aspect-ratio.js +8 -0
  19. package/dist/components/ui/attachment.d.ts +23 -0
  20. package/dist/components/ui/attachment.js +68 -0
  21. package/dist/components/ui/avatar.d.ts +11 -0
  22. package/dist/components/ui/avatar.js +23 -0
  23. package/dist/components/ui/badge.d.ts +7 -0
  24. package/dist/components/ui/badge.js +36 -0
  25. package/dist/components/ui/breadcrumb.d.ts +10 -0
  26. package/dist/components/ui/breadcrumb.js +36 -0
  27. package/dist/components/ui/bubble.d.ts +16 -0
  28. package/dist/components/ui/bubble.js +59 -0
  29. package/dist/components/ui/button-group.d.ts +10 -0
  30. package/dist/components/ui/button-group.js +36 -0
  31. package/dist/components/ui/button.d.ts +8 -0
  32. package/dist/components/ui/button.js +34 -0
  33. package/dist/components/ui/calendar.d.ts +10 -0
  34. package/dist/components/ui/calendar.js +76 -0
  35. package/dist/components/ui/card.d.ts +12 -0
  36. package/dist/components/ui/card.js +33 -0
  37. package/dist/components/ui/carousel.d.ts +28 -0
  38. package/dist/components/ui/carousel.js +91 -0
  39. package/dist/components/ui/chart.d.ts +44 -0
  40. package/dist/components/ui/chart.js +132 -0
  41. package/dist/components/ui/checkbox.d.ts +3 -0
  42. package/dist/components/ui/checkbox.js +9 -0
  43. package/dist/components/ui/collapsible.d.ts +5 -0
  44. package/dist/components/ui/collapsible.js +13 -0
  45. package/dist/components/ui/combobox.d.ts +24 -0
  46. package/dist/components/ui/combobox.js +58 -0
  47. package/dist/components/ui/command.d.ts +19 -0
  48. package/dist/components/ui/command.js +35 -0
  49. package/dist/components/ui/context-menu.d.ts +29 -0
  50. package/dist/components/ui/context-menu.js +51 -0
  51. package/dist/components/ui/dialog.d.ts +17 -0
  52. package/dist/components/ui/dialog.js +37 -0
  53. package/dist/components/ui/direction.d.ts +1 -0
  54. package/dist/components/ui/direction.js +2 -0
  55. package/dist/components/ui/drawer.d.ts +16 -0
  56. package/dist/components/ui/drawer.js +75 -0
  57. package/dist/components/ui/dropdown-menu.d.ts +29 -0
  58. package/dist/components/ui/dropdown-menu.js +51 -0
  59. package/dist/components/ui/empty.d.ts +11 -0
  60. package/dist/components/ui/empty.js +33 -0
  61. package/dist/components/ui/field.d.ts +24 -0
  62. package/dist/components/ui/field.js +68 -0
  63. package/dist/components/ui/hover-card.d.ts +5 -0
  64. package/dist/components/ui/hover-card.js +14 -0
  65. package/dist/components/ui/input-group.d.ts +18 -0
  66. package/dist/components/ui/input-group.js +57 -0
  67. package/dist/components/ui/input-otp.d.ts +11 -0
  68. package/dist/components/ui/input-otp.js +21 -0
  69. package/dist/components/ui/input.d.ts +3 -0
  70. package/dist/components/ui/input.js +7 -0
  71. package/dist/components/ui/item.d.ts +22 -0
  72. package/dist/components/ui/item.js +78 -0
  73. package/dist/components/ui/kbd.d.ts +3 -0
  74. package/dist/components/ui/kbd.js +9 -0
  75. package/dist/components/ui/label.d.ts +3 -0
  76. package/dist/components/ui/label.js +7 -0
  77. package/dist/components/ui/marker.d.ts +10 -0
  78. package/dist/components/ui/marker.js +34 -0
  79. package/dist/components/ui/menubar.d.ts +29 -0
  80. package/dist/components/ui/menubar.js +56 -0
  81. package/dist/components/ui/message-scroller.d.ts +10 -0
  82. package/dist/components/ui/message-scroller.js +25 -0
  83. package/dist/components/ui/message.d.ts +10 -0
  84. package/dist/components/ui/message.js +21 -0
  85. package/dist/components/ui/native-select.d.ts +8 -0
  86. package/dist/components/ui/native-select.js +13 -0
  87. package/dist/components/ui/navigation-menu.d.ts +11 -0
  88. package/dist/components/ui/navigation-menu.js +31 -0
  89. package/dist/components/ui/pagination.d.ts +17 -0
  90. package/dist/components/ui/pagination.js +26 -0
  91. package/dist/components/ui/popover.d.ts +9 -0
  92. package/dist/components/ui/popover.js +23 -0
  93. package/dist/components/ui/progress.d.ts +7 -0
  94. package/dist/components/ui/progress.js +20 -0
  95. package/dist/components/ui/questionnaire.d.ts +19 -0
  96. package/dist/components/ui/questionnaire.js +52 -0
  97. package/dist/components/ui/radio-group.d.ts +5 -0
  98. package/dist/components/ui/radio-group.js +12 -0
  99. package/dist/components/ui/resizable.d.ts +7 -0
  100. package/dist/components/ui/resizable.js +14 -0
  101. package/dist/components/ui/scroll-area.d.ts +5 -0
  102. package/dist/components/ui/scroll-area.js +11 -0
  103. package/dist/components/ui/select.d.ts +15 -0
  104. package/dist/components/ui/select.js +34 -0
  105. package/dist/components/ui/separator.d.ts +3 -0
  106. package/dist/components/ui/separator.js +8 -0
  107. package/dist/components/ui/sheet.d.ts +14 -0
  108. package/dist/components/ui/sheet.js +37 -0
  109. package/dist/components/ui/sidebar.d.ts +63 -0
  110. package/dist/components/ui/sidebar.js +256 -0
  111. package/dist/components/ui/skeleton.d.ts +2 -0
  112. package/dist/components/ui/skeleton.js +6 -0
  113. package/dist/components/ui/slider.d.ts +3 -0
  114. package/dist/components/ui/slider.js +12 -0
  115. package/dist/components/ui/spinner.d.ts +2 -0
  116. package/dist/components/ui/spinner.js +7 -0
  117. package/dist/components/ui/switch.d.ts +5 -0
  118. package/dist/components/ui/switch.js +8 -0
  119. package/dist/components/ui/table.d.ts +10 -0
  120. package/dist/components/ui/table.js +28 -0
  121. package/dist/components/ui/tabs.d.ts +10 -0
  122. package/dist/components/ui/tabs.js +29 -0
  123. package/dist/components/ui/textarea.d.ts +3 -0
  124. package/dist/components/ui/textarea.js +6 -0
  125. package/dist/components/ui/toast.d.ts +16 -0
  126. package/dist/components/ui/toast.js +66 -0
  127. package/dist/components/ui/toggle-group.d.ts +11 -0
  128. package/dist/components/ui/toggle-group.js +24 -0
  129. package/dist/components/ui/toggle.d.ts +8 -0
  130. package/dist/components/ui/toggle.js +26 -0
  131. package/dist/components/ui/tooltip.d.ts +6 -0
  132. package/dist/components/ui/tooltip.js +17 -0
  133. package/dist/hooks/use-mobile.d.ts +1 -0
  134. package/dist/hooks/use-mobile.js +15 -0
  135. package/dist/lib/utils.d.ts +2 -0
  136. package/dist/lib/utils.js +5 -0
  137. package/dist/styles/tokens.css +200 -0
  138. package/package.json +100 -0
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { OTPInput } from "input-otp";
3
+ declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & {
4
+ containerClassName?: string;
5
+ }): React.JSX.Element;
6
+ declare function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
+ declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<"div"> & {
8
+ index: number;
9
+ }): React.JSX.Element;
10
+ declare function InputOTPSeparator({ ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { OTPInput, OTPInputContext } from "input-otp";
5
+ import { cn } from "../../lib/utils.js";
6
+ import { MinusIcon } from "lucide-react";
7
+ function InputOTP({ className, containerClassName, ...props }) {
8
+ return (_jsx(OTPInput, { "data-slot": "input-otp", containerClassName: cn("cn-input-otp flex items-center has-disabled:opacity-50", containerClassName), spellCheck: false, className: cn("disabled:cursor-not-allowed", className), ...props }));
9
+ }
10
+ function InputOTPGroup({ className, ...props }) {
11
+ return (_jsx("div", { "data-slot": "input-otp-group", className: cn("flex items-center rounded-lg has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40", className), ...props }));
12
+ }
13
+ function InputOTPSlot({ index, className, ...props }) {
14
+ const inputOTPContext = React.useContext(OTPInputContext);
15
+ const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
16
+ return (_jsxs("div", { "data-slot": "input-otp-slot", "data-active": isActive, className: cn("relative flex size-8 items-center justify-center border-y border-r border-input text-sm transition-all outline-none first:rounded-l-lg first:border-l last:rounded-r-lg aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40", className), ...props, children: [char, hasFakeCaret && (_jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: _jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }))] }));
17
+ }
18
+ function InputOTPSeparator({ ...props }) {
19
+ return (_jsx("div", { "data-slot": "input-otp-separator", className: "flex items-center [&_svg:not([class*='size-'])]:size-4", role: "separator", ...props, children: _jsx(MinusIcon, {}) }));
20
+ }
21
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare function Input({ className, type, ...props }: React.ComponentProps<"input">): React.JSX.Element;
3
+ export { Input };
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Input as InputPrimitive } from "@base-ui/react/input";
3
+ import { cn } from "../../lib/utils.js";
4
+ function Input({ className, type, ...props }) {
5
+ return (_jsx(InputPrimitive, { type: type, "data-slot": "input", className: cn("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", className), ...props }));
6
+ }
7
+ export { Input };
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ import { Separator } from "../../components/ui/separator.js";
5
+ declare function ItemGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
6
+ declare function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
7
+ declare const itemVariants: (props?: ({
8
+ variant?: "default" | "outline" | "muted" | null | undefined;
9
+ size?: "default" | "xs" | "sm" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ declare function Item({ className, variant, size, render, ...props }: useRender.ComponentProps<"div"> & VariantProps<typeof itemVariants>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
12
+ declare const itemMediaVariants: (props?: ({
13
+ variant?: "image" | "default" | "icon" | null | undefined;
14
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
+ declare function ItemMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>): React.JSX.Element;
16
+ declare function ItemContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
17
+ declare function ItemTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
18
+ declare function ItemDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
19
+ declare function ItemActions({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
20
+ declare function ItemHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
21
+ declare function ItemFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
22
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, };
@@ -0,0 +1,78 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../../lib/utils.js";
6
+ import { Separator } from "../../components/ui/separator.js";
7
+ function ItemGroup({ className, ...props }) {
8
+ return (_jsx("div", { role: "list", "data-slot": "item-group", className: cn("group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2", className), ...props }));
9
+ }
10
+ function ItemSeparator({ className, ...props }) {
11
+ return (_jsx(Separator, { "data-slot": "item-separator", orientation: "horizontal", className: cn("my-2", className), ...props }));
12
+ }
13
+ const itemVariants = cva("group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted", {
14
+ variants: {
15
+ variant: {
16
+ default: "border-transparent",
17
+ outline: "border-border",
18
+ muted: "border-transparent bg-muted/50",
19
+ },
20
+ size: {
21
+ default: "gap-2.5 px-3 py-2.5",
22
+ sm: "gap-2.5 px-3 py-2.5",
23
+ xs: "gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0",
24
+ },
25
+ },
26
+ defaultVariants: {
27
+ variant: "default",
28
+ size: "default",
29
+ },
30
+ });
31
+ function Item({ className, variant = "default", size = "default", render, ...props }) {
32
+ return useRender({
33
+ defaultTagName: "div",
34
+ props: mergeProps({
35
+ className: cn(itemVariants({ variant, size, className })),
36
+ }, props),
37
+ render,
38
+ state: {
39
+ slot: "item",
40
+ variant,
41
+ size,
42
+ },
43
+ });
44
+ }
45
+ const itemMediaVariants = cva("flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none", {
46
+ variants: {
47
+ variant: {
48
+ default: "bg-transparent",
49
+ icon: "[&_svg:not([class*='size-'])]:size-4",
50
+ image: "size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover",
51
+ },
52
+ },
53
+ defaultVariants: {
54
+ variant: "default",
55
+ },
56
+ });
57
+ function ItemMedia({ className, variant = "default", ...props }) {
58
+ return (_jsx("div", { "data-slot": "item-media", "data-variant": variant, className: cn(itemMediaVariants({ variant, className })), ...props }));
59
+ }
60
+ function ItemContent({ className, ...props }) {
61
+ return (_jsx("div", { "data-slot": "item-content", className: cn("flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none", className), ...props }));
62
+ }
63
+ function ItemTitle({ className, ...props }) {
64
+ return (_jsx("div", { "data-slot": "item-title", className: cn("line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4", className), ...props }));
65
+ }
66
+ function ItemDescription({ className, ...props }) {
67
+ return (_jsx("p", { "data-slot": "item-description", className: cn("line-clamp-2 text-left text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className), ...props }));
68
+ }
69
+ function ItemActions({ className, ...props }) {
70
+ return (_jsx("div", { "data-slot": "item-actions", className: cn("flex items-center gap-2", className), ...props }));
71
+ }
72
+ function ItemHeader({ className, ...props }) {
73
+ return (_jsx("div", { "data-slot": "item-header", className: cn("flex basis-full items-center justify-between gap-2", className), ...props }));
74
+ }
75
+ function ItemFooter({ className, ...props }) {
76
+ return (_jsx("div", { "data-slot": "item-footer", className: cn("flex basis-full items-center justify-between gap-2", className), ...props }));
77
+ }
78
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, };
@@ -0,0 +1,3 @@
1
+ declare function Kbd({ className, ...props }: React.ComponentProps<"kbd">): import("react").JSX.Element;
2
+ declare function KbdGroup({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
3
+ export { Kbd, KbdGroup };
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils.js";
3
+ function Kbd({ className, ...props }) {
4
+ return (_jsx("kbd", { "data-slot": "kbd", className: cn("pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3", className), ...props }));
5
+ }
6
+ function KbdGroup({ className, ...props }) {
7
+ return (_jsx("kbd", { "data-slot": "kbd-group", className: cn("inline-flex items-center gap-1", className), ...props }));
8
+ }
9
+ export { Kbd, KbdGroup };
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare function Label({ className, ...props }: React.ComponentProps<"label">): React.JSX.Element;
3
+ export { Label };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from "../../lib/utils.js";
4
+ function Label({ className, ...props }) {
5
+ return (_jsx("label", { "data-slot": "label", className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className), ...props }));
6
+ }
7
+ export { Label };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const markerVariants: (props?: ({
5
+ variant?: "separator" | "default" | "border" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function Marker({ className, variant, render, ...props }: useRender.ComponentProps<"div"> & VariantProps<typeof markerVariants>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
8
+ declare function MarkerIcon({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
9
+ declare function MarkerContent({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
10
+ export { Marker, MarkerIcon, MarkerContent, markerVariants };
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../../lib/utils.js";
6
+ const markerVariants = cva("group/marker relative flex min-h-4 w-full items-center gap-2 text-left text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [a]:underline [a]:underline-offset-3 [a]:hover:text-foreground", {
7
+ variants: {
8
+ variant: {
9
+ default: "",
10
+ separator: "before:mr-1 before:h-px before:min-w-0 before:flex-1 before:bg-border after:ml-1 after:h-px after:min-w-0 after:flex-1 after:bg-border",
11
+ border: "border-b border-border pb-2",
12
+ },
13
+ },
14
+ });
15
+ function Marker({ className, variant = "default", render, ...props }) {
16
+ return useRender({
17
+ defaultTagName: "div",
18
+ props: mergeProps({
19
+ className: cn(markerVariants({ variant, className })),
20
+ }, props),
21
+ render,
22
+ state: {
23
+ slot: "marker",
24
+ variant,
25
+ },
26
+ });
27
+ }
28
+ function MarkerIcon({ className, ...props }) {
29
+ return (_jsx("span", { "data-slot": "marker-icon", "aria-hidden": "true", className: cn("size-4 shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props }));
30
+ }
31
+ function MarkerContent({ className, ...props }) {
32
+ return (_jsx("span", { "data-slot": "marker-content", className: cn("min-w-0 wrap-break-word group-data-[variant=separator]/marker:flex-none group-data-[variant=separator]/marker:text-center *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className), ...props }));
33
+ }
34
+ export { Marker, MarkerIcon, MarkerContent, markerVariants };
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ import { Menu as MenuPrimitive } from "@base-ui/react/menu";
3
+ import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
4
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "../../components/ui/dropdown-menu.js";
5
+ declare function Menubar({ className, ...props }: MenubarPrimitive.Props): React.JSX.Element;
6
+ declare function MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>): React.JSX.Element;
7
+ declare function MenubarGroup({ ...props }: React.ComponentProps<typeof DropdownMenuGroup>): React.JSX.Element;
8
+ declare function MenubarPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPortal>): React.JSX.Element;
9
+ declare function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof DropdownMenuTrigger>): React.JSX.Element;
10
+ declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuContent>): React.JSX.Element;
11
+ declare function MenubarItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuItem>): React.JSX.Element;
12
+ declare function MenubarCheckboxItem({ className, children, checked, inset, ...props }: MenuPrimitive.CheckboxItem.Props & {
13
+ inset?: boolean;
14
+ }): React.JSX.Element;
15
+ declare function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuRadioGroup>): React.JSX.Element;
16
+ declare function MenubarRadioItem({ className, children, inset, ...props }: MenuPrimitive.RadioItem.Props & {
17
+ inset?: boolean;
18
+ }): React.JSX.Element;
19
+ declare function MenubarLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuLabel> & {
20
+ inset?: boolean;
21
+ }): React.JSX.Element;
22
+ declare function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuSeparator>): React.JSX.Element;
23
+ declare function MenubarShortcut({ className, ...props }: React.ComponentProps<typeof DropdownMenuShortcut>): React.JSX.Element;
24
+ declare function MenubarSub({ ...props }: React.ComponentProps<typeof DropdownMenuSub>): React.JSX.Element;
25
+ declare function MenubarSubTrigger({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuSubTrigger> & {
26
+ inset?: boolean;
27
+ }): React.JSX.Element;
28
+ declare function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuSubContent>): React.JSX.Element;
29
+ export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Menu as MenuPrimitive } from "@base-ui/react/menu";
4
+ import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
5
+ import { cn } from "../../lib/utils.js";
6
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "../../components/ui/dropdown-menu.js";
7
+ import { CheckIcon } from "lucide-react";
8
+ function Menubar({ className, ...props }) {
9
+ return (_jsx(MenubarPrimitive, { "data-slot": "menubar", className: cn("flex h-8 items-center gap-0.5 rounded-lg border p-[3px]", className), ...props }));
10
+ }
11
+ function MenubarMenu({ ...props }) {
12
+ return _jsx(DropdownMenu, { "data-slot": "menubar-menu", ...props });
13
+ }
14
+ function MenubarGroup({ ...props }) {
15
+ return _jsx(DropdownMenuGroup, { "data-slot": "menubar-group", ...props });
16
+ }
17
+ function MenubarPortal({ ...props }) {
18
+ return _jsx(DropdownMenuPortal, { "data-slot": "menubar-portal", ...props });
19
+ }
20
+ function MenubarTrigger({ className, ...props }) {
21
+ return (_jsx(DropdownMenuTrigger, { "data-slot": "menubar-trigger", className: cn("flex items-center rounded-sm px-1.5 py-[2px] text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted", className), ...props }));
22
+ }
23
+ function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }) {
24
+ return (_jsx(DropdownMenuContent, { "data-slot": "menubar-content", align: align, alignOffset: alignOffset, sideOffset: sideOffset, className: cn("min-w-36 rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95", className), ...props }));
25
+ }
26
+ function MenubarItem({ className, inset, variant = "default", ...props }) {
27
+ return (_jsx(DropdownMenuItem, { "data-slot": "menubar-item", "data-inset": inset, "data-variant": variant, className: cn("group/menubar-item gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!", className), ...props }));
28
+ }
29
+ function MenubarCheckboxItem({ className, children, checked, inset, ...props }) {
30
+ return (_jsxs(MenuPrimitive.CheckboxItem, { "data-slot": "menubar-checkbox-item", "data-inset": inset, className: cn("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4", children: _jsx(MenuPrimitive.CheckboxItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));
31
+ }
32
+ function MenubarRadioGroup({ ...props }) {
33
+ return _jsx(DropdownMenuRadioGroup, { "data-slot": "menubar-radio-group", ...props });
34
+ }
35
+ function MenubarRadioItem({ className, children, inset, ...props }) {
36
+ return (_jsxs(MenuPrimitive.RadioItem, { "data-slot": "menubar-radio-item", "data-inset": inset, className: cn("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4", children: _jsx(MenuPrimitive.RadioItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));
37
+ }
38
+ function MenubarLabel({ className, inset, ...props }) {
39
+ return (_jsx(DropdownMenuLabel, { "data-slot": "menubar-label", "data-inset": inset, className: cn("px-1.5 py-1 text-sm font-medium data-inset:pl-7", className), ...props }));
40
+ }
41
+ function MenubarSeparator({ className, ...props }) {
42
+ return (_jsx(DropdownMenuSeparator, { "data-slot": "menubar-separator", className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
43
+ }
44
+ function MenubarShortcut({ className, ...props }) {
45
+ return (_jsx(DropdownMenuShortcut, { "data-slot": "menubar-shortcut", className: cn("ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground", className), ...props }));
46
+ }
47
+ function MenubarSub({ ...props }) {
48
+ return _jsx(DropdownMenuSub, { "data-slot": "menubar-sub", ...props });
49
+ }
50
+ function MenubarSubTrigger({ className, inset, ...props }) {
51
+ return (_jsx(DropdownMenuSubTrigger, { "data-slot": "menubar-sub-trigger", "data-inset": inset, className: cn("gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4", className), ...props }));
52
+ }
53
+ function MenubarSubContent({ className, ...props }) {
54
+ return (_jsx(DropdownMenuSubContent, { "data-slot": "menubar-sub-content", className: cn("min-w-32 rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props }));
55
+ }
56
+ export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { MessageScroller as MessageScrollerPrimitive, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "@shadcn/react/message-scroller";
3
+ import { Button } from "../../components/ui/button.js";
4
+ declare function MessageScrollerProvider(props: React.ComponentProps<typeof MessageScrollerPrimitive.Provider>): React.JSX.Element;
5
+ declare function MessageScroller({ className, autoScroll, defaultScrollPosition, scrollEdgeThreshold, scrollPreviousItemPeek, scrollMargin, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Root> & Pick<React.ComponentProps<typeof MessageScrollerPrimitive.Provider>, "autoScroll" | "defaultScrollPosition" | "scrollEdgeThreshold" | "scrollPreviousItemPeek" | "scrollMargin">): React.JSX.Element;
6
+ declare function MessageScrollerViewport({ className, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Viewport>): React.JSX.Element;
7
+ declare function MessageScrollerContent({ className, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Content>): React.JSX.Element;
8
+ declare function MessageScrollerItem({ className, scrollAnchor, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Item>): React.JSX.Element;
9
+ declare function MessageScrollerButton({ direction, className, children, render, variant, size, ...props }: React.ComponentProps<typeof MessageScrollerPrimitive.Button> & Pick<React.ComponentProps<typeof Button>, "variant" | "size">): React.JSX.Element;
10
+ export { MessageScrollerProvider, MessageScroller, MessageScrollerViewport, MessageScrollerContent, MessageScrollerItem, MessageScrollerButton, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, };
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { MessageScroller as MessageScrollerPrimitive, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, } from "@shadcn/react/message-scroller";
4
+ import { cn } from "../../lib/utils.js";
5
+ import { Button } from "../../components/ui/button.js";
6
+ import { ArrowDownIcon } from "lucide-react";
7
+ function MessageScrollerProvider(props) {
8
+ return _jsx(MessageScrollerPrimitive.Provider, { ...props });
9
+ }
10
+ function MessageScroller({ className, autoScroll, defaultScrollPosition, scrollEdgeThreshold, scrollPreviousItemPeek, scrollMargin, ...props }) {
11
+ return (_jsx(MessageScrollerPrimitive.Provider, { autoScroll: autoScroll, defaultScrollPosition: defaultScrollPosition, scrollEdgeThreshold: scrollEdgeThreshold, scrollPreviousItemPeek: scrollPreviousItemPeek, scrollMargin: scrollMargin, children: _jsx(MessageScrollerPrimitive.Root, { "data-slot": "message-scroller", className: cn("group/message-scroller relative flex size-full min-h-0 flex-col overflow-hidden", className), ...props }) }));
12
+ }
13
+ function MessageScrollerViewport({ className, ...props }) {
14
+ return (_jsx(MessageScrollerPrimitive.Viewport, { "data-slot": "message-scroller-viewport", className: cn("size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent", className), ...props }));
15
+ }
16
+ function MessageScrollerContent({ className, ...props }) {
17
+ return (_jsx(MessageScrollerPrimitive.Content, { "data-slot": "message-scroller-content", className: cn("flex h-max min-h-full flex-col gap-6", className), ...props }));
18
+ }
19
+ function MessageScrollerItem({ className, scrollAnchor = false, ...props }) {
20
+ return (_jsx(MessageScrollerPrimitive.Item, { "data-slot": "message-scroller-item", scrollAnchor: scrollAnchor, className: cn("min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]", className), ...props }));
21
+ }
22
+ function MessageScrollerButton({ direction = "end", className, children, render, variant = "secondary", size = "icon-sm", ...props }) {
23
+ return (_jsx(MessageScrollerPrimitive.Button, { "data-slot": "message-scroller-button", "data-direction": direction, "data-variant": variant, "data-size": size, direction: direction, className: cn("absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180", className), render: render ?? _jsx(Button, { variant: variant, size: size }), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsx(ArrowDownIcon, {}), _jsx("span", { className: "sr-only", children: direction === "end" ? "Scroll to end" : "Scroll to start" })] })) }));
24
+ }
25
+ export { MessageScrollerProvider, MessageScroller, MessageScrollerViewport, MessageScrollerContent, MessageScrollerItem, MessageScrollerButton, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ declare function MessageGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
3
+ declare function Message({ className, align, ...props }: React.ComponentProps<"div"> & {
4
+ align?: "start" | "end";
5
+ }): React.JSX.Element;
6
+ declare function MessageAvatar({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
+ declare function MessageContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
8
+ declare function MessageHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
9
+ declare function MessageFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
10
+ export { MessageGroup, Message, MessageAvatar, MessageContent, MessageFooter, MessageHeader, };
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils.js";
3
+ function MessageGroup({ className, ...props }) {
4
+ return (_jsx("div", { "data-slot": "message-group", className: cn("flex min-w-0 flex-col gap-2", className), ...props }));
5
+ }
6
+ function Message({ className, align = "start", ...props }) {
7
+ return (_jsx("div", { "data-slot": "message", "data-align": align, className: cn("group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse", className), ...props }));
8
+ }
9
+ function MessageAvatar({ className, ...props }) {
10
+ return (_jsx("div", { "data-slot": "message-avatar", className: cn("flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-8", className), ...props }));
11
+ }
12
+ function MessageContent({ className, ...props }) {
13
+ return (_jsx("div", { "data-slot": "message-content", className: cn("flex w-full min-w-0 flex-col gap-2.5 wrap-break-word group-data-[align=end]/message:*:data-slot:self-end", className), ...props }));
14
+ }
15
+ function MessageHeader({ className, ...props }) {
16
+ return (_jsx("div", { "data-slot": "message-header", className: cn("flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0", className), ...props }));
17
+ }
18
+ function MessageFooter({ className, ...props }) {
19
+ return (_jsx("div", { "data-slot": "message-footer", className: cn("flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end", className), ...props }));
20
+ }
21
+ export { MessageGroup, Message, MessageAvatar, MessageContent, MessageFooter, MessageHeader, };
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
3
+ size?: "sm" | "default";
4
+ };
5
+ declare function NativeSelect({ className, size, ...props }: NativeSelectProps): React.JSX.Element;
6
+ declare function NativeSelectOption({ className, ...props }: React.ComponentProps<"option">): React.JSX.Element;
7
+ declare function NativeSelectOptGroup({ className, ...props }: React.ComponentProps<"optgroup">): React.JSX.Element;
8
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { ChevronDownIcon } from "lucide-react";
4
+ function NativeSelect({ className, size = "default", ...props }) {
5
+ return (_jsxs("div", { className: cn("group/native-select relative w-fit has-[select:disabled]:opacity-50", className), "data-slot": "native-select-wrapper", "data-size": size, children: [_jsx("select", { "data-slot": "native-select", "data-size": size, className: "h-8 w-full min-w-0 appearance-none rounded-lg border border-input bg-transparent py-1 pr-8 pl-2.5 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[size=sm]:py-0.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", ...props }), _jsx(ChevronDownIcon, { className: "pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 text-muted-foreground select-none", "aria-hidden": "true", "data-slot": "native-select-icon" })] }));
6
+ }
7
+ function NativeSelectOption({ className, ...props }) {
8
+ return (_jsx("option", { "data-slot": "native-select-option", className: cn("bg-[Canvas] text-[CanvasText]", className), ...props }));
9
+ }
10
+ function NativeSelectOptGroup({ className, ...props }) {
11
+ return (_jsx("optgroup", { "data-slot": "native-select-optgroup", className: cn("bg-[Canvas] text-[CanvasText]", className), ...props }));
12
+ }
13
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
@@ -0,0 +1,11 @@
1
+ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
2
+ declare function NavigationMenu({ align, className, children, ...props }: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, "align">): import("react").JSX.Element;
3
+ declare function NavigationMenuList({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>): import("react").JSX.Element;
4
+ declare function NavigationMenuItem({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>): import("react").JSX.Element;
5
+ declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ declare function NavigationMenuTrigger({ className, children, ...props }: NavigationMenuPrimitive.Trigger.Props): import("react").JSX.Element;
7
+ declare function NavigationMenuContent({ className, ...props }: NavigationMenuPrimitive.Content.Props): import("react").JSX.Element;
8
+ declare function NavigationMenuPositioner({ className, side, sideOffset, align, alignOffset, ...props }: NavigationMenuPrimitive.Positioner.Props): import("react").JSX.Element;
9
+ declare function NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props): import("react").JSX.Element;
10
+ declare function NavigationMenuIndicator({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>): import("react").JSX.Element;
11
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, NavigationMenuPositioner, };
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../../lib/utils.js";
5
+ import { ChevronDownIcon } from "lucide-react";
6
+ function NavigationMenu({ align = "start", className, children, ...props }) {
7
+ return (_jsxs(NavigationMenuPrimitive.Root, { "data-slot": "navigation-menu", className: cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className), ...props, children: [children, _jsx(NavigationMenuPositioner, { align: align })] }));
8
+ }
9
+ function NavigationMenuList({ className, ...props }) {
10
+ return (_jsx(NavigationMenuPrimitive.List, { "data-slot": "navigation-menu-list", className: cn("group flex flex-1 list-none items-center justify-center gap-0", className), ...props }));
11
+ }
12
+ function NavigationMenuItem({ className, ...props }) {
13
+ return (_jsx(NavigationMenuPrimitive.Item, { "data-slot": "navigation-menu-item", className: cn("relative", className), ...props }));
14
+ }
15
+ const navigationMenuTriggerStyle = cva("group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted");
16
+ function NavigationMenuTrigger({ className, children, ...props }) {
17
+ return (_jsxs(NavigationMenuPrimitive.Trigger, { "data-slot": "navigation-menu-trigger", className: cn(navigationMenuTriggerStyle(), "group", className), ...props, children: [children, " ", _jsx(ChevronDownIcon, { className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180", "aria-hidden": "true" })] }));
18
+ }
19
+ function NavigationMenuContent({ className, ...props }) {
20
+ return (_jsx(NavigationMenuPrimitive.Content, { "data-slot": "navigation-menu-content", className: cn("data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95", className), ...props }));
21
+ }
22
+ function NavigationMenuPositioner({ className, side = "bottom", sideOffset = 8, align = "start", alignOffset = 0, ...props }) {
23
+ return (_jsx(NavigationMenuPrimitive.Portal, { children: _jsx(NavigationMenuPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, className: cn("isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", className), ...props, children: _jsx(NavigationMenuPrimitive.Popup, { className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0", children: _jsx(NavigationMenuPrimitive.Viewport, { className: "relative size-full overflow-hidden" }) }) }) }));
24
+ }
25
+ function NavigationMenuLink({ className, ...props }) {
26
+ return (_jsx(NavigationMenuPrimitive.Link, { "data-slot": "navigation-menu-link", className: cn("flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4", className), ...props }));
27
+ }
28
+ function NavigationMenuIndicator({ className, ...props }) {
29
+ return (_jsx(NavigationMenuPrimitive.Icon, { "data-slot": "navigation-menu-indicator", className: cn("top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in", className), ...props, children: _jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" }) }));
30
+ }
31
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, NavigationMenuPositioner, };
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ import { Button } from "../../components/ui/button.js";
3
+ declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
4
+ declare function PaginationContent({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
5
+ declare function PaginationItem({ ...props }: React.ComponentProps<"li">): React.JSX.Element;
6
+ type PaginationLinkProps = {
7
+ isActive?: boolean;
8
+ } & Pick<React.ComponentProps<typeof Button>, "size"> & React.ComponentProps<"a">;
9
+ declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): React.JSX.Element;
10
+ declare function PaginationPrevious({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
11
+ text?: string;
12
+ }): React.JSX.Element;
13
+ declare function PaginationNext({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
14
+ text?: string;
15
+ }): React.JSX.Element;
16
+ declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
17
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { Button } from "../../components/ui/button.js";
4
+ import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
5
+ function Pagination({ className, ...props }) {
6
+ return (_jsx("nav", { role: "navigation", "aria-label": "pagination", "data-slot": "pagination", className: cn("mx-auto flex w-full justify-center", className), ...props }));
7
+ }
8
+ function PaginationContent({ className, ...props }) {
9
+ return (_jsx("ul", { "data-slot": "pagination-content", className: cn("flex items-center gap-0.5", className), ...props }));
10
+ }
11
+ function PaginationItem({ ...props }) {
12
+ return _jsx("li", { "data-slot": "pagination-item", ...props });
13
+ }
14
+ function PaginationLink({ className, isActive, size = "icon", ...props }) {
15
+ return (_jsx(Button, { variant: isActive ? "outline" : "ghost", size: size, className: cn(className), nativeButton: false, render: _jsx("a", { "aria-current": isActive ? "page" : undefined, "data-slot": "pagination-link", "data-active": isActive, ...props }) }));
16
+ }
17
+ function PaginationPrevious({ className, text = "Previous", ...props }) {
18
+ return (_jsxs(PaginationLink, { "aria-label": "Go to previous page", size: "default", className: cn("pl-1.5!", className), ...props, children: [_jsx(ChevronLeftIcon, { "data-icon": "inline-start" }), _jsx("span", { className: "hidden sm:block", children: text })] }));
19
+ }
20
+ function PaginationNext({ className, text = "Next", ...props }) {
21
+ return (_jsxs(PaginationLink, { "aria-label": "Go to next page", size: "default", className: cn("pr-1.5!", className), ...props, children: [_jsx("span", { className: "hidden sm:block", children: text }), _jsx(ChevronRightIcon, { "data-icon": "inline-end" })] }));
22
+ }
23
+ function PaginationEllipsis({ className, ...props }) {
24
+ return (_jsxs("span", { "aria-hidden": true, "data-slot": "pagination-ellipsis", className: cn("flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx(MoreHorizontalIcon, {}), _jsx("span", { className: "sr-only", children: "More pages" })] }));
25
+ }
26
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
3
+ declare function Popover({ ...props }: PopoverPrimitive.Root.Props): React.JSX.Element;
4
+ declare function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props): React.JSX.Element;
5
+ declare function PopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): React.JSX.Element;
6
+ declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
+ declare function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props): React.JSX.Element;
8
+ declare function PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props): React.JSX.Element;
9
+ export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, };
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
4
+ import { cn } from "../../lib/utils.js";
5
+ function Popover({ ...props }) {
6
+ return _jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
7
+ }
8
+ function PopoverTrigger({ ...props }) {
9
+ return _jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
10
+ }
11
+ function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 4, ...props }) {
12
+ return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsx(PopoverPrimitive.Popup, { "data-slot": "popover-content", className: cn("z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props }) }) }));
13
+ }
14
+ function PopoverHeader({ className, ...props }) {
15
+ return (_jsx("div", { "data-slot": "popover-header", className: cn("flex flex-col gap-0.5 text-sm", className), ...props }));
16
+ }
17
+ function PopoverTitle({ className, ...props }) {
18
+ return (_jsx(PopoverPrimitive.Title, { "data-slot": "popover-title", className: cn("font-medium", className), ...props }));
19
+ }
20
+ function PopoverDescription({ className, ...props }) {
21
+ return (_jsx(PopoverPrimitive.Description, { "data-slot": "popover-description", className: cn("text-muted-foreground", className), ...props }));
22
+ }
23
+ export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, };
@@ -0,0 +1,7 @@
1
+ import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
2
+ declare function Progress({ className, children, value, ...props }: ProgressPrimitive.Root.Props): import("react").JSX.Element;
3
+ declare function ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props): import("react").JSX.Element;
4
+ declare function ProgressIndicator({ className, ...props }: ProgressPrimitive.Indicator.Props): import("react").JSX.Element;
5
+ declare function ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props): import("react").JSX.Element;
6
+ declare function ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props): import("react").JSX.Element;
7
+ export { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue, };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
4
+ import { cn } from "../../lib/utils.js";
5
+ function Progress({ className, children, value, ...props }) {
6
+ return (_jsxs(ProgressPrimitive.Root, { value: value, "data-slot": "progress", className: cn("flex flex-wrap gap-3", className), ...props, children: [children, _jsx(ProgressTrack, { children: _jsx(ProgressIndicator, {}) })] }));
7
+ }
8
+ function ProgressTrack({ className, ...props }) {
9
+ return (_jsx(ProgressPrimitive.Track, { className: cn("relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted", className), "data-slot": "progress-track", ...props }));
10
+ }
11
+ function ProgressIndicator({ className, ...props }) {
12
+ return (_jsx(ProgressPrimitive.Indicator, { "data-slot": "progress-indicator", className: cn("h-full bg-primary transition-all", className), ...props }));
13
+ }
14
+ function ProgressLabel({ className, ...props }) {
15
+ return (_jsx(ProgressPrimitive.Label, { className: cn("text-sm font-medium", className), "data-slot": "progress-label", ...props }));
16
+ }
17
+ function ProgressValue({ className, ...props }) {
18
+ return (_jsx(ProgressPrimitive.Value, { className: cn("ml-auto text-sm text-muted-foreground tabular-nums", className), "data-slot": "progress-value", ...props }));
19
+ }
20
+ export { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue, };