@mehdashti/ui 0.6.0 → 0.9.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.
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Accordion Component
3
+ *
4
+ * Expandable/collapsible content sections.
5
+ */
6
+ import * as React from "react";
7
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
8
+ declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
9
+ declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
11
+ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
13
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAIhE,QAAA,MAAM,SAAS,8JAA0B,CAAC;AAE1C,QAAA,MAAM,aAAa,iKASjB,CAAC;AAGH,QAAA,MAAM,gBAAgB,0KAiBpB,CAAC;AAGH,QAAA,MAAM,gBAAgB,oKAWpB,CAAC;AAGH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Accordion Component
4
+ *
5
+ * Expandable/collapsible content sections.
6
+ */
7
+ import * as React from "react";
8
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
9
+ import { ChevronDown } from "lucide-react";
10
+ import { cn } from "../lib/utils.js";
11
+ const Accordion = AccordionPrimitive.Root;
12
+ const AccordionItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(AccordionPrimitive.Item, { ref: ref, className: cn("border-b", className), ...props })));
13
+ AccordionItem.displayName = "AccordionItem";
14
+ const AccordionTrigger = React.forwardRef(({ className, children, ...props }, ref) => (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { ref: ref, className: cn("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180", className), ...props, children: [children, _jsx(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })] }) })));
15
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
16
+ const AccordionContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsx(AccordionPrimitive.Content, { ref: ref, className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down", ...props, children: _jsx("div", { className: cn("pb-4 pt-0", className), children: children }) })));
17
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
18
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
19
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC;AAE1C,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,kBAAkB,CAAC,IAAI,IACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAChC,KAAK,GACT,CACH,CAAC,CAAC;AACH,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAE5C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,KAAC,kBAAkB,CAAC,MAAM,IAAC,SAAS,EAAC,MAAM,YACzC,MAAC,kBAAkB,CAAC,OAAO,IACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,8HAA8H,EAC9H,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,WAAW,IAAC,SAAS,EAAC,oDAAoD,GAAG,IACnD,GACH,CAC7B,CAAC,CAAC;AACH,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC;AAEtE,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,KAAC,kBAAkB,CAAC,OAAO,IACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,0HAA0H,KAChI,KAAK,YAET,cAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,GACjC,CAC9B,CAAC,CAAC;AACH,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | "info" | null | undefined;
4
+ variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Box Component
3
+ *
4
+ * Primitive layout component with common layout props.
5
+ */
6
+ import * as React from "react";
7
+ import { type VariantProps } from "class-variance-authority";
8
+ declare const boxVariants: (props?: ({
9
+ display?: "grid" | "none" | "inline" | "flex" | "block" | "inline-block" | "inline-flex" | "inline-grid" | null | undefined;
10
+ position?: "fixed" | "sticky" | "relative" | "static" | "absolute" | null | undefined;
11
+ overflow?: "hidden" | "scroll" | "auto" | "visible" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ export interface BoxProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof boxVariants> {
14
+ /**
15
+ * HTML element to render
16
+ */
17
+ as?: React.ElementType;
18
+ }
19
+ export declare const Box: React.ForwardRefExoticComponent<BoxProps & React.RefAttributes<HTMLDivElement>>;
20
+ export {};
21
+ //# sourceMappingURL=box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../src/components/box.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,WAAW;;;;8EA6Bf,CAAC;AAEH,MAAM,WAAW,QACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,WAAW,CAAC;IAClC;;OAEG;IACH,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACxB;AAED,eAAO,MAAM,GAAG,iFAgBf,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Box Component
4
+ *
5
+ * Primitive layout component with common layout props.
6
+ */
7
+ import * as React from "react";
8
+ import { cva } from "class-variance-authority";
9
+ import { cn } from "../lib/utils.js";
10
+ const boxVariants = cva("", {
11
+ variants: {
12
+ display: {
13
+ block: "block",
14
+ inline: "inline",
15
+ "inline-block": "inline-block",
16
+ flex: "flex",
17
+ "inline-flex": "inline-flex",
18
+ grid: "grid",
19
+ "inline-grid": "inline-grid",
20
+ none: "hidden",
21
+ },
22
+ position: {
23
+ static: "static",
24
+ relative: "relative",
25
+ absolute: "absolute",
26
+ fixed: "fixed",
27
+ sticky: "sticky",
28
+ },
29
+ overflow: {
30
+ auto: "overflow-auto",
31
+ hidden: "overflow-hidden",
32
+ visible: "overflow-visible",
33
+ scroll: "overflow-scroll",
34
+ },
35
+ },
36
+ defaultVariants: {
37
+ display: "block",
38
+ },
39
+ });
40
+ export const Box = React.forwardRef(({ className, display, position, overflow, as: Component = "div", ...props }, ref) => {
41
+ return (_jsx(Component, { ref: ref, className: cn(boxVariants({ display, position, overflow }), className), ...props }));
42
+ });
43
+ Box.displayName = "Box";
44
+ //# sourceMappingURL=box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/components/box.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,EAAE;IAC1B,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,cAAc;YAC9B,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,aAAa;YAC5B,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,aAAa;YAC5B,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;SACjB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,kBAAkB;YAC3B,MAAM,EAAE,iBAAiB;SAC1B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,OAAO;KACjB;CACF,CAAC,CAAC;AAWH,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CACjC,CACE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAC3E,GAAG,EACH,EAAE;IACF,OAAO,CACL,KAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAC5C,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC"}
@@ -1,14 +1,18 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
- size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
4
+ variant?: "default" | "secondary" | "link" | "destructive" | "outline" | "ghost" | null | undefined;
5
+ size?: "sm" | "lg" | "default" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
8
  /**
9
9
  * Render as a child component (for composition with links, etc.)
10
10
  */
11
11
  asChild?: boolean;
12
+ /**
13
+ * Show loading spinner and disable button
14
+ */
15
+ loading?: boolean;
12
16
  }
13
17
  /**
14
18
  * Button component with multiple variants and sizes
@@ -20,7 +24,7 @@ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElemen
20
24
  * </Button>
21
25
  * ```
22
26
  */
23
- declare function Button({ className, variant, size, asChild, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
27
+ declare function Button({ className, variant, size, asChild, loading, disabled, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
24
28
  declare namespace Button {
25
29
  var displayName: string;
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EA8BnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,OAAe,EACf,GAAG,KAAK,EACT,EAAE,WAAW,2CAYb;kBAlBQ,MAAM;;;AAsBf,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,QAAA,MAAM,cAAc;;;8EA8BnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,OAAe,EACf,OAAe,EACf,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CAoBb;kBA7BQ,MAAM;;;AAiCf,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Slot } from "@radix-ui/react-slot";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { cn } from "../lib/utils.js";
5
+ import { Spinner } from "./spinner.js";
5
6
  const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive [border-radius:var(--radius-md)]", {
6
7
  variants: {
7
8
  variant: {
@@ -36,9 +37,11 @@ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whites
36
37
  * </Button>
37
38
  * ```
38
39
  */
39
- function Button({ className, variant = "default", size = "default", asChild = false, ...props }) {
40
+ function Button({ className, variant = "default", size = "default", asChild = false, loading = false, disabled, children, ...props }) {
40
41
  const Comp = asChild ? Slot : "button";
41
- return (_jsx(Comp, { "data-slot": "button", "data-variant": variant, "data-size": size, className: cn(buttonVariants({ variant, size, className })), ...props }));
42
+ // Determine spinner size based on button size
43
+ const spinnerSize = size === "sm" || size === "icon-sm" ? "xs" : size === "lg" || size === "icon-lg" ? "sm" : "xs";
44
+ return (_jsxs(Comp, { "data-slot": "button", "data-variant": variant, "data-size": size, className: cn(buttonVariants({ variant, size, className })), disabled: disabled || loading, "aria-busy": loading, ...props, children: [loading && _jsx(Spinner, { size: spinnerSize, variant: "white" }), children] }));
42
45
  }
43
46
  Button.displayName = "Button";
44
47
  export { Button, buttonVariants };
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,cAAc,GAAG,GAAG,CACxB,mdAAmd,EACnd;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,wDAAwD;YACjE,WAAW,EACT,mJAAmJ;YACrJ,OAAO,EACL,qJAAqJ;YACvJ,SAAS,EACP,8DAA8D;YAChE,KAAK,EACH,sEAAsE;YACxE,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,+BAA+B;YACxC,EAAE,EAAE,oCAAoC;YACxC,EAAE,EAAE,2BAA2B;YAC/B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,SAAS;SACrB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAC;AAWF;;;;;;;;;GASG;AACH,SAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EACI;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvC,OAAO,CACL,KAAC,IAAI,iBACO,QAAQ,kBACJ,OAAO,eACV,IAAI,EACf,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KACvD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,cAAc,GAAG,GAAG,CACxB,mdAAmd,EACnd;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,wDAAwD;YACjE,WAAW,EACT,mJAAmJ;YACrJ,OAAO,EACL,qJAAqJ;YACvJ,SAAS,EACP,8DAA8D;YAChE,KAAK,EACH,sEAAsE;YACxE,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,+BAA+B;YACxC,EAAE,EAAE,oCAAoC;YACxC,EAAE,EAAE,2BAA2B;YAC/B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,SAAS;SACrB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAC;AAgBF;;;;;;;;;GASG;AACH,SAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACI;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvC,8CAA8C;IAC9C,MAAM,WAAW,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnH,OAAO,CACL,MAAC,IAAI,iBACO,QAAQ,kBACJ,OAAO,eACV,IAAI,EACf,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,QAAQ,EAAE,QAAQ,IAAI,OAAO,eAClB,OAAO,KACd,KAAK,aAER,OAAO,IAAI,KAAC,OAAO,IAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAC,OAAO,GAAG,EACzD,QAAQ,IACJ,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -20,7 +20,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
20
20
  ref?: React.Ref<HTMLInputElement>;
21
21
  } & {
22
22
  asChild?: boolean;
23
- }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "type" | "value" | "onChange"> & {
23
+ }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "type" | "value"> & {
24
24
  value?: string;
25
25
  onValueChange?: (search: string) => void;
26
26
  } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -46,7 +46,7 @@ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
46
46
  ref?: React.Ref<HTMLDivElement>;
47
47
  } & {
48
48
  asChild?: boolean;
49
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
49
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "heading" | "value"> & {
50
50
  heading?: React.ReactNode;
51
51
  value?: string;
52
52
  forceMount?: boolean;
@@ -64,7 +64,7 @@ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
64
64
  ref?: React.Ref<HTMLDivElement>;
65
65
  } & {
66
66
  asChild?: boolean;
67
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
67
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "onSelect" | "disabled" | "value"> & {
68
68
  disabled?: boolean;
69
69
  onSelect?: (value: string) => void;
70
70
  value?: string;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * FormField Component
3
+ *
4
+ * Wrapper for form inputs with label, error, and helper text support.
5
+ */
6
+ import * as React from "react";
7
+ export interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {
8
+ /**
9
+ * Field label
10
+ */
11
+ label?: string;
12
+ /**
13
+ * Helper text shown below the input
14
+ */
15
+ helperText?: string;
16
+ /**
17
+ * Error message
18
+ */
19
+ error?: string;
20
+ /**
21
+ * Whether the field is required
22
+ */
23
+ required?: boolean;
24
+ /**
25
+ * Input element ID (for label htmlFor)
26
+ */
27
+ htmlFor?: string;
28
+ /**
29
+ * Whether the field is disabled
30
+ */
31
+ disabled?: boolean;
32
+ }
33
+ export declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
34
+ //# sourceMappingURL=form-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../src/components/form-field.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC1E;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,uFAsErB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * FormField Component
4
+ *
5
+ * Wrapper for form inputs with label, error, and helper text support.
6
+ */
7
+ import * as React from "react";
8
+ import { cn } from "../lib/utils.js";
9
+ import { Label } from "./label.js";
10
+ export const FormField = React.forwardRef(({ className, children, label, helperText, error, required, htmlFor, disabled, ...props }, ref) => {
11
+ const errorId = error ? `${htmlFor}-error` : undefined;
12
+ const helperId = helperText ? `${htmlFor}-helper` : undefined;
13
+ // Clone children to add aria attributes
14
+ const enhancedChildren = React.Children.map(children, (child) => {
15
+ if (React.isValidElement(child)) {
16
+ return React.cloneElement(child, {
17
+ "aria-invalid": error ? true : undefined,
18
+ "aria-describedby": cn(errorId, helperId),
19
+ disabled: disabled,
20
+ });
21
+ }
22
+ return child;
23
+ });
24
+ return (_jsxs("div", { ref: ref, className: cn("space-y-2", className), ...props, children: [label && (_jsxs(Label, { htmlFor: htmlFor, className: cn(disabled && "opacity-50"), children: [label, required && (_jsx("span", { className: "text-destructive ml-1", "aria-label": "required", children: "*" }))] })), enhancedChildren, helperText && !error && (_jsx("p", { id: helperId, className: cn("text-sm text-muted-foreground", disabled && "opacity-50"), children: helperText })), error && (_jsx("p", { id: errorId, className: "text-sm text-destructive", role: "alert", "aria-live": "polite", children: error }))] }));
25
+ });
26
+ FormField.displayName = "FormField";
27
+ //# sourceMappingURL=form-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field.js","sourceRoot":"","sources":["../../src/components/form-field.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAkCnC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CACvC,CACE,EACE,SAAS,EACT,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9D,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QAC9D,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAgC,EAAE;gBAC1D,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACxC,kBAAkB,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACzC,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,KAAM,KAAK,aAC5D,KAAK,IAAI,CACR,MAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,IAAI,YAAY,CAAC,aAC7D,KAAK,EACL,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,uBAAuB,gBAAY,UAAU,kBAEtD,CACR,IACK,CACT,EAEA,gBAAgB,EAEhB,UAAU,IAAI,CAAC,KAAK,IAAI,CACvB,YACE,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,EAAE,CACX,+BAA+B,EAC/B,QAAQ,IAAI,YAAY,CACzB,YAEA,UAAU,GACT,CACL,EAEA,KAAK,IAAI,CACR,YACE,EAAE,EAAE,OAAO,EACX,SAAS,EAAC,0BAA0B,EACpC,IAAI,EAAC,OAAO,eACF,QAAQ,YAEjB,KAAK,GACJ,CACL,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Sheet Component
3
+ *
4
+ * Slide-in panel from screen edges (drawer).
5
+ */
6
+ import * as React from "react";
7
+ import * as SheetPrimitive from "@radix-ui/react-dialog";
8
+ import { type VariantProps } from "class-variance-authority";
9
+ declare const Sheet: React.FC<SheetPrimitive.DialogProps>;
10
+ declare const SheetTrigger: React.ForwardRefExoticComponent<SheetPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
11
+ declare const SheetClose: React.ForwardRefExoticComponent<SheetPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
12
+ declare const SheetPortal: React.FC<SheetPrimitive.DialogPortalProps>;
13
+ declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ declare const sheetVariants: (props?: ({
15
+ side?: "top" | "right" | "bottom" | "left" | null | undefined;
16
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
17
+ interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
18
+ }
19
+ declare const SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>;
20
+ declare const SheetHeader: {
21
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
22
+ displayName: string;
23
+ };
24
+ declare const SheetFooter: {
25
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ declare const SheetTitle: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
29
+ declare const SheetDescription: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
30
+ export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };
31
+ //# sourceMappingURL=sheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,KAAK,sCAAsB,CAAC;AAElC,QAAA,MAAM,YAAY,6GAAyB,CAAC;AAE5C,QAAA,MAAM,UAAU,2GAAuB,CAAC;AAExC,QAAA,MAAM,WAAW,4CAAwB,CAAC;AAE1C,QAAA,MAAM,YAAY,6JAYhB,CAAC;AAGH,QAAA,MAAM,aAAa;;8EAiBlB,CAAC;AAEF,UAAU,iBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,EACnE,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,QAAA,MAAM,YAAY,0FAkBhB,CAAC;AAGH,QAAA,MAAM,WAAW;8BAGd,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAC;AAGF,QAAA,MAAM,WAAW;8BAGd,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAC;AAGF,QAAA,MAAM,UAAU,mKASd,CAAC;AAGH,QAAA,MAAM,gBAAgB,6KASpB,CAAC;AAGH,OAAO,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Sheet Component
4
+ *
5
+ * Slide-in panel from screen edges (drawer).
6
+ */
7
+ import * as React from "react";
8
+ import * as SheetPrimitive from "@radix-ui/react-dialog";
9
+ import { cva } from "class-variance-authority";
10
+ import { X } from "lucide-react";
11
+ import { cn } from "../lib/utils.js";
12
+ const Sheet = SheetPrimitive.Root;
13
+ const SheetTrigger = SheetPrimitive.Trigger;
14
+ const SheetClose = SheetPrimitive.Close;
15
+ const SheetPortal = SheetPrimitive.Portal;
16
+ const SheetOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Overlay, { className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className), ...props, ref: ref })));
17
+ SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
18
+ const sheetVariants = cva("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500", {
19
+ variants: {
20
+ side: {
21
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
22
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
23
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
24
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
25
+ },
26
+ },
27
+ defaultVariants: {
28
+ side: "right",
29
+ },
30
+ });
31
+ const SheetContent = React.forwardRef(({ side = "right", className, children, ...props }, ref) => (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Content, { ref: ref, className: cn(sheetVariants({ side }), className), ...props, children: [children, _jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [_jsx(X, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
32
+ SheetContent.displayName = SheetPrimitive.Content.displayName;
33
+ const SheetHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props }));
34
+ SheetHeader.displayName = "SheetHeader";
35
+ const SheetFooter = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props }));
36
+ SheetFooter.displayName = "SheetFooter";
37
+ const SheetTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Title, { ref: ref, className: cn("text-lg font-semibold text-foreground", className), ...props })));
38
+ SheetTitle.displayName = SheetPrimitive.Title.displayName;
39
+ const SheetDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Description, { ref: ref, className: cn("text-sm text-muted-foreground", className), ...props })));
40
+ SheetDescription.displayName = SheetPrimitive.Description.displayName;
41
+ export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };
42
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC;AAElC,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC;AAE5C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC;AAExC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC;AAE1C,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,cAAc,CAAC,OAAO,IACrB,SAAS,EAAE,EAAE,CACX,wJAAwJ,EACxJ,SAAS,CACV,KACG,KAAK,EACT,GAAG,EAAE,GAAG,GACR,CACH,CAAC,CAAC;AACH,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC;AAE9D,MAAM,aAAa,GAAG,GAAG,CACvB,kMAAkM,EAClM;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,GAAG,EAAE,mGAAmG;YACxG,MAAM,EACJ,4GAA4G;YAC9G,IAAI,EAAE,+HAA+H;YACrI,KAAK,EACH,kIAAkI;SACrI;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,OAAO;KACd;CACF,CACF,CAAC;AAMF,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5D,MAAC,WAAW,eACV,KAAC,YAAY,KAAG,EAChB,MAAC,cAAc,CAAC,OAAO,IACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAC7C,KAAK,aAER,QAAQ,EACT,MAAC,cAAc,CAAC,KAAK,IAAC,SAAS,EAAC,0OAA0O,aACxQ,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,EACzB,eAAM,SAAS,EAAC,SAAS,sBAAa,IACjB,IACA,IACb,CACf,CAAC,CAAC;AACH,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC;AAE9D,MAAM,WAAW,GAAG,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EAC6B,EAAE,EAAE,CAAC,CAC1C,cACE,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,WAAW,GAAG,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EAC6B,EAAE,EAAE,CAAC,CAC1C,cACE,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,cAAc,CAAC,KAAK,IACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,uCAAuC,EAAE,SAAS,CAAC,KAC7D,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC;AAE1D,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,cAAc,CAAC,WAAW,IACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,gBAAgB,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC;AAEtE,OAAO,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Spinner Component
3
+ *
4
+ * Loading spinner with multiple sizes and variants.
5
+ */
6
+ import * as React from "react";
7
+ import { type VariantProps } from "class-variance-authority";
8
+ declare const spinnerVariants: (props?: ({
9
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
10
+ variant?: "default" | "secondary" | "muted" | "white" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ export interface SpinnerProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof spinnerVariants> {
13
+ /**
14
+ * Label for screen readers
15
+ */
16
+ label?: string;
17
+ }
18
+ export declare const Spinner: React.ForwardRefExoticComponent<SpinnerProps & React.RefAttributes<HTMLDivElement>>;
19
+ export {};
20
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,eAAe;;;8EAuBpB,CAAC;AAEF,MAAM,WAAW,YACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,eAAe,CAAC;IACtC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,qFAenB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Spinner Component
4
+ *
5
+ * Loading spinner with multiple sizes and variants.
6
+ */
7
+ import * as React from "react";
8
+ import { cva } from "class-variance-authority";
9
+ import { cn } from "../lib/utils.js";
10
+ const spinnerVariants = cva("inline-block animate-spin rounded-full border-solid border-current border-r-transparent motion-reduce:animate-[spin_1.5s_linear_infinite]", {
11
+ variants: {
12
+ size: {
13
+ xs: "h-3 w-3 border-2",
14
+ sm: "h-4 w-4 border-2",
15
+ md: "h-6 w-6 border-2",
16
+ lg: "h-8 w-8 border-[3px]",
17
+ xl: "h-12 w-12 border-4",
18
+ },
19
+ variant: {
20
+ default: "text-primary",
21
+ secondary: "text-secondary",
22
+ muted: "text-muted-foreground",
23
+ white: "text-white",
24
+ },
25
+ },
26
+ defaultVariants: {
27
+ size: "md",
28
+ variant: "default",
29
+ },
30
+ });
31
+ export const Spinner = React.forwardRef(({ className, size, variant, label = "Loading", ...props }, ref) => {
32
+ return (_jsx("div", { ref: ref, role: "status", "aria-live": "polite", "aria-label": label, className: cn(spinnerVariants({ size, variant }), className), ...props, children: _jsx("span", { className: "sr-only", children: label }) }));
33
+ });
34
+ Spinner.displayName = "Spinner";
35
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,eAAe,GAAG,GAAG,CACzB,2IAA2I,EAC3I;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,kBAAkB;YACtB,EAAE,EAAE,kBAAkB;YACtB,EAAE,EAAE,kBAAkB;YACtB,EAAE,EAAE,sBAAsB;YAC1B,EAAE,EAAE,oBAAoB;SACzB;QACD,OAAO,EAAE;YACP,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,uBAAuB;YAC9B,KAAK,EAAE,YAAY;SACpB;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAC;AAWF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CACrC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACjE,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,eACH,QAAQ,gBACN,KAAK,EACjB,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KACxD,KAAK,YAET,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,GACpC,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC"}
@@ -1,8 +1,97 @@
1
1
  import * as React from "react";
2
2
  import * as TabsPrimitive from "@radix-ui/react-tabs";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const tabsListVariants: (props?: ({
5
+ variant?: "default" | "pills" | "underline" | "enclosed" | null | undefined;
6
+ density?: "inherit" | "cozy" | "compact" | null | undefined;
7
+ fullWidth?: boolean | null | undefined;
8
+ overflow?: "wrap" | "scroll" | "dropdown" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ declare const tabsTriggerVariants: (props?: ({
11
+ variant?: "default" | "pills" | "underline" | "enclosed" | null | undefined;
12
+ semantic?: "destructive" | "neutral" | "success" | "warning" | "info" | null | undefined;
13
+ density?: "inherit" | "cozy" | "compact" | null | undefined;
14
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
3
15
  declare const Tabs: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
4
- declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
- declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
16
+ interface TabsListProps extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>, VariantProps<typeof tabsListVariants> {
17
+ }
18
+ declare const TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<HTMLDivElement>>;
19
+ interface TabsTriggerProps extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>, VariantProps<typeof tabsTriggerVariants> {
20
+ /**
21
+ * Icon to display before, after, or above the label
22
+ */
23
+ icon?: React.ReactNode;
24
+ /**
25
+ * Position of the icon
26
+ */
27
+ iconPosition?: "left" | "right" | "top";
28
+ /**
29
+ * Counter to display next to the label
30
+ */
31
+ counter?: number | string;
32
+ /**
33
+ * Badge to display next to the label
34
+ */
35
+ badge?: React.ReactNode;
36
+ }
37
+ declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
38
  declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
- export { Tabs, TabsList, TabsTrigger, TabsContent };
39
+ /**
40
+ * Tab item for declarative API
41
+ */
42
+ interface TabItem {
43
+ value: string;
44
+ label: string;
45
+ icon?: React.ReactNode;
46
+ iconPosition?: "left" | "right" | "top";
47
+ counter?: number | string;
48
+ badge?: React.ReactNode;
49
+ semantic?: "neutral" | "success" | "warning" | "destructive" | "info";
50
+ disabled?: boolean;
51
+ content?: React.ReactNode;
52
+ }
53
+ /**
54
+ * Props for the enhanced tabs component with declarative API
55
+ */
56
+ interface EnhancedTabsProps extends Omit<React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>, "children">, VariantProps<typeof tabsListVariants>, Pick<VariantProps<typeof tabsTriggerVariants>, "semantic"> {
57
+ /**
58
+ * Array of tab items (declarative API)
59
+ */
60
+ items: TabItem[];
61
+ /**
62
+ * Optional children (composition API - overrides items)
63
+ */
64
+ children?: React.ReactNode;
65
+ /**
66
+ * Class name for the tabs list
67
+ */
68
+ listClassName?: string;
69
+ /**
70
+ * Class name for the tabs content
71
+ */
72
+ contentClassName?: string;
73
+ /**
74
+ * Maximum number of visible tabs before showing overflow dropdown
75
+ */
76
+ maxVisibleTabs?: number;
77
+ }
78
+ /**
79
+ * Enhanced tabs component with declarative API
80
+ *
81
+ * @example
82
+ * ```tsx
83
+ * <EnhancedTabs
84
+ * value={activeTab}
85
+ * onValueChange={setActiveTab}
86
+ * variant="pills"
87
+ * items={[
88
+ * { value: "all", label: "All", counter: 245 },
89
+ * { value: "active", label: "Active", counter: 12, semantic: "success" },
90
+ * ]}
91
+ * />
92
+ * ```
93
+ */
94
+ declare const EnhancedTabs: React.ForwardRefExoticComponent<EnhancedTabsProps & React.RefAttributes<HTMLDivElement>>;
95
+ export { Tabs, TabsList, TabsTrigger, TabsContent, EnhancedTabs };
96
+ export type { TabsListProps, TabsTriggerProps, TabItem, EnhancedTabsProps };
8
97
  //# sourceMappingURL=tabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAItD,QAAA,MAAM,IAAI,gGAAqB,CAAC;AAEhC,QAAA,MAAM,QAAQ,uJAaZ,CAAC;AAGH,QAAA,MAAM,WAAW,gKAcf,CAAC;AAGH,QAAA,MAAM,WAAW,0JAaf,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASlE,QAAA,MAAM,gBAAgB;;;;;8EAgCrB,CAAC;AAMF,QAAA,MAAM,mBAAmB;;;;8EAmDxB,CAAC;AAMF,QAAA,MAAM,IAAI,gGAAqB,CAAC;AAEhC,UAAU,aACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,EAC/D,YAAY,CAAC,OAAO,gBAAgB,CAAC;CAAG;AAE5C,QAAA,MAAM,QAAQ,sFAUZ,CAAC;AAGH,UAAU,gBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,EAClE,YAAY,CAAC,OAAO,mBAAmB,CAAC;IAC1C;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,QAAA,MAAM,WAAW,4FAoEhB,CAAC;AAGF,QAAA,MAAM,WAAW,0JAaf,CAAC;AAOH;;GAEG;AACH,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,iBACR,SAAQ,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,EACjF,YAAY,CAAC,OAAO,gBAAgB,CAAC,EACrC,IAAI,CAAC,YAAY,CAAC,OAAO,mBAAmB,CAAC,EAAE,UAAU,CAAC;IAC5D;;OAEG;IACH,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,YAAY,0FA2FjB,CAAC;AA0EF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,13 +1,152 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as TabsPrimitive from "@radix-ui/react-tabs";
4
+ import { cva } from "class-variance-authority";
5
+ import { ChevronDown } from "lucide-react";
4
6
  import { cn } from "../lib/utils.js";
7
+ // =============================================================================
8
+ // Tabs List Variants
9
+ // =============================================================================
10
+ const tabsListVariants = cva("inline-flex items-center transition-all", {
11
+ variants: {
12
+ variant: {
13
+ default: "bg-muted p-1 text-muted-foreground [border-radius:var(--radius-lg)]",
14
+ pills: "gap-2 bg-transparent",
15
+ underline: "border-b border-border gap-1",
16
+ enclosed: "border border-border rounded-lg bg-background p-1",
17
+ },
18
+ density: {
19
+ cozy: "h-11",
20
+ compact: "h-9",
21
+ inherit: "", // Uses CSS variable
22
+ },
23
+ fullWidth: {
24
+ true: "w-full",
25
+ false: "w-fit",
26
+ },
27
+ overflow: {
28
+ scroll: "overflow-x-auto scrollbar-thin",
29
+ wrap: "flex-wrap",
30
+ dropdown: "", // Handled separately with custom component
31
+ },
32
+ },
33
+ defaultVariants: {
34
+ variant: "default",
35
+ density: "inherit",
36
+ fullWidth: false,
37
+ overflow: undefined,
38
+ },
39
+ });
40
+ // =============================================================================
41
+ // Tabs Trigger Variants
42
+ // =============================================================================
43
+ const tabsTriggerVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", {
44
+ variants: {
45
+ variant: {
46
+ default: "px-3 py-1.5 text-sm [border-radius:var(--radius-md)] data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-xs",
47
+ pills: "px-4 py-2 text-sm rounded-full data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
48
+ underline: "px-3 py-2 text-sm border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:text-foreground",
49
+ enclosed: "px-3 py-1.5 text-sm [border-radius:var(--radius-md)] data-[state=active]:bg-primary/10 data-[state=active]:text-primary data-[state=active]:font-semibold",
50
+ },
51
+ semantic: {
52
+ neutral: "", // default colors
53
+ success: "data-[state=active]:text-green-700 data-[state=active]:bg-green-50 dark:data-[state=active]:text-green-400 dark:data-[state=active]:bg-green-950",
54
+ warning: "data-[state=active]:text-orange-700 data-[state=active]:bg-orange-50 dark:data-[state=active]:text-orange-400 dark:data-[state=active]:bg-orange-950",
55
+ destructive: "data-[state=active]:text-destructive data-[state=active]:bg-destructive/10",
56
+ info: "data-[state=active]:text-blue-700 data-[state=active]:bg-blue-50 dark:data-[state=active]:text-blue-400 dark:data-[state=active]:bg-blue-950",
57
+ },
58
+ density: {
59
+ cozy: "min-h-[44px]", // Touch-friendly
60
+ compact: "min-h-[32px]",
61
+ inherit: "",
62
+ },
63
+ },
64
+ compoundVariants: [
65
+ {
66
+ variant: "pills",
67
+ semantic: "success",
68
+ className: "data-[state=active]:bg-green-600 data-[state=active]:text-white dark:data-[state=active]:bg-green-600",
69
+ },
70
+ {
71
+ variant: "pills",
72
+ semantic: "warning",
73
+ className: "data-[state=active]:bg-orange-600 data-[state=active]:text-white dark:data-[state=active]:bg-orange-600",
74
+ },
75
+ {
76
+ variant: "pills",
77
+ semantic: "destructive",
78
+ className: "data-[state=active]:bg-destructive data-[state=active]:text-destructive-foreground",
79
+ },
80
+ {
81
+ variant: "pills",
82
+ semantic: "info",
83
+ className: "data-[state=active]:bg-blue-600 data-[state=active]:text-white dark:data-[state=active]:bg-blue-600",
84
+ },
85
+ ],
86
+ defaultVariants: {
87
+ variant: "default",
88
+ semantic: "neutral",
89
+ density: "inherit",
90
+ },
91
+ });
92
+ // =============================================================================
93
+ // Base Components
94
+ // =============================================================================
5
95
  const Tabs = TabsPrimitive.Root;
6
- const TabsList = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, "data-slot": "tabs-list", className: cn("inline-flex h-9 items-center justify-center bg-muted p-1 text-muted-foreground [border-radius:var(--radius-lg)]", className), ...props })));
96
+ const TabsList = React.forwardRef(({ className, variant, density, fullWidth, overflow, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, "data-slot": "tabs-list", className: cn(tabsListVariants({ variant, density, fullWidth, overflow }), className), ...props })));
7
97
  TabsList.displayName = TabsPrimitive.List.displayName;
8
- const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Trigger, { ref: ref, "data-slot": "tabs-trigger", className: cn("inline-flex items-center justify-center whitespace-nowrap px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [border-radius:var(--radius-md)]", "data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-xs", className), ...props })));
98
+ const TabsTrigger = React.forwardRef(({ className, variant, semantic, density, icon, iconPosition = "left", counter, badge, children, ...props }, ref) => {
99
+ if (iconPosition === "top") {
100
+ return (_jsxs(TabsPrimitive.Trigger, { ref: ref, "data-slot": "tabs-trigger", className: cn(tabsTriggerVariants({ variant, semantic, density }), "flex-col gap-1", className), ...props, children: [icon && _jsx("span", { className: "shrink-0 [&>svg]:size-5", children: icon }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx("span", { children: children }), counter !== undefined && (_jsx("span", { className: "ml-1 rounded-full bg-muted px-1.5 py-0.5 text-xs font-normal text-muted-foreground data-[state=active]:bg-background/50", children: counter })), badge && _jsx("span", { className: "ml-1", children: badge })] })] }));
101
+ }
102
+ return (_jsxs(TabsPrimitive.Trigger, { ref: ref, "data-slot": "tabs-trigger", className: cn(tabsTriggerVariants({ variant, semantic, density }), className), ...props, children: [icon && iconPosition === "left" && (_jsx("span", { className: "shrink-0 [&>svg]:size-4", children: icon })), _jsx("span", { children: children }), counter !== undefined && (_jsx("span", { className: "ml-1 rounded-full bg-muted px-1.5 py-0.5 text-xs font-normal text-muted-foreground data-[state=active]:bg-background/50", children: counter })), badge && _jsx("span", { className: "ml-1", children: badge }), icon && iconPosition === "right" && (_jsx("span", { className: "shrink-0 [&>svg]:size-4", children: icon }))] }));
103
+ });
9
104
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
10
105
  const TabsContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Content, { ref: ref, "data-slot": "tabs-content", className: cn("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", className), ...props })));
11
106
  TabsContent.displayName = TabsPrimitive.Content.displayName;
12
- export { Tabs, TabsList, TabsTrigger, TabsContent };
107
+ /**
108
+ * Enhanced tabs component with declarative API
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <EnhancedTabs
113
+ * value={activeTab}
114
+ * onValueChange={setActiveTab}
115
+ * variant="pills"
116
+ * items={[
117
+ * { value: "all", label: "All", counter: 245 },
118
+ * { value: "active", label: "Active", counter: 12, semantic: "success" },
119
+ * ]}
120
+ * />
121
+ * ```
122
+ */
123
+ const EnhancedTabs = React.forwardRef(({ items, children, variant, density, fullWidth, overflow, listClassName, contentClassName, maxVisibleTabs, ...props }, ref) => {
124
+ const [visibleItems, setVisibleItems] = React.useState(items);
125
+ const [overflowItems, setOverflowItems] = React.useState([]);
126
+ React.useEffect(() => {
127
+ if (maxVisibleTabs && items.length > maxVisibleTabs) {
128
+ setVisibleItems(items.slice(0, maxVisibleTabs));
129
+ setOverflowItems(items.slice(maxVisibleTabs));
130
+ }
131
+ else {
132
+ setVisibleItems(items);
133
+ setOverflowItems([]);
134
+ }
135
+ }, [items, maxVisibleTabs]);
136
+ if (children) {
137
+ // Composition API - use children as-is
138
+ return (_jsx(Tabs, { ref: ref, ...props, children: children }));
139
+ }
140
+ // Declarative API - render from items
141
+ return (_jsxs(Tabs, { ref: ref, ...props, children: [_jsxs(TabsList, { variant: variant, density: density, fullWidth: fullWidth, overflow: overflow, className: listClassName, children: [visibleItems.map((item) => (_jsx(TabsTrigger, { value: item.value, variant: variant, semantic: item.semantic, density: density, icon: item.icon, iconPosition: item.iconPosition, counter: item.counter, badge: item.badge, disabled: item.disabled, children: item.label }, item.value))), overflowItems.length > 0 && (_jsx(OverflowDropdown, { items: overflowItems, variant: variant, semantic: "neutral", density: density }))] }), items.map((item) => item.content ? (_jsx(TabsContent, { value: item.value, className: contentClassName, children: item.content }, item.value)) : null)] }));
142
+ });
143
+ EnhancedTabs.displayName = "EnhancedTabs";
144
+ const OverflowDropdown = ({ items, variant, semantic, density, }) => {
145
+ const [isOpen, setIsOpen] = React.useState(false);
146
+ return (_jsxs("div", { className: "relative", children: [_jsxs("button", { type: "button", onClick: () => setIsOpen(!isOpen), className: cn(tabsTriggerVariants({ variant, semantic, density }), "relative"), children: [_jsx("span", { children: "More" }), _jsx(ChevronDown, { className: "size-4" })] }), isOpen && (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40", onClick: () => setIsOpen(false) }), _jsx("div", { className: "absolute right-0 top-full z-50 mt-1 min-w-[200px] rounded-md border border-border bg-popover p-1 shadow-md", children: items.map((item) => (_jsx(TabsTrigger, { value: item.value, variant: variant, semantic: item.semantic, density: density, icon: item.icon, iconPosition: item.iconPosition, counter: item.counter, badge: item.badge, disabled: item.disabled, className: "w-full justify-start", onClick: () => setIsOpen(false), children: item.label }, item.value))) })] }))] }));
147
+ };
148
+ // =============================================================================
149
+ // Exports
150
+ // =============================================================================
151
+ export { Tabs, TabsList, TabsTrigger, TabsContent, EnhancedTabs };
13
152
  //# sourceMappingURL=tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;AAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,IAAI,IACjB,GAAG,EAAE,GAAG,eACE,WAAW,EACrB,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAEtD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,eACE,cAAc,EACxB,SAAS,EAAE,EAAE,CACX,uTAAuT,EACvT,qGAAqG,EACrG,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,eACE,cAAc,EACxB,SAAS,EAAE,EAAE,CACX,iIAAiI,EACjI,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,15 +6,20 @@
6
6
  export { cn } from "./lib/utils.js";
7
7
  export { Button, buttonVariants, type ButtonProps } from "./components/button.js";
8
8
  export { Input, type InputProps } from "./components/input.js";
9
+ export { Spinner, type SpinnerProps } from "./components/spinner.js";
9
10
  export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from "./components/select.js";
10
11
  export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, } from "./components/dialog.js";
12
+ export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, } from "./components/sheet.js";
13
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from "./components/accordion.js";
11
14
  export { Label } from "./components/label.js";
12
- export { Tabs, TabsList, TabsTrigger, TabsContent, } from "./components/tabs.js";
15
+ export { FormField, type FormFieldProps } from "./components/form-field.js";
16
+ export { Tabs, TabsList, TabsTrigger, TabsContent, EnhancedTabs, type TabItem, type EnhancedTabsProps, type TabsListProps, type TabsTriggerProps, } from "./components/tabs.js";
13
17
  export { type ToastProps, type ToastActionElement, ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, } from "./components/toast.js";
14
18
  export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, } from "./components/table.js";
15
19
  export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, } from "./components/card.js";
16
20
  export { Container, type ContainerProps } from "./components/container.js";
17
21
  export { Stack, type StackProps } from "./components/stack.js";
22
+ export { Box, type BoxProps } from "./components/box.js";
18
23
  export { Badge, badgeVariants, type BadgeProps } from "./components/badge.js";
19
24
  export { Alert, AlertTitle, AlertDescription } from "./components/alert.js";
20
25
  export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, } from "./components/tooltip.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,15 +8,20 @@ export { cn } from "./lib/utils.js";
8
8
  // Components
9
9
  export { Button, buttonVariants } from "./components/button.js";
10
10
  export { Input } from "./components/input.js";
11
+ export { Spinner } from "./components/spinner.js";
11
12
  export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from "./components/select.js";
12
13
  export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, } from "./components/dialog.js";
14
+ export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, } from "./components/sheet.js";
15
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from "./components/accordion.js";
13
16
  export { Label } from "./components/label.js";
14
- export { Tabs, TabsList, TabsTrigger, TabsContent, } from "./components/tabs.js";
17
+ export { FormField } from "./components/form-field.js";
18
+ export { Tabs, TabsList, TabsTrigger, TabsContent, EnhancedTabs, } from "./components/tabs.js";
15
19
  export { ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, } from "./components/toast.js";
16
20
  export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, } from "./components/table.js";
17
21
  export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, } from "./components/card.js";
18
22
  export { Container } from "./components/container.js";
19
23
  export { Stack } from "./components/stack.js";
24
+ export { Box } from "./components/box.js";
20
25
  export { Badge, badgeVariants } from "./components/badge.js";
21
26
  export { Alert, AlertTitle, AlertDescription } from "./components/alert.js";
22
27
  export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, } from "./components/tooltip.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mehdashti/ui",
3
- "version": "0.6.0",
4
- "description": "React UI components for Smart Platform",
3
+ "version": "0.9.0",
4
+ "description": "Enterprise-grade React UI components with enhanced tabs, overflow handling, and declarative APIs",
5
5
  "author": "mehdashti",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -18,7 +18,20 @@
18
18
  "ui-components",
19
19
  "design-system",
20
20
  "radix-ui",
21
- "tailwind"
21
+ "tailwind",
22
+ "enterprise",
23
+ "enterprise-ui",
24
+ "forms",
25
+ "loading-states",
26
+ "accordion",
27
+ "sheet",
28
+ "drawer",
29
+ "tabs",
30
+ "enhanced-tabs",
31
+ "overflow-handling",
32
+ "declarative-api",
33
+ "density-modes",
34
+ "semantic-colors"
22
35
  ],
23
36
  "type": "module",
24
37
  "main": "./dist/index.js",
@@ -125,6 +138,26 @@
125
138
  "types": "./dist/components/combobox.d.ts",
126
139
  "import": "./dist/components/combobox.js"
127
140
  },
141
+ "./spinner": {
142
+ "types": "./dist/components/spinner.d.ts",
143
+ "import": "./dist/components/spinner.js"
144
+ },
145
+ "./sheet": {
146
+ "types": "./dist/components/sheet.d.ts",
147
+ "import": "./dist/components/sheet.js"
148
+ },
149
+ "./accordion": {
150
+ "types": "./dist/components/accordion.d.ts",
151
+ "import": "./dist/components/accordion.js"
152
+ },
153
+ "./form-field": {
154
+ "types": "./dist/components/form-field.d.ts",
155
+ "import": "./dist/components/form-field.js"
156
+ },
157
+ "./box": {
158
+ "types": "./dist/components/box.d.ts",
159
+ "import": "./dist/components/box.js"
160
+ },
128
161
  "./hooks/use-toast": {
129
162
  "types": "./dist/hooks/use-toast.d.ts",
130
163
  "import": "./dist/hooks/use-toast.js"
@@ -149,6 +182,7 @@
149
182
  "react-dom": "^18.0.0 || ^19.0.0"
150
183
  },
151
184
  "dependencies": {
185
+ "@radix-ui/react-accordion": "^1.2.2",
152
186
  "@radix-ui/react-avatar": "^1.1.2",
153
187
  "@radix-ui/react-checkbox": "^1.1.3",
154
188
  "@radix-ui/react-dialog": "^1.1.4",
@@ -168,6 +202,7 @@
168
202
  "class-variance-authority": "^0.7.1",
169
203
  "clsx": "^2.1.1",
170
204
  "cmdk": "^1.0.4",
205
+ "lucide-react": "^0.468.0",
171
206
  "tailwind-merge": "^2.6.0"
172
207
  },
173
208
  "devDependencies": {