@almach/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.
- package/dist/.tsbuildinfo +1 -0
- package/dist/components/alert.d.ts +33 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +54 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/avatar.d.ts +15 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +33 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +10 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +24 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/button.d.ts +15 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +47 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +4 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +73 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +30 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +54 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +21 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +149 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/checkbox.d.ts +7 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +9 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.d.ts +7 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +19 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.d.ts +11 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +10 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command.d.ts +85 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +46 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/dialog.d.ts +36 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +37 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.d.ts +34 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +36 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +30 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +46 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/group.d.ts +26 -0
- package/dist/components/group.d.ts.map +1 -0
- package/dist/components/group.js +13 -0
- package/dist/components/group.js.map +1 -0
- package/dist/components/input.d.ts +34 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +156 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +7 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +9 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layered-card.d.ts +13 -0
- package/dist/components/layered-card.d.ts.map +1 -0
- package/dist/components/layered-card.js +13 -0
- package/dist/components/layered-card.js.map +1 -0
- package/dist/components/modal.d.ts +36 -0
- package/dist/components/modal.d.ts.map +1 -0
- package/dist/components/modal.js +72 -0
- package/dist/components/modal.js.map +1 -0
- package/dist/components/progress.d.ts +5 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +11 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio.d.ts +11 -0
- package/dist/components/radio.d.ts.map +1 -0
- package/dist/components/radio.js +17 -0
- package/dist/components/radio.js.map +1 -0
- package/dist/components/select.d.ts +41 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +49 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +5 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +11 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/skeleton.d.ts +6 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +7 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/switch.d.ts +11 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +44 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +36 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +77 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +18 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +63 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tag-input.d.ts +14 -0
- package/dist/components/tag-input.d.ts.map +1 -0
- package/dist/components/tag-input.js +53 -0
- package/dist/components/tag-input.js.map +1 -0
- package/dist/components/textarea.d.ts +7 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +9 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toast.d.ts +19 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +51 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toaster.d.ts +2 -0
- package/dist/components/toaster.d.ts.map +1 -0
- package/dist/components/toaster.js +11 -0
- package/dist/components/toaster.js.map +1 -0
- package/dist/components/tooltip.d.ts +9 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +17 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.d.ts +8 -0
- package/dist/hooks/use-copy-to-clipboard.d.ts.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.js +23 -0
- package/dist/hooks/use-copy-to-clipboard.js.map +1 -0
- package/dist/hooks/use-media-query.d.ts +7 -0
- package/dist/hooks/use-media-query.d.ts.map +1 -0
- package/dist/hooks/use-media-query.js +21 -0
- package/dist/hooks/use-media-query.js.map +1 -0
- package/dist/hooks/use-toast.d.ts +45 -0
- package/dist/hooks/use-toast.d.ts.map +1 -0
- package/dist/hooks/use-toast.js +102 -0
- package/dist/hooks/use-toast.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/package.json +74 -0
- package/src/styles/globals.css +241 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "@almach/utils";
|
|
3
|
+
const alertStyles = {
|
|
4
|
+
default: {},
|
|
5
|
+
destructive: {
|
|
6
|
+
backgroundColor: "hsl(var(--destructive) / 0.05)",
|
|
7
|
+
borderColor: "hsl(var(--destructive) / 0.3)",
|
|
8
|
+
color: "hsl(var(--destructive))",
|
|
9
|
+
},
|
|
10
|
+
success: {
|
|
11
|
+
backgroundColor: "hsl(var(--success) / 0.05)",
|
|
12
|
+
borderColor: "hsl(var(--success) / 0.3)",
|
|
13
|
+
color: "hsl(var(--success))",
|
|
14
|
+
},
|
|
15
|
+
warning: {
|
|
16
|
+
backgroundColor: "hsl(var(--warning) / 0.05)",
|
|
17
|
+
borderColor: "hsl(var(--warning) / 0.3)",
|
|
18
|
+
color: "hsl(var(--warning))",
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
// Root element
|
|
22
|
+
function AlertRoot({ className, variant = "default", style, ...props }) {
|
|
23
|
+
return (_jsx("div", { role: "alert", className: cn("relative w-full rounded-xl border p-4 flex gap-3", className), style: { ...alertStyles[variant], ...style }, ...props }));
|
|
24
|
+
}
|
|
25
|
+
AlertRoot.displayName = "Alert";
|
|
26
|
+
// Icon slot
|
|
27
|
+
function AlertIcon({ className, ...props }) {
|
|
28
|
+
return (_jsx("div", { className: cn("mt-0.5 shrink-0 [&_svg]:size-4", className), ...props }));
|
|
29
|
+
}
|
|
30
|
+
AlertIcon.displayName = "Alert.Icon";
|
|
31
|
+
// Text column
|
|
32
|
+
function AlertBody({ className, ...props }) {
|
|
33
|
+
return (_jsx("div", { className: cn("flex min-w-0 flex-1 flex-col gap-1", className), ...props }));
|
|
34
|
+
}
|
|
35
|
+
AlertBody.displayName = "Alert.Body";
|
|
36
|
+
// Title
|
|
37
|
+
function AlertTitle({ className, ...props }) {
|
|
38
|
+
return (_jsx("h5", { className: cn("text-sm font-semibold leading-none tracking-tight", className), ...props }));
|
|
39
|
+
}
|
|
40
|
+
AlertTitle.displayName = "Alert.Title";
|
|
41
|
+
// Description
|
|
42
|
+
function AlertDescription({ className, ...props }) {
|
|
43
|
+
return (_jsx("div", { className: cn("text-sm opacity-90 [&_p]:leading-relaxed mt-0.5", className), ...props }));
|
|
44
|
+
}
|
|
45
|
+
AlertDescription.displayName = "Alert.Description";
|
|
46
|
+
// Compound object
|
|
47
|
+
const Alert = Object.assign(AlertRoot, {
|
|
48
|
+
Icon: AlertIcon,
|
|
49
|
+
Body: AlertBody,
|
|
50
|
+
Title: AlertTitle,
|
|
51
|
+
Description: AlertDescription,
|
|
52
|
+
});
|
|
53
|
+
export { Alert, };
|
|
54
|
+
//# sourceMappingURL=alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/components/alert.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAInC,MAAM,WAAW,GAA8C;IAC9D,OAAO,EAAE,EAAE;IACX,WAAW,EAAE;QACZ,eAAe,EAAE,gCAAgC;QACjD,WAAW,EAAE,+BAA+B;QAC5C,KAAK,EAAE,yBAAyB;KAChC;IACD,OAAO,EAAE;QACR,eAAe,EAAE,4BAA4B;QAC7C,WAAW,EAAE,2BAA2B;QACxC,KAAK,EAAE,qBAAqB;KAC5B;IACD,OAAO,EAAE;QACR,eAAe,EAAE,4BAA4B;QAC7C,WAAW,EAAE,2BAA2B;QACxC,KAAK,EAAE,qBAAqB;KAC5B;CACD,CAAC;AAMF,eAAe;AACf,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAkB;IACrF,OAAO,CACN,cACC,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,EAAE,CACZ,kDAAkD,EAClD,SAAS,CACT,EACD,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,KACxC,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;AAEhC,YAAY;AACZ,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC/E,OAAO,CACN,cACC,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC,KACtD,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AAErC,cAAc;AACd,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC/E,OAAO,CACN,cACC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AAErC,QAAQ;AACR,SAAS,UAAU,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACkC;IAC1C,OAAO,CACN,aACC,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,KACzE,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC;AAEvC,cAAc;AACd,SAAS,gBAAgB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACoC;IAC5C,OAAO,CACN,cACC,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,KACvE,KAAK,GACR,CACF,CAAC;AACH,CAAC;AACD,gBAAgB,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAEnD,kBAAkB;AAClB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;IACtC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,gBAAgB;CAC7B,CAAC,CAAC;AAEH,OAAO,EACN,KAAK,GAGL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
declare const avatarVariants: (props?: ({
|
|
5
|
+
size?: "default" | "sm" | "lg" | "xl" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
interface AvatarProps extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
|
|
8
|
+
}
|
|
9
|
+
declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLSpanElement>> & {
|
|
10
|
+
Image: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
|
|
11
|
+
Fallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
12
|
+
};
|
|
13
|
+
export { Avatar, avatarVariants };
|
|
14
|
+
export type { AvatarProps };
|
|
15
|
+
//# sourceMappingURL=avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,cAAc;;8EAenB,CAAC;AAEF,UAAU,WACT,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,EACnE,YAAY,CAAC,OAAO,cAAc,CAAC;CAAI;AA6CxC,QAAA,MAAM,MAAM;;;CAGV,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { cn } from "@almach/utils";
|
|
6
|
+
const avatarVariants = cva("relative flex shrink-0 overflow-hidden rounded-full", {
|
|
7
|
+
variants: {
|
|
8
|
+
size: {
|
|
9
|
+
sm: "h-6 w-6 text-[10px]",
|
|
10
|
+
default: "h-9 w-9 text-sm",
|
|
11
|
+
lg: "h-12 w-12 text-base",
|
|
12
|
+
xl: "h-16 w-16 text-xl",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
size: "default",
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const AvatarRoot = React.forwardRef(({ className, size, ...props }, ref) => (_jsx(AvatarPrimitive.Root, { ref: ref, className: cn(avatarVariants({ size }), className), ...props })));
|
|
20
|
+
AvatarRoot.displayName = AvatarPrimitive.Root.displayName;
|
|
21
|
+
const AvatarImage = React.forwardRef(({ className, ...props }, ref) => (_jsx(AvatarPrimitive.Image, { ref: ref, className: cn("aspect-square h-full w-full object-cover", className), ...props })));
|
|
22
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
23
|
+
const AvatarFallback = React.forwardRef(({ className, ...props }, ref) => (_jsx(AvatarPrimitive.Fallback, { ref: ref, className: cn("flex h-full w-full items-center justify-center rounded-full font-medium select-none", className), style: {
|
|
24
|
+
backgroundColor: "hsl(var(--muted))",
|
|
25
|
+
color: "hsl(var(--muted-foreground))",
|
|
26
|
+
}, ...props })));
|
|
27
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
28
|
+
const Avatar = Object.assign(AvatarRoot, {
|
|
29
|
+
Image: AvatarImage,
|
|
30
|
+
Fallback: AvatarFallback,
|
|
31
|
+
});
|
|
32
|
+
export { Avatar, avatarVariants };
|
|
33
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,cAAc,GAAG,GAAG,CACzB,qDAAqD,EACrD;IACC,QAAQ,EAAE;QACT,IAAI,EAAE;YACL,EAAE,EAAE,qBAAqB;YACzB,OAAO,EAAE,iBAAiB;YAC1B,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,mBAAmB;SACvB;KACD;IACD,eAAe,EAAE;QAChB,IAAI,EAAE,SAAS;KACf;CACD,CACD,CAAC;AAMF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACzC,KAAC,eAAe,CAAC,IAAI,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAC9C,KAAK,GACR,CACF,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AAE1D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACnC,KAAC,eAAe,CAAC,KAAK,IACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0CAA0C,EAAE,SAAS,CAAC,KAChE,KAAK,GACR,CACF,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC;AAE5D,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACnC,KAAC,eAAe,CAAC,QAAQ,IACxB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,qFAAqF,EACrF,SAAS,CACT,EACD,KAAK,EAAE;QACN,eAAe,EAAE,mBAAmB;QACpC,KAAK,EAAE,8BAA8B;KACrC,KACG,KAAK,GACR,CACF,CAAC,CAAC;AACH,cAAc,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC;AAElE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;IACxC,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;CACxB,CAAC,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const badgeVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "destructive" | "success" | "warning" | "secondary" | "outline" | "ghost" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
7
|
+
}
|
|
8
|
+
declare function Badge({ className, variant, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export { Badge, badgeVariants };
|
|
10
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,aAAa;;8EAuBlB,CAAC;AAEF,MAAM,WAAW,UAChB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAI;AAEvC,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAI1D;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { cn } from "@almach/utils";
|
|
4
|
+
const badgeVariants = cva("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 tracking-tight", {
|
|
5
|
+
variants: {
|
|
6
|
+
variant: {
|
|
7
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/80",
|
|
8
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
9
|
+
destructive: "bg-destructive/10 text-destructive border border-destructive/20 hover:bg-destructive/15",
|
|
10
|
+
success: "bg-success/10 text-success border border-success/20 hover:bg-success/15",
|
|
11
|
+
warning: "bg-warning/10 text-warning border border-warning/20 hover:bg-warning/15",
|
|
12
|
+
outline: "border border-input text-foreground bg-transparent hover:bg-accent",
|
|
13
|
+
ghost: "bg-muted text-muted-foreground hover:bg-muted/80",
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
variant: "default",
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
function Badge({ className, variant, ...props }) {
|
|
21
|
+
return (_jsx("div", { className: cn(badgeVariants({ variant }), className), ...props }));
|
|
22
|
+
}
|
|
23
|
+
export { Badge, badgeVariants };
|
|
24
|
+
//# sourceMappingURL=badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,aAAa,GAAG,GAAG,CACxB,8KAA8K,EAC9K;IACC,QAAQ,EAAE;QACT,OAAO,EAAE;YACR,OAAO,EACN,wDAAwD;YACzD,SAAS,EACR,8DAA8D;YAC/D,WAAW,EACV,yFAAyF;YAC1F,OAAO,EACN,yEAAyE;YAC1E,OAAO,EACN,yEAAyE;YAC1E,OAAO,EAAE,oEAAoE;YAC7E,KAAK,EAAE,kDAAkD;SACzD;KACD;IACD,eAAe,EAAE;QAChB,OAAO,EAAE,SAAS;KAClB;CACD,CACD,CAAC;AAMF,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAc;IAC1D,OAAO,CACN,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACxE,CAAC;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "destructive" | "success" | "warning" | "link" | "secondary" | "outline" | "ghost" | null | undefined;
|
|
5
|
+
size?: "default" | "icon" | "sm" | "lg" | "icon-sm" | "icon-lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
leftIcon?: React.ReactNode;
|
|
11
|
+
rightIcon?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
14
|
+
export { Button, buttonVariants };
|
|
15
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,cAAc;;;8EAwCnB,CAAC;AAEF,MAAM,WAAW,WAChB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACrD,YAAY,CAAC,OAAO,cAAc,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,MAAM,uFAoCX,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { Loader2 } from "lucide-react";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { cn } from "@almach/utils";
|
|
7
|
+
const buttonVariants = cva([
|
|
8
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium",
|
|
9
|
+
"select-none rounded-lg text-sm",
|
|
10
|
+
"transition-all duration-150",
|
|
11
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background",
|
|
12
|
+
"disabled:pointer-events-none disabled:opacity-40",
|
|
13
|
+
"active:scale-[0.97]",
|
|
14
|
+
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
15
|
+
], {
|
|
16
|
+
variants: {
|
|
17
|
+
variant: {
|
|
18
|
+
default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
|
|
19
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
20
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
21
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
22
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
23
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
24
|
+
success: "bg-success text-success-foreground shadow-sm hover:bg-success/90",
|
|
25
|
+
warning: "bg-warning text-warning-foreground shadow-sm hover:bg-warning/90",
|
|
26
|
+
},
|
|
27
|
+
size: {
|
|
28
|
+
sm: "h-8 px-3 text-xs [&_svg]:size-3.5",
|
|
29
|
+
default: "h-9 px-4 [&_svg]:size-4",
|
|
30
|
+
lg: "h-11 px-6 text-base [&_svg]:size-4",
|
|
31
|
+
icon: "h-9 w-9 [&_svg]:size-4",
|
|
32
|
+
"icon-sm": "h-8 w-8 [&_svg]:size-3.5",
|
|
33
|
+
"icon-lg": "h-11 w-11 [&_svg]:size-5",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
defaultVariants: {
|
|
37
|
+
variant: "default",
|
|
38
|
+
size: "default",
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
const Button = React.forwardRef(({ className, variant, size, asChild = false, loading = false, leftIcon, rightIcon, children, disabled, ...props }, ref) => {
|
|
42
|
+
const Comp = asChild ? Slot : "button";
|
|
43
|
+
return (_jsxs(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, disabled: disabled ?? loading, "aria-busy": loading, ...props, children: [loading ? (_jsx(Loader2, { className: "animate-spin", "aria-hidden": "true" })) : (leftIcon), children, !loading && rightIcon] }));
|
|
44
|
+
});
|
|
45
|
+
Button.displayName = "Button";
|
|
46
|
+
export { Button, buttonVariants };
|
|
47
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,cAAc,GAAG,GAAG,CACzB;IACC,6EAA6E;IAC7E,gCAAgC;IAChC,6BAA6B;IAC7B,4HAA4H;IAC5H,kDAAkD;IAClD,qBAAqB;IACrB,8CAA8C;CAC9C,EACD;IACC,QAAQ,EAAE;QACT,OAAO,EAAE;YACR,OAAO,EACN,kEAAkE;YACnE,WAAW,EACV,8EAA8E;YAC/E,OAAO,EACN,0FAA0F;YAC3F,SAAS,EACR,8DAA8D;YAC/D,KAAK,EAAE,8CAA8C;YACrD,IAAI,EAAE,iDAAiD;YACvD,OAAO,EAAE,kEAAkE;YAC3E,OAAO,EAAE,kEAAkE;SAC3E;QACD,IAAI,EAAE;YACL,EAAE,EAAE,mCAAmC;YACvC,OAAO,EAAE,yBAAyB;YAClC,EAAE,EAAE,oCAAoC;YACxC,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,0BAA0B;YACrC,SAAS,EAAE,0BAA0B;SACrC;KACD;IACD,eAAe,EAAE;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KACf;CACD,CACD,CAAC;AAWF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC9B,CACC,EACC,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACR,EACD,GAAG,EACF,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvC,OAAO,CACN,MAAC,IAAI,IACJ,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,IAAI,OAAO,eAClB,OAAO,KACd,KAAK,aAER,OAAO,CAAC,CAAC,CAAC,CACV,KAAC,OAAO,IAAC,SAAS,EAAC,cAAc,iBAAa,MAAM,GAAG,CACvD,CAAC,CAAC,CAAC,CACH,QAAQ,CACR,EACA,QAAQ,EACR,CAAC,OAAO,IAAI,SAAS,IAChB,CACP,CAAC;AACH,CAAC,CACD,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type DayPickerProps } from "react-day-picker";
|
|
2
|
+
export type CalendarProps = DayPickerProps;
|
|
3
|
+
export declare function Calendar({ className, classNames, showOutsideDays, month: monthProp, onMonthChange, defaultMonth, ...props }: CalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,cAAc,EAAoC,MAAM,kBAAkB,CAAC;AAUpG,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AA+G3C,wBAAgB,QAAQ,CAAC,EACxB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,KAAK,EAAE,SAAS,EAChB,aAAa,EACb,YAAY,EACZ,GAAG,KAAK,EACR,EAAE,aAAa,2CAkFf"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { DayPicker, useDayPicker } from "react-day-picker";
|
|
4
|
+
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { cn } from "@almach/utils";
|
|
7
|
+
import { buttonVariants } from "./button";
|
|
8
|
+
/* ── Month picker overlay ─────────────────────────────────────────────────── */
|
|
9
|
+
const MONTH_NAMES = [
|
|
10
|
+
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
|
11
|
+
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
|
|
12
|
+
];
|
|
13
|
+
function MonthPicker({ current, onSelect, }) {
|
|
14
|
+
const [year, setYear] = React.useState(current.getFullYear());
|
|
15
|
+
return (_jsxs("div", { className: "p-3 w-[280px]", children: [_jsxs("div", { className: "flex items-center justify-between mb-3 px-1", children: [_jsx("button", { onClick: () => setYear((y) => y - 1), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7"), "aria-label": "Previous year", children: _jsx(ChevronLeft, { className: "h-4 w-4" }) }), _jsx("span", { className: "text-sm font-semibold", children: year }), _jsx("button", { onClick: () => setYear((y) => y + 1), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7"), "aria-label": "Next year", children: _jsx(ChevronRight, { className: "h-4 w-4" }) })] }), _jsx("div", { className: "grid grid-cols-3 gap-1.5", children: MONTH_NAMES.map((name, i) => {
|
|
16
|
+
const isSelected = current.getMonth() === i && current.getFullYear() === year;
|
|
17
|
+
return (_jsx("button", { onClick: () => onSelect(new Date(year, i, 1)), className: cn("rounded-lg py-2.5 text-sm font-medium transition-colors", isSelected
|
|
18
|
+
? "bg-foreground text-background"
|
|
19
|
+
: "hover:bg-accent hover:text-accent-foreground"), children: name }, name));
|
|
20
|
+
}) })] }));
|
|
21
|
+
}
|
|
22
|
+
/* ── Custom caption (prev | Month Year | next) ────────────────────────────── */
|
|
23
|
+
function CalendarCaption({ calendarMonth, onPickMonth, }) {
|
|
24
|
+
const { goToMonth, previousMonth, nextMonth } = useDayPicker();
|
|
25
|
+
return (_jsxs("div", { className: "flex items-center justify-between gap-1 px-1", children: [_jsx("button", { disabled: !previousMonth, onClick: () => previousMonth && goToMonth(previousMonth), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7 disabled:opacity-40"), "aria-label": "Previous month", children: _jsx(ChevronLeft, { className: "h-4 w-4" }) }), _jsx("button", { onClick: onPickMonth, className: "flex-1 text-center text-sm font-semibold transition-colors hover:text-foreground/70", "aria-label": "Pick month and year", children: calendarMonth.date.toLocaleDateString("en-US", { month: "long", year: "numeric" }) }), _jsx("button", { disabled: !nextMonth, onClick: () => nextMonth && goToMonth(nextMonth), className: cn(buttonVariants({ variant: "outline", size: "icon-sm" }), "h-7 w-7 disabled:opacity-40"), "aria-label": "Next month", children: _jsx(ChevronRight, { className: "h-4 w-4" }) })] }));
|
|
26
|
+
}
|
|
27
|
+
/* ── Calendar ─────────────────────────────────────────────────────────────── */
|
|
28
|
+
export function Calendar({ className, classNames, showOutsideDays = true, month: monthProp, onMonthChange, defaultMonth, ...props }) {
|
|
29
|
+
const [displayMonth, setDisplayMonth] = React.useState(() => monthProp ?? defaultMonth ?? new Date());
|
|
30
|
+
const [pickingMonth, setPickingMonth] = React.useState(false);
|
|
31
|
+
// Sync controlled month prop
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
if (monthProp)
|
|
34
|
+
setDisplayMonth(monthProp);
|
|
35
|
+
}, [monthProp]);
|
|
36
|
+
const handleMonthChange = (date) => {
|
|
37
|
+
setDisplayMonth(date);
|
|
38
|
+
onMonthChange?.(date);
|
|
39
|
+
};
|
|
40
|
+
if (pickingMonth) {
|
|
41
|
+
return (_jsx(MonthPicker, { current: displayMonth, onSelect: (date) => {
|
|
42
|
+
handleMonthChange(date);
|
|
43
|
+
setPickingMonth(false);
|
|
44
|
+
} }));
|
|
45
|
+
}
|
|
46
|
+
return (_jsx(DayPicker, { showOutsideDays: showOutsideDays, className: cn("p-3", className), month: displayMonth, onMonthChange: handleMonthChange, classNames: {
|
|
47
|
+
months: "flex flex-col sm:flex-row gap-4",
|
|
48
|
+
month: "flex flex-col gap-4",
|
|
49
|
+
month_caption: "flex items-center",
|
|
50
|
+
caption_label: "hidden", // handled by our custom caption
|
|
51
|
+
nav: "hidden", // handled by our custom caption
|
|
52
|
+
month_grid: "w-full border-collapse",
|
|
53
|
+
weekdays: "flex",
|
|
54
|
+
weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem] flex items-center justify-center",
|
|
55
|
+
week: "flex w-full mt-2",
|
|
56
|
+
day: "relative p-0 text-center text-sm focus-within:relative focus-within:z-20",
|
|
57
|
+
day_button: cn("h-9 w-9 rounded-md p-0 font-normal", "inline-flex items-center justify-center", "transition-colors", "hover:bg-accent hover:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1", "aria-selected:opacity-100"),
|
|
58
|
+
selected: "[&>button]:bg-foreground [&>button]:text-background [&>button]:hover:bg-foreground/90 [&>button]:rounded-md",
|
|
59
|
+
today: "[&>button]:bg-accent [&>button]:text-accent-foreground",
|
|
60
|
+
outside: "text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:opacity-30",
|
|
61
|
+
disabled: "text-muted-foreground opacity-50",
|
|
62
|
+
range_start: "[&>button]:bg-foreground [&>button]:text-background [&>button]:rounded-l-md [&>button]:rounded-r-none",
|
|
63
|
+
range_end: "[&>button]:bg-foreground [&>button]:text-background [&>button]:rounded-r-md [&>button]:rounded-l-none",
|
|
64
|
+
range_middle: "[&>button]:bg-accent [&>button]:text-accent-foreground [&>button]:rounded-none",
|
|
65
|
+
hidden: "invisible",
|
|
66
|
+
...classNames,
|
|
67
|
+
}, components: {
|
|
68
|
+
// Nav handled inline in MonthCaption — suppress default nav
|
|
69
|
+
Nav: () => _jsx(_Fragment, {}),
|
|
70
|
+
MonthCaption: ({ calendarMonth }) => (_jsx(CalendarCaption, { calendarMonth: calendarMonth, onPickMonth: () => setPickingMonth(true) })),
|
|
71
|
+
}, ...props }));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Right-side element: icon, badge, button, etc. */
|
|
4
|
+
action?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
interface CardRowProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
action?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
interface CardLayerHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
10
|
+
action?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
interface CardLayerRowProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
action?: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>> & {
|
|
16
|
+
Header: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
Title: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
|
|
18
|
+
Description: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
19
|
+
Content: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
Section: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
Row: React.ForwardRefExoticComponent<CardRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
Footer: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
/** Layered card root — stacked sections divided by borders (Claude-style) */
|
|
24
|
+
Layers: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
LayerHeader: React.ForwardRefExoticComponent<CardLayerHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
LayerBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
27
|
+
LayerRow: React.ForwardRefExoticComponent<CardLayerRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
};
|
|
29
|
+
export { Card };
|
|
30
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,UAAU,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE,oDAAoD;IACpD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AA0ED,UAAU,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAsDD,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC1E,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AA8BD,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAyBD,QAAA,MAAM,IAAI;;;;;;;;IAQT,6EAA6E;;;;;CAK5E,CAAC;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "@almach/utils";
|
|
4
|
+
// ── Root ───────────────────────────────────────────────────────────────────────
|
|
5
|
+
const CardRoot = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("overflow-hidden rounded-xl border bg-card text-card-foreground shadow-sm", className), ...props })));
|
|
6
|
+
CardRoot.displayName = "Card";
|
|
7
|
+
const CardHeader = React.forwardRef(({ className, children, action, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-start justify-between gap-2 px-5 pt-5", action && "pb-0", className), ...props, children: [_jsx("div", { className: "flex flex-col gap-1.5 min-w-0", children: children }), action && (_jsx("div", { className: "shrink-0 text-muted-foreground", children: action }))] })));
|
|
8
|
+
CardHeader.displayName = "Card.Header";
|
|
9
|
+
// ── Title ──────────────────────────────────────────────────────────────────────
|
|
10
|
+
const CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx("h3", { ref: ref, className: cn("text-base font-semibold leading-none tracking-tight", className), ...props })));
|
|
11
|
+
CardTitle.displayName = "Card.Title";
|
|
12
|
+
// ── Description ────────────────────────────────────────────────────────────────
|
|
13
|
+
const CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx("p", { ref: ref, className: cn("text-sm text-muted-foreground leading-relaxed", className), ...props })));
|
|
14
|
+
CardDescription.displayName = "Card.Description";
|
|
15
|
+
// ── Content ────────────────────────────────────────────────────────────────────
|
|
16
|
+
const CardContent = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("px-5 py-4", className), ...props })));
|
|
17
|
+
CardContent.displayName = "Card.Content";
|
|
18
|
+
// ── Section ────────────────────────────────────────────────────────────────────
|
|
19
|
+
const CardSection = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("border-t px-5 py-4", className), ...props })));
|
|
20
|
+
CardSection.displayName = "Card.Section";
|
|
21
|
+
const CardRow = React.forwardRef(({ className, children, action, onClick, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-center justify-between gap-2 border-t px-5 py-3 text-sm", "transition-colors", onClick && "cursor-pointer hover:bg-accent/50", className), onClick: onClick, ...props, children: [_jsx("span", { className: "min-w-0 flex-1", children: children }), action && (_jsx("span", { className: "shrink-0 text-muted-foreground", children: action }))] })));
|
|
22
|
+
CardRow.displayName = "Card.Row";
|
|
23
|
+
// ── Footer ─────────────────────────────────────────────────────────────────────
|
|
24
|
+
const CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("border-t flex items-center px-5 py-4", className), ...props })));
|
|
25
|
+
CardFooter.displayName = "Card.Footer";
|
|
26
|
+
// ── Layers ─────────────────────────────────────────────────────────────────────
|
|
27
|
+
// Layered card: sections divided by borders, each with its own background.
|
|
28
|
+
// Inspired by Claude/macOS-style stacked panels.
|
|
29
|
+
const CardLayers = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("overflow-hidden rounded-xl border bg-card divide-y divide-border", className), ...props })));
|
|
30
|
+
CardLayers.displayName = "Card.Layers";
|
|
31
|
+
const CardLayerHeader = React.forwardRef(({ className, children, action, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-center justify-between gap-2 px-4 py-3", "text-sm font-medium text-muted-foreground bg-muted/40", className), ...props, children: [_jsx("span", { children: children }), action && _jsx("span", { className: "shrink-0", children: action })] })));
|
|
32
|
+
CardLayerHeader.displayName = "Card.LayerHeader";
|
|
33
|
+
// ── Layer.Body ─────────────────────────────────────────────────────────────────
|
|
34
|
+
const CardLayerBody = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("px-4 py-3 bg-card", className), ...props })));
|
|
35
|
+
CardLayerBody.displayName = "Card.LayerBody";
|
|
36
|
+
const CardLayerRow = React.forwardRef(({ className, children, action, onClick, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex items-center justify-between gap-2 px-4 py-3 text-sm bg-card", "transition-colors", onClick && "cursor-pointer hover:bg-accent/50", className), onClick: onClick, ...props, children: [_jsx("span", { className: "min-w-0 flex-1", children: children }), action && (_jsx("span", { className: "shrink-0 text-muted-foreground", children: action }))] })));
|
|
37
|
+
CardLayerRow.displayName = "Card.LayerRow";
|
|
38
|
+
// ── Compound ───────────────────────────────────────────────────────────────────
|
|
39
|
+
const Card = Object.assign(CardRoot, {
|
|
40
|
+
Header: CardHeader,
|
|
41
|
+
Title: CardTitle,
|
|
42
|
+
Description: CardDescription,
|
|
43
|
+
Content: CardContent,
|
|
44
|
+
Section: CardSection,
|
|
45
|
+
Row: CardRow,
|
|
46
|
+
Footer: CardFooter,
|
|
47
|
+
/** Layered card root — stacked sections divided by borders (Claude-style) */
|
|
48
|
+
Layers: CardLayers,
|
|
49
|
+
LayerHeader: CardLayerHeader,
|
|
50
|
+
LayerBody: CardLayerBody,
|
|
51
|
+
LayerRow: CardLayerRow,
|
|
52
|
+
});
|
|
53
|
+
export { Card };
|
|
54
|
+
//# sourceMappingURL=card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface CarouselProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
loop?: boolean;
|
|
4
|
+
}
|
|
5
|
+
declare function CarouselRoot({ className, children, loop, ...props }: CarouselProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function CarouselContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function CarouselItem({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function CarouselPrevious({ className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function CarouselNext({ className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function CarouselDots({ className }: {
|
|
11
|
+
className?: string;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare const Carousel: typeof CarouselRoot & {
|
|
14
|
+
Content: typeof CarouselContent;
|
|
15
|
+
Item: typeof CarouselItem;
|
|
16
|
+
Previous: typeof CarouselPrevious;
|
|
17
|
+
Next: typeof CarouselNext;
|
|
18
|
+
Dots: typeof CarouselDots;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../src/components/carousel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B,UAAU,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAY,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CA4EnF;AAGD,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,2CA+DrF;AAGD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,2CAUlF;AAGD,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,2CAiB/F;AAGD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,2CAiB3F;AAGD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAoB1D;AAGD,eAAO,MAAM,QAAQ;;;;;;CAMnB,CAAC"}
|