@emara/ui 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.
- package/components/ui/.gitkeep +0 -0
- package/components/ui/accordion.stories.tsx +231 -0
- package/components/ui/accordion.tsx +250 -0
- package/components/ui/app-shell.stories.tsx +270 -0
- package/components/ui/app-shell.tsx +491 -0
- package/components/ui/avatar.stories.tsx +174 -0
- package/components/ui/avatar.tsx +257 -0
- package/components/ui/badge.stories.tsx +127 -0
- package/components/ui/badge.tsx +146 -0
- package/components/ui/breadcrumb.stories.tsx +92 -0
- package/components/ui/breadcrumb.tsx +302 -0
- package/components/ui/button.stories.tsx +186 -0
- package/components/ui/button.tsx +128 -0
- package/components/ui/card.stories.tsx +279 -0
- package/components/ui/card.tsx +250 -0
- package/components/ui/checkbox.stories.tsx +93 -0
- package/components/ui/checkbox.tsx +131 -0
- package/components/ui/combobox.stories.tsx +489 -0
- package/components/ui/combobox.tsx +874 -0
- package/components/ui/context-menu.stories.tsx +202 -0
- package/components/ui/context-menu.tsx +309 -0
- package/components/ui/data-table.stories.tsx +227 -0
- package/components/ui/data-table.tsx +539 -0
- package/components/ui/date-picker.stories.tsx +225 -0
- package/components/ui/date-picker.tsx +597 -0
- package/components/ui/dialog.stories.tsx +193 -0
- package/components/ui/dialog.tsx +262 -0
- package/components/ui/divider.stories.tsx +84 -0
- package/components/ui/divider.tsx +135 -0
- package/components/ui/drawer.stories.tsx +218 -0
- package/components/ui/drawer.tsx +329 -0
- package/components/ui/dropdown-menu.stories.tsx +270 -0
- package/components/ui/dropdown-menu.tsx +353 -0
- package/components/ui/empty-state.stories.tsx +121 -0
- package/components/ui/empty-state.tsx +289 -0
- package/components/ui/field-group.stories.tsx +201 -0
- package/components/ui/field-group.tsx +276 -0
- package/components/ui/form.stories.tsx +219 -0
- package/components/ui/form.tsx +542 -0
- package/components/ui/input.stories.tsx +154 -0
- package/components/ui/input.tsx +208 -0
- package/components/ui/label.stories.tsx +84 -0
- package/components/ui/label.tsx +98 -0
- package/components/ui/page-header.stories.tsx +136 -0
- package/components/ui/page-header.tsx +315 -0
- package/components/ui/pagination.stories.tsx +136 -0
- package/components/ui/pagination.tsx +427 -0
- package/components/ui/popover.stories.tsx +212 -0
- package/components/ui/popover.tsx +167 -0
- package/components/ui/radio-group.stories.tsx +96 -0
- package/components/ui/radio-group.tsx +250 -0
- package/components/ui/select.stories.tsx +203 -0
- package/components/ui/select.tsx +318 -0
- package/components/ui/sidebar.stories.tsx +186 -0
- package/components/ui/sidebar.tsx +623 -0
- package/components/ui/skeleton.stories.tsx +131 -0
- package/components/ui/skeleton.tsx +311 -0
- package/components/ui/switch.stories.tsx +74 -0
- package/components/ui/switch.tsx +186 -0
- package/components/ui/table.stories.tsx +107 -0
- package/components/ui/table.tsx +285 -0
- package/components/ui/tabs.stories.tsx +222 -0
- package/components/ui/tabs.tsx +287 -0
- package/components/ui/textarea.stories.tsx +96 -0
- package/components/ui/textarea.tsx +182 -0
- package/components/ui/toast.stories.tsx +169 -0
- package/components/ui/toast.tsx +250 -0
- package/components/ui/tooltip.stories.tsx +146 -0
- package/components/ui/tooltip.tsx +156 -0
- package/components/ui/top-bar.stories.tsx +182 -0
- package/components/ui/top-bar.tsx +155 -0
- package/dist/components/ui/accordion.d.ts +45 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +99 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/app-shell.d.ts +70 -0
- package/dist/components/ui/app-shell.d.ts.map +1 -0
- package/dist/components/ui/app-shell.js +199 -0
- package/dist/components/ui/app-shell.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +41 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +104 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +27 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +65 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +35 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +88 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button.d.ts +26 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +73 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.d.ts +52 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +96 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +18 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +59 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/combobox.d.ts +194 -0
- package/dist/components/ui/combobox.d.ts.map +1 -0
- package/dist/components/ui/combobox.js +361 -0
- package/dist/components/ui/combobox.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +46 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/context-menu.js +95 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/data-table.d.ts +53 -0
- package/dist/components/ui/data-table.d.ts.map +1 -0
- package/dist/components/ui/data-table.js +163 -0
- package/dist/components/ui/data-table.js.map +1 -0
- package/dist/components/ui/date-picker.d.ts +103 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -0
- package/dist/components/ui/date-picker.js +306 -0
- package/dist/components/ui/date-picker.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +40 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +110 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/divider.d.ts +30 -0
- package/dist/components/ui/divider.d.ts.map +1 -0
- package/dist/components/ui/divider.js +62 -0
- package/dist/components/ui/divider.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +56 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +147 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +63 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +116 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/empty-state.d.ts +43 -0
- package/dist/components/ui/empty-state.d.ts.map +1 -0
- package/dist/components/ui/empty-state.js +128 -0
- package/dist/components/ui/empty-state.js.map +1 -0
- package/dist/components/ui/field-group.d.ts +38 -0
- package/dist/components/ui/field-group.d.ts.map +1 -0
- package/dist/components/ui/field-group.js +107 -0
- package/dist/components/ui/field-group.js.map +1 -0
- package/dist/components/ui/form.d.ts +67 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/form.js +286 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/input.d.ts +36 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +99 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +37 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +34 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/page-header.d.ts +65 -0
- package/dist/components/ui/page-header.d.ts.map +1 -0
- package/dist/components/ui/page-header.js +140 -0
- package/dist/components/ui/page-header.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +67 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +109 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +28 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +85 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +35 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +103 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/select.d.ts +42 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +86 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/sidebar.d.ts +59 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +189 -0
- package/dist/components/ui/sidebar.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +77 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +115 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/switch.d.ts +26 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +84 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +52 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +109 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +42 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +163 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +26 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +96 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toast.d.ts +77 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +141 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +31 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +71 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/ui/top-bar.d.ts +30 -0
- package/dist/components/ui/top-bar.d.ts.map +1 -0
- package/dist/components/ui/top-bar.js +64 -0
- package/dist/components/ui/top-bar.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/lib/utils.ts +6 -0
- package/package.json +112 -0
- package/styles/globals.css +685 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../components/ui/pagination.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const Popover: import("react").FC<PopoverPrimitive.PopoverProps>;
|
|
4
|
+
declare const PopoverTrigger: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
declare const PopoverAnchor: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare const PopoverClose: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
declare const popoverContentVariants: (props?: ({
|
|
8
|
+
padding?: "sm" | "md" | "lg" | "none" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
type PopoverWidth = "fit" | "trigger" | "sm" | "md" | "lg" | "xl" | number;
|
|
11
|
+
type PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & VariantProps<typeof popoverContentVariants> & {
|
|
12
|
+
width?: PopoverWidth;
|
|
13
|
+
maxHeight?: number | string;
|
|
14
|
+
arrow?: boolean;
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
};
|
|
17
|
+
declare const PopoverContent: import("react").ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
|
|
18
|
+
padding?: "sm" | "md" | "lg" | "none" | null | undefined;
|
|
19
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
|
|
20
|
+
width?: PopoverWidth;
|
|
21
|
+
maxHeight?: number | string;
|
|
22
|
+
arrow?: boolean;
|
|
23
|
+
loading?: boolean;
|
|
24
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
25
|
+
declare const PopoverArrow: import("react").ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverArrowProps & import("react").RefAttributes<SVGSVGElement>, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
26
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverArrow, PopoverAnchor, PopoverClose, popoverContentVariants, };
|
|
27
|
+
export type { PopoverContentProps };
|
|
28
|
+
//# sourceMappingURL=popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../components/ui/popover.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASlE,QAAA,MAAM,OAAO,mDAAwB,CAAC;AACtC,QAAA,MAAM,cAAc,oIAA2B,CAAC;AAChD,QAAA,MAAM,aAAa,gIAA0B,CAAC;AAC9C,QAAA,MAAM,YAAY,kIAAyB,CAAC;AAM5C,QAAA,MAAM,sBAAsB;;8EAwB3B,CAAC;AAEF,KAAK,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAwB3E,KAAK,mBAAmB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GACxF,YAAY,CAAC,OAAO,sBAAsB,CAAC,GAAG;IAC5C,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,QAAA,MAAM,cAAc;;;YANR,YAAY;gBACR,MAAM,GAAG,MAAM;YACnB,OAAO;cACL,OAAO;kDAyDnB,CAAC;AAOH,QAAA,MAAM,YAAY,0LAahB,CAAC;AAGH,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,sBAAsB,GACvB,CAAC;AACF,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
import { cn } from "@/lib/utils";
|
|
7
|
+
import { Skeleton } from "./skeleton";
|
|
8
|
+
// Per docs/emara-ui-phase-3-components.md §3. Brought forward into v0.1 per
|
|
9
|
+
// docs/emara-ui-implementation-plan.md §5 so Combobox / DatePicker / Label's
|
|
10
|
+
// hint prop have the dependency they need.
|
|
11
|
+
const Popover = PopoverPrimitive.Root;
|
|
12
|
+
const PopoverTrigger = PopoverPrimitive.Trigger;
|
|
13
|
+
const PopoverAnchor = PopoverPrimitive.Anchor;
|
|
14
|
+
const PopoverClose = PopoverPrimitive.Close;
|
|
15
|
+
// ----------------------------------------------------------------------------
|
|
16
|
+
// PopoverContent
|
|
17
|
+
// ----------------------------------------------------------------------------
|
|
18
|
+
const popoverContentVariants = cva([
|
|
19
|
+
"z-popover outline-none",
|
|
20
|
+
"rounded-md border border-border bg-popover text-popover-foreground shadow-md",
|
|
21
|
+
// Enter/exit animations driven by Radix data-state. Slide direction
|
|
22
|
+
// depends on the resolved `side` so the panel "drops" from its trigger.
|
|
23
|
+
"data-[state=open]:animate-[scale-in_var(--duration-fast)_var(--ease-out)]",
|
|
24
|
+
"data-[state=closed]:animate-[scale-out_var(--duration-fast)_var(--ease-in)]",
|
|
25
|
+
"data-[side=top]:data-[state=open]:animate-[slide-in-from-bottom_var(--duration-fast)_var(--ease-out)]",
|
|
26
|
+
"data-[side=bottom]:data-[state=open]:animate-[slide-in-from-top_var(--duration-fast)_var(--ease-out)]",
|
|
27
|
+
"data-[side=left]:data-[state=open]:animate-[slide-in-from-end_var(--duration-fast)_var(--ease-out)]",
|
|
28
|
+
"data-[side=right]:data-[state=open]:animate-[slide-in-from-start_var(--duration-fast)_var(--ease-out)]",
|
|
29
|
+
].join(" "), {
|
|
30
|
+
variants: {
|
|
31
|
+
padding: {
|
|
32
|
+
none: "p-0",
|
|
33
|
+
sm: "p-2",
|
|
34
|
+
md: "p-3",
|
|
35
|
+
lg: "p-4",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: { padding: "md" },
|
|
39
|
+
});
|
|
40
|
+
const WIDTH_TO_PX = {
|
|
41
|
+
sm: 192,
|
|
42
|
+
md: 256,
|
|
43
|
+
lg: 320,
|
|
44
|
+
xl: 448,
|
|
45
|
+
};
|
|
46
|
+
function resolveWidthStyle(width) {
|
|
47
|
+
if (width === undefined)
|
|
48
|
+
return undefined;
|
|
49
|
+
if (width === "fit")
|
|
50
|
+
return { width: "max-content" };
|
|
51
|
+
if (width === "trigger") {
|
|
52
|
+
return { width: "var(--radix-popover-trigger-width)" };
|
|
53
|
+
}
|
|
54
|
+
if (typeof width === "number")
|
|
55
|
+
return { width: width };
|
|
56
|
+
return { width: WIDTH_TO_PX[width] };
|
|
57
|
+
}
|
|
58
|
+
function resolveMaxHeight(maxHeight) {
|
|
59
|
+
if (maxHeight === undefined)
|
|
60
|
+
return undefined;
|
|
61
|
+
return { maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight };
|
|
62
|
+
}
|
|
63
|
+
const PopoverContent = forwardRef(function PopoverContent({ className, align = "center", sideOffset = 8, width, maxHeight, arrow = false, loading = false, padding, style, children, ...props }, ref) {
|
|
64
|
+
// If maxHeight is set the content scrolls internally.
|
|
65
|
+
const overflowStyle = maxHeight !== undefined ? { overflowY: "auto" } : undefined;
|
|
66
|
+
const merged = {
|
|
67
|
+
...resolveWidthStyle(width),
|
|
68
|
+
...resolveMaxHeight(maxHeight),
|
|
69
|
+
...overflowStyle,
|
|
70
|
+
...style,
|
|
71
|
+
};
|
|
72
|
+
// Loading skeleton mimics a small panel of text rows.
|
|
73
|
+
const loadingNode = (_jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-3 w-3/4" }), _jsx(Skeleton, { className: "h-3 w-full" }), _jsx(Skeleton, { className: "h-3 w-5/6" })] }));
|
|
74
|
+
return (_jsx(PopoverPrimitive.Portal, { children: _jsxs(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, style: merged, "aria-busy": loading || undefined, "aria-live": loading ? "polite" : undefined, className: cn(popoverContentVariants({ padding }), className), ...props, children: [loading ? loadingNode : children, arrow ? _jsx(PopoverArrow, {}) : null] }) }));
|
|
75
|
+
});
|
|
76
|
+
PopoverContent.displayName = "PopoverContent";
|
|
77
|
+
// ----------------------------------------------------------------------------
|
|
78
|
+
// PopoverArrow — standalone export so consumers can place it manually.
|
|
79
|
+
// ----------------------------------------------------------------------------
|
|
80
|
+
const PopoverArrow = forwardRef(function PopoverArrow({ className, width = 12, height = 6, ...props }, ref) {
|
|
81
|
+
return (_jsx(PopoverPrimitive.Arrow, { ref: ref, width: width, height: height, className: cn("fill-popover stroke-border", className), ...props }));
|
|
82
|
+
});
|
|
83
|
+
PopoverArrow.displayName = "PopoverArrow";
|
|
84
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverArrow, PopoverAnchor, PopoverClose, popoverContentVariants, };
|
|
85
|
+
//# sourceMappingURL=popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../components/ui/popover.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
2
|
+
type RadioSize = "sm" | "md" | "lg";
|
|
3
|
+
type RadioVariant = "default" | "card";
|
|
4
|
+
declare const radioGroupRootVariants: (props?: ({
|
|
5
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
type RadioGroupProps = Omit<React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>, "orientation"> & {
|
|
8
|
+
orientation?: "vertical" | "horizontal";
|
|
9
|
+
variant?: RadioVariant;
|
|
10
|
+
invalid?: boolean;
|
|
11
|
+
size?: RadioSize;
|
|
12
|
+
loop?: boolean;
|
|
13
|
+
};
|
|
14
|
+
declare const RadioGroup: import("react").ForwardRefExoticComponent<Omit<Omit<RadioGroupPrimitive.RadioGroupProps & import("react").RefAttributes<HTMLDivElement>, "ref">, "orientation"> & {
|
|
15
|
+
orientation?: "vertical" | "horizontal";
|
|
16
|
+
variant?: RadioVariant;
|
|
17
|
+
invalid?: boolean;
|
|
18
|
+
size?: RadioSize;
|
|
19
|
+
loop?: boolean;
|
|
20
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
21
|
+
declare const radioCircleVariants: (props?: ({
|
|
22
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
23
|
+
invalid?: boolean | null | undefined;
|
|
24
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
25
|
+
type RadioProps = Omit<React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, "children"> & {
|
|
26
|
+
label?: React.ReactNode;
|
|
27
|
+
description?: React.ReactNode;
|
|
28
|
+
};
|
|
29
|
+
declare const Radio: import("react").ForwardRefExoticComponent<Omit<Omit<RadioGroupPrimitive.RadioGroupItemProps & import("react").RefAttributes<HTMLButtonElement>, "ref">, "children"> & {
|
|
30
|
+
label?: React.ReactNode;
|
|
31
|
+
description?: React.ReactNode;
|
|
32
|
+
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
33
|
+
export { RadioGroup, Radio, radioGroupRootVariants, radioCircleVariants };
|
|
34
|
+
export type { RadioGroupProps, RadioProps };
|
|
35
|
+
//# sourceMappingURL=radio-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../components/ui/radio-group.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAWnE,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACpC,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAqBvC,QAAA,MAAM,sBAAsB;;8EAQ1B,CAAC;AAEH,KAAK,eAAe,GAAG,IAAI,CACzB,KAAK,CAAC,wBAAwB,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAC/D,aAAa,CACd,GAAG;IACF,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,UAAU;kBAPA,UAAU,GAAG,YAAY;cAC7B,YAAY;cACZ,OAAO;WACV,SAAS;WACT,OAAO;kDA6Bf,CAAC;AAOF,QAAA,MAAM,mBAAmB;;;8EAsBxB,CAAC;AA0CF,KAAK,UAAU,GAAG,IAAI,CACpB,KAAK,CAAC,wBAAwB,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAC/D,UAAU,CACX,GAAG;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,CAAC;AAEF,QAAA,MAAM,KAAK;YAJD,KAAK,CAAC,SAAS;kBACT,KAAK,CAAC,SAAS;qDAsF9B,CAAC;AAGF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, forwardRef, useContext, useId } from "react";
|
|
4
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
import { cn } from "@/lib/utils";
|
|
7
|
+
const RadioGroupContext = createContext({
|
|
8
|
+
size: "md",
|
|
9
|
+
variant: "default",
|
|
10
|
+
invalid: false,
|
|
11
|
+
});
|
|
12
|
+
function useRadioGroupContext() {
|
|
13
|
+
return useContext(RadioGroupContext);
|
|
14
|
+
}
|
|
15
|
+
// ----------------------------------------------------------------------------
|
|
16
|
+
// RadioGroup
|
|
17
|
+
// ----------------------------------------------------------------------------
|
|
18
|
+
const radioGroupRootVariants = cva("grid gap-2", {
|
|
19
|
+
variants: {
|
|
20
|
+
orientation: {
|
|
21
|
+
vertical: "grid-flow-row",
|
|
22
|
+
horizontal: "grid-flow-col auto-cols-max gap-3",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
defaultVariants: { orientation: "vertical" },
|
|
26
|
+
});
|
|
27
|
+
const RadioGroup = forwardRef(function RadioGroup({ className, orientation = "vertical", variant = "default", invalid = false, size = "md", loop, ...props }, ref) {
|
|
28
|
+
return (_jsx(RadioGroupContext.Provider, { value: { size, variant, invalid }, children: _jsx(RadioGroupPrimitive.Root, { ref: ref, orientation: orientation, loop: loop, "aria-invalid": invalid || undefined, className: cn(radioGroupRootVariants({ orientation }), className), ...props }) }));
|
|
29
|
+
});
|
|
30
|
+
RadioGroup.displayName = "RadioGroup";
|
|
31
|
+
// ----------------------------------------------------------------------------
|
|
32
|
+
// Radio
|
|
33
|
+
// ----------------------------------------------------------------------------
|
|
34
|
+
const radioCircleVariants = cva([
|
|
35
|
+
"aspect-square shrink-0 rounded-full border border-input bg-background text-primary",
|
|
36
|
+
"transition-colors",
|
|
37
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
38
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
39
|
+
"data-[state=checked]:border-primary",
|
|
40
|
+
].join(" "), {
|
|
41
|
+
variants: {
|
|
42
|
+
size: {
|
|
43
|
+
sm: "size-4",
|
|
44
|
+
md: "size-5",
|
|
45
|
+
lg: "size-6",
|
|
46
|
+
},
|
|
47
|
+
invalid: {
|
|
48
|
+
true: "border-destructive focus-visible:ring-destructive data-[state=checked]:border-destructive",
|
|
49
|
+
false: "",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
defaultVariants: { size: "md", invalid: false },
|
|
53
|
+
});
|
|
54
|
+
const indicatorDot = {
|
|
55
|
+
sm: "size-1.5",
|
|
56
|
+
md: "size-2",
|
|
57
|
+
lg: "size-2.5",
|
|
58
|
+
};
|
|
59
|
+
const labelSize = {
|
|
60
|
+
sm: "text-xs",
|
|
61
|
+
md: "text-sm",
|
|
62
|
+
lg: "text-base",
|
|
63
|
+
};
|
|
64
|
+
const descriptionSize = {
|
|
65
|
+
sm: "text-2xs",
|
|
66
|
+
md: "text-xs",
|
|
67
|
+
lg: "text-sm",
|
|
68
|
+
};
|
|
69
|
+
const radioCardVariants = cva([
|
|
70
|
+
"relative flex w-full items-start gap-3 rounded-md border bg-background p-3",
|
|
71
|
+
"cursor-pointer select-none",
|
|
72
|
+
"transition-colors transition-shadow",
|
|
73
|
+
"hover:bg-accent/30",
|
|
74
|
+
"focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 focus-within:ring-offset-background",
|
|
75
|
+
// Selected ring driven by the inner radio's data-state via the `in-` modifier.
|
|
76
|
+
"in-data-[state=checked]:border-primary in-data-[state=checked]:ring-2 in-data-[state=checked]:ring-primary",
|
|
77
|
+
"has-[button:disabled]:cursor-not-allowed has-[button:disabled]:opacity-50",
|
|
78
|
+
].join(" "), {
|
|
79
|
+
variants: {
|
|
80
|
+
invalid: {
|
|
81
|
+
true: "border-destructive in-data-[state=checked]:border-destructive in-data-[state=checked]:ring-destructive focus-within:ring-destructive",
|
|
82
|
+
false: "border-input",
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
defaultVariants: { invalid: false },
|
|
86
|
+
});
|
|
87
|
+
const Radio = forwardRef(function Radio({ className, label, description, id, ...props }, ref) {
|
|
88
|
+
const ctx = useRadioGroupContext();
|
|
89
|
+
const reactId = useId();
|
|
90
|
+
const radioId = id ?? reactId;
|
|
91
|
+
const descriptionId = description ? `${radioId}-description` : undefined;
|
|
92
|
+
const circle = (_jsx(RadioGroupPrimitive.Item, { ref: ref, id: radioId, "aria-describedby": descriptionId, className: cn(radioCircleVariants({ size: ctx.size, invalid: ctx.invalid }), className), ...props, children: _jsx(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: _jsx("span", { className: cn("bg-primary block rounded-full", indicatorDot[ctx.size], ctx.invalid && "bg-destructive") }) }) }));
|
|
93
|
+
if (ctx.variant === "card") {
|
|
94
|
+
return (_jsxs("label", { htmlFor: radioId, className: cn(radioCardVariants({ invalid: ctx.invalid })), children: [circle, _jsxs("span", { className: "flex flex-1 flex-col gap-1 leading-none", children: [label ? (_jsx("span", { className: cn("font-medium select-none", labelSize[ctx.size]), children: label })) : null, description ? (_jsx("span", { id: descriptionId, className: cn("text-muted-foreground", descriptionSize[ctx.size]), children: description })) : null] })] }));
|
|
95
|
+
}
|
|
96
|
+
// Default variant — circle + label + description in a row.
|
|
97
|
+
if (!label && !description)
|
|
98
|
+
return circle;
|
|
99
|
+
return (_jsxs("div", { className: "inline-flex items-start gap-2", children: [circle, _jsxs("div", { className: "space-y-0.5 leading-none", children: [label ? (_jsx("label", { htmlFor: radioId, className: cn("cursor-pointer font-medium select-none", labelSize[ctx.size], props.disabled && "cursor-not-allowed opacity-50"), children: label })) : null, description ? (_jsx("p", { id: descriptionId, className: cn("text-muted-foreground", descriptionSize[ctx.size], props.disabled && "opacity-50"), children: description })) : null] })] }));
|
|
100
|
+
});
|
|
101
|
+
Radio.displayName = "Radio";
|
|
102
|
+
export { RadioGroup, Radio, radioGroupRootVariants, radioCircleVariants };
|
|
103
|
+
//# sourceMappingURL=radio-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../components/ui/radio-group.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const Select: import("react").FC<SelectPrimitive.SelectProps>;
|
|
4
|
+
declare const SelectGroup: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const SelectValue: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
6
|
+
declare const selectTriggerVariants: (props?: ({
|
|
7
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | null | undefined;
|
|
8
|
+
invalid?: boolean | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
type SelectTriggerVariants = VariantProps<typeof selectTriggerVariants>;
|
|
11
|
+
type SelectTriggerProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> & SelectTriggerVariants & {
|
|
12
|
+
clearable?: boolean;
|
|
13
|
+
loading?: boolean;
|
|
14
|
+
startAdornment?: React.ReactNode;
|
|
15
|
+
onClear?: () => void;
|
|
16
|
+
/** Current value — needed for `clearable` to decide whether to show X. */
|
|
17
|
+
value?: string;
|
|
18
|
+
};
|
|
19
|
+
declare const SelectTrigger: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & SelectTriggerVariants & {
|
|
20
|
+
clearable?: boolean;
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
startAdornment?: React.ReactNode;
|
|
23
|
+
onClear?: () => void;
|
|
24
|
+
/** Current value — needed for `clearable` to decide whether to show X. */
|
|
25
|
+
value?: string;
|
|
26
|
+
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
27
|
+
declare const SelectContent: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
28
|
+
declare const SelectScrollUpButton: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
29
|
+
declare const SelectScrollDownButton: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
30
|
+
declare const SelectLabel: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
31
|
+
type SelectItemProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & {
|
|
32
|
+
description?: React.ReactNode;
|
|
33
|
+
icon?: React.ReactNode;
|
|
34
|
+
};
|
|
35
|
+
declare const SelectItem: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
36
|
+
description?: React.ReactNode;
|
|
37
|
+
icon?: React.ReactNode;
|
|
38
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
39
|
+
declare const SelectSeparator: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
40
|
+
export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectScrollUpButton, SelectScrollDownButton, SelectLabel, SelectItem, SelectSeparator, selectTriggerVariants, };
|
|
41
|
+
export type { SelectTriggerProps, SelectItemProps };
|
|
42
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../components/ui/select.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAQ1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAMlE,QAAA,MAAM,MAAM,iDAAuB,CAAC;AACpC,QAAA,MAAM,WAAW,6HAAwB,CAAC;AAC1C,QAAA,MAAM,WAAW,8HAAwB,CAAC;AAM1C,QAAA,MAAM,qBAAqB;;;8EA2B1B,CAAC;AAEF,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAExE,KAAK,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GACtF,qBAAqB,GAAG;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,QAAA,MAAM,aAAa;gBARH,OAAO;cACT,OAAO;qBACA,KAAK,CAAC,SAAS;cACtB,MAAM,IAAI;IACpB,0EAA0E;YAClE,MAAM;qDAmEhB,CAAC;AAOH,QAAA,MAAM,aAAa,4LA6BjB,CAAC;AAOH,QAAA,MAAM,oBAAoB,mMAiBxB,CAAC;AAGH,QAAA,MAAM,sBAAsB,qMAiB1B,CAAC;AAOH,QAAA,MAAM,WAAW,0LAcf,CAAC;AAOH,KAAK,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACnF,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,UAAU;kBAJA,KAAK,CAAC,SAAS;WACtB,KAAK,CAAC,SAAS;kDA2CvB,CAAC;AAOF,QAAA,MAAM,eAAe,8LAWnB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,eAAe,EACf,qBAAqB,GACtB,CAAC;AACF,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
5
|
+
import { RiArrowDownSLine, RiArrowUpSLine, RiCheckLine, RiCloseLine, RiLoader2Line, } from "@remixicon/react";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
import { cn } from "@/lib/utils";
|
|
8
|
+
// Per docs/emara-ui-phase-2-components.md §4.
|
|
9
|
+
const Select = SelectPrimitive.Root;
|
|
10
|
+
const SelectGroup = SelectPrimitive.Group;
|
|
11
|
+
const SelectValue = SelectPrimitive.Value;
|
|
12
|
+
// ----------------------------------------------------------------------------
|
|
13
|
+
// SelectTrigger
|
|
14
|
+
// ----------------------------------------------------------------------------
|
|
15
|
+
const selectTriggerVariants = cva([
|
|
16
|
+
"flex items-center justify-between w-full gap-2",
|
|
17
|
+
"rounded-md border border-input bg-background text-foreground",
|
|
18
|
+
"transition-colors",
|
|
19
|
+
"hover:border-foreground/40 disabled:hover:border-input",
|
|
20
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
21
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
22
|
+
"data-[placeholder]:text-muted-foreground",
|
|
23
|
+
"[&>span]:line-clamp-1 [&>span]:text-start",
|
|
24
|
+
].join(" "), {
|
|
25
|
+
variants: {
|
|
26
|
+
size: {
|
|
27
|
+
xs: "h-7 ps-2.5 pe-2 text-xs",
|
|
28
|
+
sm: "h-8 ps-3 pe-2 text-xs",
|
|
29
|
+
md: "h-9 ps-3 pe-2 text-sm",
|
|
30
|
+
lg: "h-10 ps-3.5 pe-2.5 text-base",
|
|
31
|
+
xl: "h-12 ps-4 pe-3 text-base",
|
|
32
|
+
},
|
|
33
|
+
invalid: {
|
|
34
|
+
true: "border-destructive focus-visible:ring-destructive",
|
|
35
|
+
false: "",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: { size: "md", invalid: false },
|
|
39
|
+
});
|
|
40
|
+
const SelectTrigger = forwardRef(function SelectTrigger({ className, size, invalid, clearable = false, loading = false, startAdornment, onClear, value, children, ...props }, ref) {
|
|
41
|
+
const showClear = clearable && !props.disabled && !loading && Boolean(value);
|
|
42
|
+
return (_jsxs(SelectPrimitive.Trigger, { ref: ref, className: cn(selectTriggerVariants({ size, invalid }), className), ...props, children: [startAdornment ? (_jsx("span", { "aria-hidden": "true", className: "text-muted-foreground me-1 inline-flex shrink-0 items-center [&_svg]:size-4 [&_svg]:shrink-0", children: startAdornment })) : null, children, _jsxs("span", { className: "text-muted-foreground ms-auto inline-flex shrink-0 items-center gap-1 [&_svg]:size-4 [&_svg]:shrink-0", children: [showClear ? (_jsx("button", { type: "button", "aria-label": "Clear", onClick: (e) => {
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
e.stopPropagation();
|
|
45
|
+
onClear?.();
|
|
46
|
+
}, className: cn("inline-flex items-center justify-center rounded p-0.5", "hover:text-foreground", "focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none"), children: _jsx(RiCloseLine, {}) })) : null, loading ? (_jsx(RiLoader2Line, { className: "size-4 animate-spin" })) : (_jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(RiArrowDownSLine, {}) }))] })] }));
|
|
47
|
+
});
|
|
48
|
+
SelectTrigger.displayName = "SelectTrigger";
|
|
49
|
+
// ----------------------------------------------------------------------------
|
|
50
|
+
// SelectContent
|
|
51
|
+
// ----------------------------------------------------------------------------
|
|
52
|
+
const SelectContent = forwardRef(function SelectContent({ className, children, position = "popper", sideOffset = 4, ...props }, ref) {
|
|
53
|
+
return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, position: position, sideOffset: sideOffset, className: cn("z-popover relative max-h-(--radix-select-content-available-height) min-w-32 overflow-hidden", "border-border bg-popover text-popover-foreground rounded-md border shadow-md", "data-[state=open]:animate-[scale-in_var(--duration-fast)_var(--ease-out)]", "data-[state=closed]:animate-[scale-out_var(--duration-fast)_var(--ease-in)]", position === "popper" && "w-(--radix-select-trigger-width)", className), ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: "p-1", children: children }), _jsx(SelectScrollDownButton, {})] }) }));
|
|
54
|
+
});
|
|
55
|
+
SelectContent.displayName = "SelectContent";
|
|
56
|
+
// ----------------------------------------------------------------------------
|
|
57
|
+
// SelectScrollUpButton / SelectScrollDownButton
|
|
58
|
+
// ----------------------------------------------------------------------------
|
|
59
|
+
const SelectScrollUpButton = forwardRef(function SelectScrollUpButton({ className, ...props }, ref) {
|
|
60
|
+
return (_jsx(SelectPrimitive.ScrollUpButton, { ref: ref, className: cn("text-muted-foreground flex cursor-default items-center justify-center py-1", "hover:bg-accent hover:text-accent-foreground", className), ...props, children: _jsx(RiArrowUpSLine, { className: "size-4" }) }));
|
|
61
|
+
});
|
|
62
|
+
SelectScrollUpButton.displayName = "SelectScrollUpButton";
|
|
63
|
+
const SelectScrollDownButton = forwardRef(function SelectScrollDownButton({ className, ...props }, ref) {
|
|
64
|
+
return (_jsx(SelectPrimitive.ScrollDownButton, { ref: ref, className: cn("text-muted-foreground flex cursor-default items-center justify-center py-1", "hover:bg-accent hover:text-accent-foreground", className), ...props, children: _jsx(RiArrowDownSLine, { className: "size-4" }) }));
|
|
65
|
+
});
|
|
66
|
+
SelectScrollDownButton.displayName = "SelectScrollDownButton";
|
|
67
|
+
// ----------------------------------------------------------------------------
|
|
68
|
+
// SelectLabel
|
|
69
|
+
// ----------------------------------------------------------------------------
|
|
70
|
+
const SelectLabel = forwardRef(function SelectLabel({ className, ...props }, ref) {
|
|
71
|
+
return (_jsx(SelectPrimitive.Label, { ref: ref, className: cn("text-muted-foreground px-2 py-1.5 text-xs font-semibold tracking-wide uppercase", className), ...props }));
|
|
72
|
+
});
|
|
73
|
+
SelectLabel.displayName = "SelectLabel";
|
|
74
|
+
const SelectItem = forwardRef(function SelectItem({ className, children, description, icon, ...props }, ref) {
|
|
75
|
+
return (_jsxs(SelectPrimitive.Item, { ref: ref, className: cn("relative flex w-full cursor-pointer items-start gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none select-none", "transition-colors", "focus:bg-accent focus:text-accent-foreground", "data-[state=checked]:font-medium", "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props, children: [_jsx("span", { className: "absolute start-2 inline-flex h-4 w-4 items-center justify-center text-current", children: _jsx(SelectPrimitive.ItemIndicator, { children: _jsx(RiCheckLine, { className: "size-4" }) }) }), _jsxs("span", { className: "flex flex-1 flex-col gap-0.5 leading-none", children: [_jsxs("span", { className: "inline-flex items-center gap-2", children: [icon ? (_jsx("span", { "aria-hidden": "true", className: "text-muted-foreground inline-flex shrink-0 [&_svg]:size-4 [&_svg]:shrink-0", children: icon })) : null, _jsx(SelectPrimitive.ItemText, { children: children })] }), description ? (_jsx("span", { className: "text-muted-foreground text-xs", children: description })) : null] })] }));
|
|
76
|
+
});
|
|
77
|
+
SelectItem.displayName = "SelectItem";
|
|
78
|
+
// ----------------------------------------------------------------------------
|
|
79
|
+
// SelectSeparator
|
|
80
|
+
// ----------------------------------------------------------------------------
|
|
81
|
+
const SelectSeparator = forwardRef(function SelectSeparator({ className, ...props }, ref) {
|
|
82
|
+
return (_jsx(SelectPrimitive.Separator, { ref: ref, className: cn("bg-border -mx-1 my-1 h-px", className), ...props }));
|
|
83
|
+
});
|
|
84
|
+
SelectSeparator.displayName = "SelectSeparator";
|
|
85
|
+
export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectScrollUpButton, SelectScrollDownButton, SelectLabel, SelectItem, SelectSeparator, selectTriggerVariants, };
|
|
86
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../components/ui/select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const sidebarVariants: (props?: ({
|
|
4
|
+
variant?: "filled" | "outline" | "floating" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
collapsed?: boolean | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
type SidebarVariants = VariantProps<typeof sidebarVariants>;
|
|
9
|
+
type SidebarProps = React.HTMLAttributes<HTMLElement> & SidebarVariants & {
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare const Sidebar: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLElement> & SidebarVariants & {
|
|
13
|
+
asChild?: boolean;
|
|
14
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
15
|
+
declare const SidebarBrand: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
16
|
+
declare const SidebarHeader: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
17
|
+
declare const SidebarBody: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
18
|
+
declare const SidebarFooter: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const SidebarGroup: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
20
|
+
declare const SidebarGroupLabel: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
21
|
+
type SidebarItemBaseProps = React.HTMLAttributes<HTMLElement> & {
|
|
22
|
+
icon?: ReactNode;
|
|
23
|
+
label?: ReactNode;
|
|
24
|
+
badge?: ReactNode;
|
|
25
|
+
kbd?: string[];
|
|
26
|
+
tooltip?: string;
|
|
27
|
+
active?: boolean;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
asChild?: boolean;
|
|
30
|
+
};
|
|
31
|
+
type SidebarItemFlatProps = SidebarItemBaseProps & {
|
|
32
|
+
expandable?: false;
|
|
33
|
+
/** Required for expandable=true. Ignored when flat. */
|
|
34
|
+
defaultExpanded?: boolean;
|
|
35
|
+
children?: ReactNode;
|
|
36
|
+
};
|
|
37
|
+
type SidebarItemExpandableProps = SidebarItemBaseProps & {
|
|
38
|
+
expandable: true;
|
|
39
|
+
defaultExpanded?: boolean;
|
|
40
|
+
/** Nested SidebarSubItems. */
|
|
41
|
+
children?: ReactNode;
|
|
42
|
+
};
|
|
43
|
+
type SidebarItemProps = SidebarItemFlatProps | SidebarItemExpandableProps;
|
|
44
|
+
declare const SidebarItem: import("react").ForwardRefExoticComponent<SidebarItemProps & import("react").RefAttributes<HTMLElement>>;
|
|
45
|
+
type SidebarSubItemProps = Omit<SidebarItemBaseProps, "tooltip"> & {
|
|
46
|
+
children?: ReactNode;
|
|
47
|
+
};
|
|
48
|
+
declare const SidebarSubItem: import("react").ForwardRefExoticComponent<Omit<SidebarItemBaseProps, "tooltip"> & {
|
|
49
|
+
children?: ReactNode;
|
|
50
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
51
|
+
interface SidebarCollapseToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
52
|
+
/** Override the auto-injected aria-label. */
|
|
53
|
+
expandLabel?: string;
|
|
54
|
+
collapseLabel?: string;
|
|
55
|
+
}
|
|
56
|
+
declare const SidebarCollapseToggle: import("react").ForwardRefExoticComponent<SidebarCollapseToggleProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
57
|
+
export { Sidebar, SidebarBrand, SidebarHeader, SidebarBody, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarItem, SidebarSubItem, SidebarCollapseToggle, sidebarVariants, };
|
|
58
|
+
export type { SidebarProps, SidebarItemProps, SidebarSubItemProps, SidebarCollapseToggleProps };
|
|
59
|
+
//# sourceMappingURL=sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../components/ui/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA6BlE,QAAA,MAAM,eAAe;;;;8EA+BpB,CAAC;AAEF,KAAK,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GACnD,eAAe,GAAG;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,QAAA,MAAM,OAAO;cAHC,OAAO;+CA2BnB,CAAC;AAKH,QAAA,MAAM,YAAY,2IAgBjB,CAAC;AAGF,QAAA,MAAM,aAAa,2IAIlB,CAAC;AAGF,QAAA,MAAM,WAAW,2IAUhB,CAAC;AAGF,QAAA,MAAM,aAAa,2IAUlB,CAAC;AAKF,QAAA,MAAM,YAAY,2IAIjB,CAAC;AAGF,QAAA,MAAM,iBAAiB,2IAiBtB,CAAC;AAyEF,KAAK,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,oBAAoB,GAAG,oBAAoB,GAAG;IACjD,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,uDAAuD;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,KAAK,0BAA0B,GAAG,oBAAoB,GAAG;IACvD,UAAU,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;AAE1E,QAAA,MAAM,WAAW,0GAoHf,CAAC;AA0GH,KAAK,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG;IACjE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,cAAc;eAHP,SAAS;+CAmDpB,CAAC;AAKH,UAAU,0BAA2B,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACxF,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,qBAAqB,0HA4B1B,CAAC;AAGF,OAAO,EACL,OAAO,EACP,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,CAAC"}
|