@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,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "@almach/utils";
|
|
4
|
+
const Textarea = React.forwardRef(({ className, error, ...props }, ref) => {
|
|
5
|
+
return (_jsx("textarea", { className: cn("flex min-h-[80px] w-full rounded-lg border border-input bg-background px-3 py-2 text-sm", "transition-all duration-150 ring-offset-background", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", "disabled:cursor-not-allowed disabled:opacity-50", "resize-y", error && "border-destructive focus-visible:ring-destructive", className), ref: ref, "aria-invalid": error, ...props }));
|
|
6
|
+
});
|
|
7
|
+
Textarea.displayName = "Textarea";
|
|
8
|
+
export { Textarea };
|
|
9
|
+
//# sourceMappingURL=textarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAOnC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACvC,OAAO,CACN,mBACC,SAAS,EAAE,EAAE,CACZ,yFAAyF,EACzF,oDAAoD,EACpD,mCAAmC,EACnC,qGAAqG,EACrG,iDAAiD,EACjD,UAAU,EACV,KAAK,IAAI,mDAAmD,EAC5D,SAAS,CACT,EACD,GAAG,EAAE,GAAG,kBACM,KAAK,KACf,KAAK,GACR,CACF,CAAC;AACH,CAAC,CACD,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
declare const ToastProvider: React.FC<ToastPrimitives.ToastProviderProps>;
|
|
5
|
+
declare const ToastViewport: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastViewportProps & React.RefAttributes<HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
|
|
6
|
+
export type ToastVariant = "default" | "destructive" | "success";
|
|
7
|
+
declare const toastVariants: (props?: ({
|
|
8
|
+
variant?: "default" | "destructive" | "success" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
export interface ToastProps extends React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root>, VariantProps<typeof toastVariants> {
|
|
11
|
+
}
|
|
12
|
+
declare const Toast: React.ForwardRefExoticComponent<ToastProps & React.RefAttributes<HTMLLIElement>>;
|
|
13
|
+
declare const ToastAction: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
14
|
+
declare const ToastClose: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
declare const ToastTitle: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastTitleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
declare const ToastDescription: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastDescriptionProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
type ToastActionElement = React.ReactElement<typeof ToastAction>;
|
|
18
|
+
export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, type ToastActionElement, };
|
|
19
|
+
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/components/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,QAAA,MAAM,aAAa,8CAA2B,CAAC;AAE/C,QAAA,MAAM,aAAa,kKAYjB,CAAC;AAIH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAEjE,QAAA,MAAM,aAAa;;8EAyBlB,CAAC;AASF,MAAM,WAAW,UAChB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,EACnE,YAAY,CAAC,OAAO,aAAa,CAAC;CAAI;AAEvC,QAAA,MAAM,KAAK,kFAYT,CAAC;AAIH,QAAA,MAAM,WAAW,kKAef,CAAC;AAIH,QAAA,MAAM,UAAU,iKAoBd,CAAC;AAIH,QAAA,MAAM,UAAU,2JASd,CAAC;AAGH,QAAA,MAAM,gBAAgB,iKASpB,CAAC;AAIH,KAAK,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,WAAW,CAAC,CAAC;AAEjE,OAAO,EACN,KAAK,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,aAAa,EACb,KAAK,kBAAkB,GACvB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { CircleCheck, CircleX, Info, X } from "lucide-react";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { cn } from "@almach/utils";
|
|
7
|
+
/* ── Provider & Viewport ──────────────────────────────────────────────────── */
|
|
8
|
+
const ToastProvider = ToastPrimitives.Provider;
|
|
9
|
+
const ToastViewport = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Viewport, { ref: ref, className: cn("fixed bottom-4 right-4 z-[100] flex max-h-screen w-full max-w-sm flex-col gap-2 p-1", className), ...props })));
|
|
10
|
+
ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
|
|
11
|
+
const toastVariants = cva([
|
|
12
|
+
"group pointer-events-auto relative flex w-full items-start gap-3",
|
|
13
|
+
"overflow-hidden rounded-2xl border bg-background p-4 shadow-lg",
|
|
14
|
+
"transition-all",
|
|
15
|
+
// enter
|
|
16
|
+
"data-[state=open]:animate-in data-[state=open]:slide-in-from-bottom-4 data-[state=open]:fade-in-0",
|
|
17
|
+
// exit
|
|
18
|
+
"data-[state=closed]:animate-out data-[state=closed]:slide-out-to-right-full data-[state=closed]:fade-out-80",
|
|
19
|
+
// swipe
|
|
20
|
+
"data-[swipe=cancel]:translate-x-0 data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)]",
|
|
21
|
+
"data-[swipe=move]:transition-none data-[swipe=end]:animate-out data-[swipe=end]:slide-out-to-right-full",
|
|
22
|
+
], {
|
|
23
|
+
variants: {
|
|
24
|
+
variant: {
|
|
25
|
+
default: "border-border",
|
|
26
|
+
destructive: "border-destructive/20 bg-destructive/[0.03]",
|
|
27
|
+
success: "border-success/20 bg-success/[0.03]",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: { variant: "default" },
|
|
31
|
+
});
|
|
32
|
+
const iconMap = {
|
|
33
|
+
default: _jsx(Info, { className: "mt-0.5 h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
34
|
+
destructive: _jsx(CircleX, { className: "mt-0.5 h-4 w-4 shrink-0 text-destructive" }),
|
|
35
|
+
success: _jsx(CircleCheck, { className: "mt-0.5 h-4 w-4 shrink-0 text-success" }),
|
|
36
|
+
};
|
|
37
|
+
const Toast = React.forwardRef(({ className, variant = "default", children, ...props }, ref) => (_jsxs(ToastPrimitives.Root, { ref: ref, className: cn(toastVariants({ variant }), className), ...props, children: [iconMap[variant ?? "default"], _jsx("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: children })] })));
|
|
38
|
+
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
39
|
+
/* ── Action ───────────────────────────────────────────────────────────────── */
|
|
40
|
+
const ToastAction = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Action, { ref: ref, className: cn("mt-1 inline-flex h-7 shrink-0 items-center justify-center rounded-md border px-3 text-xs font-medium", "transition-colors hover:bg-secondary", "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", className), ...props })));
|
|
41
|
+
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
42
|
+
/* ── Close ────────────────────────────────────────────────────────────────── */
|
|
43
|
+
const ToastClose = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Close, { ref: ref, className: cn("absolute right-2.5 top-2.5 flex h-6 w-6 items-center justify-center rounded-lg", "text-muted-foreground/40 transition-colors", "hover:text-foreground hover:bg-muted", "focus:outline-none focus:ring-2 focus:ring-ring", "opacity-0 group-hover:opacity-100", className), "toast-close": "", "aria-label": "Dismiss", ...props, children: _jsx(X, { className: "h-3 w-3" }) })));
|
|
44
|
+
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
45
|
+
/* ── Title & Description ──────────────────────────────────────────────────── */
|
|
46
|
+
const ToastTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Title, { ref: ref, className: cn("text-sm font-semibold leading-tight", className), ...props })));
|
|
47
|
+
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
48
|
+
const ToastDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Description, { ref: ref, className: cn("text-sm text-muted-foreground leading-snug", className), ...props })));
|
|
49
|
+
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
50
|
+
export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, };
|
|
51
|
+
//# sourceMappingURL=toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../src/components/toast.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.d.ts","sourceRoot":"","sources":["../../src/components/toaster.tsx"],"names":[],"mappings":"AAYA,wBAAgB,OAAO,4CAsBtB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, } from "./toast";
|
|
4
|
+
import { useToast } from "../hooks/use-toast";
|
|
5
|
+
export function Toaster() {
|
|
6
|
+
const { toasts } = useToast();
|
|
7
|
+
return (_jsxs(ToastProvider, { children: [toasts.map(function ({ id, title, description, action, ...props }) {
|
|
8
|
+
return (_jsxs(Toast, { ...props, children: [_jsxs("div", { className: "flex flex-col gap-1 min-w-0 flex-1", children: [title && _jsx(ToastTitle, { children: title }), description && (_jsx(ToastDescription, { children: description }))] }), action, _jsx(ToastClose, {})] }, id));
|
|
9
|
+
}), _jsx(ToastViewport, {})] }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=toaster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.js","sourceRoot":"","sources":["../../src/components/toaster.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACN,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,OAAO;IACtB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9B,OAAO,CACN,MAAC,aAAa,eACZ,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;gBACjE,OAAO,CACN,MAAC,KAAK,OAAc,KAAK,aACxB,eAAK,SAAS,EAAC,oCAAoC,aACjD,KAAK,IAAI,KAAC,UAAU,cAAE,KAAK,GAAc,EACzC,WAAW,IAAI,CACf,KAAC,gBAAgB,cAAE,WAAW,GAAoB,CAClD,IACI,EACL,MAAM,EACP,KAAC,UAAU,KAAG,KARH,EAAE,CASN,CACR,CAAC;YACH,CAAC,CAAC,EACF,KAAC,aAAa,KAAG,IACF,CAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps> & {
|
|
4
|
+
Provider: React.FC<TooltipPrimitive.TooltipProviderProps>;
|
|
5
|
+
Trigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
6
|
+
Content: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
};
|
|
8
|
+
export { Tooltip };
|
|
9
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,QAAA,MAAM,OAAO;;;;CAIX,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { cn } from "@almach/utils";
|
|
5
|
+
/* ── Sub-components ────────────────────────────────────────────────────── */
|
|
6
|
+
const TooltipProvider = TooltipPrimitive.Provider;
|
|
7
|
+
const TooltipTrigger = TooltipPrimitive.Trigger;
|
|
8
|
+
const TooltipContent = React.forwardRef(({ className, sideOffset = 6, ...props }, ref) => (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: cn("z-50 max-w-xs rounded-lg bg-foreground px-3 py-1.5", "text-xs font-medium text-background leading-snug", "shadow-md select-none", "animate-in fade-in-0 zoom-in-95", "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2", "data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className), ...props }) })));
|
|
9
|
+
TooltipContent.displayName = "Tooltip.Content";
|
|
10
|
+
/* ── Compound export ───────────────────────────────────────────────────── */
|
|
11
|
+
const Tooltip = Object.assign(TooltipPrimitive.Root, {
|
|
12
|
+
Provider: TooltipProvider,
|
|
13
|
+
Trigger: TooltipTrigger,
|
|
14
|
+
Content: TooltipContent,
|
|
15
|
+
});
|
|
16
|
+
export { Tooltip };
|
|
17
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,8EAA8E;AAC9E,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAC;AAClD,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAEhD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACnD,KAAC,gBAAgB,CAAC,MAAM,cACvB,KAAC,gBAAgB,CAAC,OAAO,IACxB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACZ,oDAAoD,EACpD,kDAAkD,EAClD,uBAAuB,EACvB,iCAAiC,EACjC,gGAAgG,EAChG,+EAA+E,EAC/E,+EAA+E,EAC/E,SAAS,CACT,KACG,KAAK,GACR,GACuB,CAC1B,CAAC,CAAC;AACH,cAAc,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAE/C,8EAA8E;AAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;IACpD,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CACvB,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-copy-to-clipboard.d.ts","sourceRoot":"","sources":["../../src/hooks/use-copy-to-clipboard.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,SAAO;iBAGxB,MAAM;;EAajC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Hook to copy text to clipboard with a reset delay.
|
|
5
|
+
*/
|
|
6
|
+
export function useCopyToClipboard(resetDelay = 2000) {
|
|
7
|
+
const [copied, setCopied] = useState(false);
|
|
8
|
+
const copy = async (text) => {
|
|
9
|
+
if (!navigator.clipboard)
|
|
10
|
+
return false;
|
|
11
|
+
try {
|
|
12
|
+
await navigator.clipboard.writeText(text);
|
|
13
|
+
setCopied(true);
|
|
14
|
+
setTimeout(() => setCopied(false), resetDelay);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
return { copy, copied };
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=use-copy-to-clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-copy-to-clipboard.js","sourceRoot":"","sources":["../../src/hooks/use-copy-to-clipboard.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAU,GAAG,IAAI;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,IAAI,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QAClC,IAAI,CAAC,SAAS,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to check if a media query matches.
|
|
3
|
+
* SSR-safe: returns false during server rendering.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useMediaQuery(query: string): boolean;
|
|
6
|
+
export declare function useIsMobile(): boolean;
|
|
7
|
+
//# sourceMappingURL=use-media-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-media-query.d.ts","sourceRoot":"","sources":["../../src/hooks/use-media-query.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAapD;AAED,wBAAgB,WAAW,YAE1B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Hook to check if a media query matches.
|
|
5
|
+
* SSR-safe: returns false during server rendering.
|
|
6
|
+
*/
|
|
7
|
+
export function useMediaQuery(query) {
|
|
8
|
+
const [matches, setMatches] = useState(false);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const media = window.matchMedia(query);
|
|
11
|
+
setMatches(media.matches);
|
|
12
|
+
const listener = (event) => setMatches(event.matches);
|
|
13
|
+
media.addEventListener("change", listener);
|
|
14
|
+
return () => media.removeEventListener("change", listener);
|
|
15
|
+
}, [query]);
|
|
16
|
+
return matches;
|
|
17
|
+
}
|
|
18
|
+
export function useIsMobile() {
|
|
19
|
+
return useMediaQuery("(max-width: 768px)");
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=use-media-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-media-query.js","sourceRoot":"","sources":["../../src/hooks/use-media-query.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,CAAC,KAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3E,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { ToastProps } from "../components/toast";
|
|
3
|
+
type ToasterToast = ToastProps & {
|
|
4
|
+
id: string;
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
action?: React.ReactElement;
|
|
8
|
+
};
|
|
9
|
+
declare const actionTypes: {
|
|
10
|
+
readonly ADD_TOAST: "ADD_TOAST";
|
|
11
|
+
readonly UPDATE_TOAST: "UPDATE_TOAST";
|
|
12
|
+
readonly DISMISS_TOAST: "DISMISS_TOAST";
|
|
13
|
+
readonly REMOVE_TOAST: "REMOVE_TOAST";
|
|
14
|
+
};
|
|
15
|
+
type ActionType = typeof actionTypes;
|
|
16
|
+
type Action = {
|
|
17
|
+
type: ActionType["ADD_TOAST"];
|
|
18
|
+
toast: ToasterToast;
|
|
19
|
+
} | {
|
|
20
|
+
type: ActionType["UPDATE_TOAST"];
|
|
21
|
+
toast: Partial<ToasterToast>;
|
|
22
|
+
} | {
|
|
23
|
+
type: ActionType["DISMISS_TOAST"];
|
|
24
|
+
toastId?: ToasterToast["id"];
|
|
25
|
+
} | {
|
|
26
|
+
type: ActionType["REMOVE_TOAST"];
|
|
27
|
+
toastId?: ToasterToast["id"];
|
|
28
|
+
};
|
|
29
|
+
interface State {
|
|
30
|
+
toasts: ToasterToast[];
|
|
31
|
+
}
|
|
32
|
+
export declare const reducer: (state: State, action: Action) => State;
|
|
33
|
+
type Toast = Omit<ToasterToast, "id">;
|
|
34
|
+
declare function toast({ ...props }: Toast): {
|
|
35
|
+
id: string;
|
|
36
|
+
dismiss: () => void;
|
|
37
|
+
update: (props: ToasterToast) => void;
|
|
38
|
+
};
|
|
39
|
+
declare function useToast(): {
|
|
40
|
+
toast: typeof toast;
|
|
41
|
+
dismiss: (toastId?: string) => void;
|
|
42
|
+
toasts: ToasterToast[];
|
|
43
|
+
};
|
|
44
|
+
export { toast, useToast };
|
|
45
|
+
//# sourceMappingURL=use-toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/hooks/use-toast.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD,KAAK,YAAY,GAAG,UAAU,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,WAAW;;;;;CAKP,CAAC;AAQX,KAAK,UAAU,GAAG,OAAO,WAAW,CAAC;AACrC,KAAK,MAAM,GACP;IAAE,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAEvE,UAAU,KAAK;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAaD,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,KAmCtD,CAAC;AAUF,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAEtC,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK;;;oBAET,YAAY;EAiBpC;AAED,iBAAS,QAAQ;;wBAcO,MAAM;YAhGpB,YAAY,EAAE;EAkGvB;AAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
// Adapted from https://github.com/shadcn-ui/ui
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
const TOAST_LIMIT = 5;
|
|
5
|
+
const TOAST_REMOVE_DELAY = 4000;
|
|
6
|
+
const actionTypes = {
|
|
7
|
+
ADD_TOAST: "ADD_TOAST",
|
|
8
|
+
UPDATE_TOAST: "UPDATE_TOAST",
|
|
9
|
+
DISMISS_TOAST: "DISMISS_TOAST",
|
|
10
|
+
REMOVE_TOAST: "REMOVE_TOAST",
|
|
11
|
+
};
|
|
12
|
+
let count = 0;
|
|
13
|
+
function genId() {
|
|
14
|
+
count = (count + 1) % Number.MAX_SAFE_INTEGER;
|
|
15
|
+
return count.toString();
|
|
16
|
+
}
|
|
17
|
+
const toastTimeouts = new Map();
|
|
18
|
+
const addToRemoveQueue = (toastId) => {
|
|
19
|
+
if (toastTimeouts.has(toastId))
|
|
20
|
+
return;
|
|
21
|
+
const timeout = setTimeout(() => {
|
|
22
|
+
toastTimeouts.delete(toastId);
|
|
23
|
+
dispatch({ type: "REMOVE_TOAST", toastId });
|
|
24
|
+
}, TOAST_REMOVE_DELAY);
|
|
25
|
+
toastTimeouts.set(toastId, timeout);
|
|
26
|
+
};
|
|
27
|
+
export const reducer = (state, action) => {
|
|
28
|
+
switch (action.type) {
|
|
29
|
+
case "ADD_TOAST":
|
|
30
|
+
return {
|
|
31
|
+
...state,
|
|
32
|
+
toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),
|
|
33
|
+
};
|
|
34
|
+
case "UPDATE_TOAST":
|
|
35
|
+
return {
|
|
36
|
+
...state,
|
|
37
|
+
toasts: state.toasts.map((t) => t.id === action.toast.id ? { ...t, ...action.toast } : t),
|
|
38
|
+
};
|
|
39
|
+
case "DISMISS_TOAST": {
|
|
40
|
+
const { toastId } = action;
|
|
41
|
+
if (toastId) {
|
|
42
|
+
addToRemoveQueue(toastId);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
state.toasts.forEach((toast) => addToRemoveQueue(toast.id));
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
...state,
|
|
49
|
+
toasts: state.toasts.map((t) => t.id === toastId || toastId === undefined ? { ...t, open: false } : t),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
case "REMOVE_TOAST":
|
|
53
|
+
if (action.toastId === undefined)
|
|
54
|
+
return { ...state, toasts: [] };
|
|
55
|
+
return {
|
|
56
|
+
...state,
|
|
57
|
+
toasts: state.toasts.filter((t) => t.id !== action.toastId),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const listeners = [];
|
|
62
|
+
let memoryState = { toasts: [] };
|
|
63
|
+
function dispatch(action) {
|
|
64
|
+
memoryState = reducer(memoryState, action);
|
|
65
|
+
listeners.forEach((listener) => listener(memoryState));
|
|
66
|
+
}
|
|
67
|
+
function toast({ ...props }) {
|
|
68
|
+
const id = genId();
|
|
69
|
+
const update = (props) => dispatch({ type: "UPDATE_TOAST", toast: { ...props, id } });
|
|
70
|
+
const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
|
|
71
|
+
dispatch({
|
|
72
|
+
type: "ADD_TOAST",
|
|
73
|
+
toast: {
|
|
74
|
+
...props,
|
|
75
|
+
id,
|
|
76
|
+
open: true,
|
|
77
|
+
onOpenChange: (open) => {
|
|
78
|
+
if (!open)
|
|
79
|
+
dismiss();
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
return { id, dismiss, update };
|
|
84
|
+
}
|
|
85
|
+
function useToast() {
|
|
86
|
+
const [state, setState] = React.useState(memoryState);
|
|
87
|
+
React.useEffect(() => {
|
|
88
|
+
listeners.push(setState);
|
|
89
|
+
return () => {
|
|
90
|
+
const index = listeners.indexOf(setState);
|
|
91
|
+
if (index > -1)
|
|
92
|
+
listeners.splice(index, 1);
|
|
93
|
+
};
|
|
94
|
+
}, []);
|
|
95
|
+
return {
|
|
96
|
+
...state,
|
|
97
|
+
toast,
|
|
98
|
+
dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", ...(toastId !== undefined && { toastId }) }),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export { toast, useToast };
|
|
102
|
+
//# sourceMappingURL=use-toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-toast.js","sourceRoot":"","sources":["../../src/hooks/use-toast.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export { Alert } from "./components/alert";
|
|
2
|
+
export type { AlertVariant } from "./components/alert";
|
|
3
|
+
export { Avatar, avatarVariants } from "./components/avatar";
|
|
4
|
+
export type { AvatarProps } from "./components/avatar";
|
|
5
|
+
export { Badge, badgeVariants } from "./components/badge";
|
|
6
|
+
export type { BadgeProps } from "./components/badge";
|
|
7
|
+
export { Button, buttonVariants } from "./components/button";
|
|
8
|
+
export type { ButtonProps } from "./components/button";
|
|
9
|
+
export { Calendar } from "./components/calendar";
|
|
10
|
+
export type { CalendarProps } from "./components/calendar";
|
|
11
|
+
export { Card } from "./components/card";
|
|
12
|
+
export { Carousel } from "./components/carousel";
|
|
13
|
+
export { Checkbox } from "./components/checkbox";
|
|
14
|
+
export { Collapsible } from "./components/collapsible";
|
|
15
|
+
export { Command } from "./components/command";
|
|
16
|
+
export { Dialog } from "./components/dialog";
|
|
17
|
+
export { Drawer } from "./components/drawer";
|
|
18
|
+
export { DropdownMenu } from "./components/dropdown-menu";
|
|
19
|
+
export { Group } from "./components/group";
|
|
20
|
+
export { Input, DateInput } from "./components/input";
|
|
21
|
+
export type { InputProps, DateInputProps } from "./components/input";
|
|
22
|
+
export { Label } from "./components/label";
|
|
23
|
+
export { Modal } from "./components/modal";
|
|
24
|
+
export { Progress } from "./components/progress";
|
|
25
|
+
export { Radio } from "./components/radio";
|
|
26
|
+
export { Select } from "./components/select";
|
|
27
|
+
export type { SelectSearchableOption, SelectSearchableProps } from "./components/select";
|
|
28
|
+
export { Separator } from "./components/separator";
|
|
29
|
+
export { Skeleton } from "./components/skeleton";
|
|
30
|
+
export { Switch } from "./components/switch";
|
|
31
|
+
export type { SwitchProps } from "./components/switch";
|
|
32
|
+
export { Table } from "./components/table";
|
|
33
|
+
export type { ColumnDef } from "./components/table";
|
|
34
|
+
export { Tabs, tabsListVariants, tabsTriggerVariants } from "./components/tabs";
|
|
35
|
+
export { TagInput } from "./components/tag-input";
|
|
36
|
+
export type { TagInputProps } from "./components/tag-input";
|
|
37
|
+
export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, } from "./components/toast";
|
|
38
|
+
export type { ToastProps, ToastActionElement } from "./components/toast";
|
|
39
|
+
export { Toaster } from "./components/toaster";
|
|
40
|
+
export { Textarea } from "./components/textarea";
|
|
41
|
+
export type { TextareaProps } from "./components/textarea";
|
|
42
|
+
export { Tooltip } from "./components/tooltip";
|
|
43
|
+
export { toast, useToast } from "./hooks/use-toast";
|
|
44
|
+
export { useMediaQuery, useIsMobile } from "./hooks/use-media-query";
|
|
45
|
+
export { useCopyToClipboard } from "./hooks/use-copy-to-clipboard";
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* ─── Components ──────────────────────────────────────────────────────────── */
|
|
2
|
+
export { Alert } from "./components/alert";
|
|
3
|
+
export { Avatar, avatarVariants } from "./components/avatar";
|
|
4
|
+
export { Badge, badgeVariants } from "./components/badge";
|
|
5
|
+
export { Button, buttonVariants } from "./components/button";
|
|
6
|
+
export { Calendar } from "./components/calendar";
|
|
7
|
+
export { Card } from "./components/card";
|
|
8
|
+
export { Carousel } from "./components/carousel";
|
|
9
|
+
export { Checkbox } from "./components/checkbox";
|
|
10
|
+
export { Collapsible } from "./components/collapsible";
|
|
11
|
+
export { Command } from "./components/command";
|
|
12
|
+
export { Dialog } from "./components/dialog";
|
|
13
|
+
export { Drawer } from "./components/drawer";
|
|
14
|
+
export { DropdownMenu } from "./components/dropdown-menu";
|
|
15
|
+
export { Group } from "./components/group";
|
|
16
|
+
export { Input, DateInput } from "./components/input";
|
|
17
|
+
export { Label } from "./components/label";
|
|
18
|
+
export { Modal } from "./components/modal";
|
|
19
|
+
export { Progress } from "./components/progress";
|
|
20
|
+
export { Radio } from "./components/radio";
|
|
21
|
+
export { Select } from "./components/select";
|
|
22
|
+
export { Separator } from "./components/separator";
|
|
23
|
+
export { Skeleton } from "./components/skeleton";
|
|
24
|
+
export { Switch } from "./components/switch";
|
|
25
|
+
export { Table } from "./components/table";
|
|
26
|
+
export { Tabs, tabsListVariants, tabsTriggerVariants } from "./components/tabs";
|
|
27
|
+
export { TagInput } from "./components/tag-input";
|
|
28
|
+
export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, } from "./components/toast";
|
|
29
|
+
export { Toaster } from "./components/toaster";
|
|
30
|
+
export { Textarea } from "./components/textarea";
|
|
31
|
+
export { Tooltip } from "./components/tooltip";
|
|
32
|
+
/* ─── Hooks ───────────────────────────────────────────────────────────────── */
|
|
33
|
+
export { toast, useToast } from "./hooks/use-toast";
|
|
34
|
+
export { useMediaQuery, useIsMobile } from "./hooks/use-media-query";
|
|
35
|
+
export { useCopyToClipboard } from "./hooks/use-copy-to-clipboard";
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,OAAO,EACN,KAAK,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,aAAa,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@almach/ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Modern, accessible UI components built on Radix UI and Tailwind CSS",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./styles": "./src/styles/globals.css"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"src/styles"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc -p tsconfig.build.json",
|
|
22
|
+
"dev": "tsc -p tsconfig.build.json --watch",
|
|
23
|
+
"typecheck": "tsc --noEmit",
|
|
24
|
+
"clean": "rm -rf dist *.tsbuildinfo"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
28
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@almach/utils": "workspace:*",
|
|
32
|
+
"@radix-ui/react-accordion": "^1.2.3",
|
|
33
|
+
"@radix-ui/react-alert-dialog": "^1.1.6",
|
|
34
|
+
"@radix-ui/react-avatar": "^1.1.3",
|
|
35
|
+
"@radix-ui/react-checkbox": "^1.1.4",
|
|
36
|
+
"@radix-ui/react-collapsible": "^1.1.12",
|
|
37
|
+
"@radix-ui/react-dialog": "^1.1.6",
|
|
38
|
+
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
|
39
|
+
"@radix-ui/react-label": "^2.1.2",
|
|
40
|
+
"@radix-ui/react-popover": "^1.1.6",
|
|
41
|
+
"@radix-ui/react-progress": "^1.1.2",
|
|
42
|
+
"@radix-ui/react-radio-group": "^1.2.3",
|
|
43
|
+
"@radix-ui/react-scroll-area": "^1.2.3",
|
|
44
|
+
"@radix-ui/react-select": "^2.1.6",
|
|
45
|
+
"@radix-ui/react-separator": "^1.1.2",
|
|
46
|
+
"@radix-ui/react-slot": "^1.2.0",
|
|
47
|
+
"@radix-ui/react-switch": "^1.1.3",
|
|
48
|
+
"@radix-ui/react-tabs": "^1.1.3",
|
|
49
|
+
"@radix-ui/react-toast": "^1.2.6",
|
|
50
|
+
"@radix-ui/react-tooltip": "^1.1.8",
|
|
51
|
+
"@tanstack/react-table": "^8.21.3",
|
|
52
|
+
"class-variance-authority": "^0.7.1",
|
|
53
|
+
"cmdk": "^1.1.1",
|
|
54
|
+
"date-fns": "^4.1.0",
|
|
55
|
+
"embla-carousel-autoplay": "^8.6.0",
|
|
56
|
+
"embla-carousel-react": "^8.6.0",
|
|
57
|
+
"lucide-react": "^0.479.0",
|
|
58
|
+
"react-day-picker": "^9.14.0",
|
|
59
|
+
"vaul": "^1.1.2"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/react": "^19.0.7",
|
|
63
|
+
"@types/react-dom": "^19.0.3",
|
|
64
|
+
"typescript": "^5.7.3"
|
|
65
|
+
},
|
|
66
|
+
"publishConfig": {
|
|
67
|
+
"access": "public"
|
|
68
|
+
},
|
|
69
|
+
"repository": {
|
|
70
|
+
"type": "git",
|
|
71
|
+
"url": "https://github.com/almach-lab/base",
|
|
72
|
+
"directory": "packages/ui"
|
|
73
|
+
}
|
|
74
|
+
}
|