@skybin-tech/nebula-ui 0.0.15 → 0.0.18
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/cjs/components/Alert/Alert.cjs +15 -0
- package/dist/cjs/components/Alert/Alert.cjs.map +1 -0
- package/dist/cjs/components/Badge/Badge.cjs +2 -1
- package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
- package/dist/cjs/components/Button/Button.cjs +3 -2
- package/dist/cjs/components/Button/Button.cjs.map +1 -1
- package/dist/cjs/components/Input/Input.cjs +9 -0
- package/dist/cjs/components/Input/Input.cjs.map +1 -0
- package/dist/cjs/components/Label/Label.cjs +9 -0
- package/dist/cjs/components/Label/Label.cjs.map +1 -0
- package/dist/cjs/components/Tabs/Tabs.cjs +18 -0
- package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -0
- package/dist/cjs/components/Textarea/Textarea.cjs +9 -0
- package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -0
- package/dist/cjs/index.cjs +17 -4
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/primitives/alert.cjs +69 -0
- package/dist/cjs/primitives/alert.cjs.map +1 -0
- package/dist/cjs/primitives/input.cjs +41 -0
- package/dist/cjs/primitives/input.cjs.map +1 -0
- package/dist/cjs/primitives/tabs.cjs +66 -0
- package/dist/cjs/primitives/tabs.cjs.map +1 -0
- package/dist/components/Alert/Alert.d.ts +6 -0
- package/dist/components/Alert/Alert.d.ts.map +1 -0
- package/dist/components/Alert/Alert.js +15 -0
- package/dist/components/Alert/Alert.js.map +1 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Alert/index.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +4 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Badge/Badge.d.ts +10 -0
- package/dist/components/Badge/Badge.d.ts.map +1 -0
- package/dist/components/Badge/Badge.js +2 -2
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Badge/index.d.ts +3 -0
- package/dist/components/Badge/index.d.ts.map +1 -0
- package/dist/components/Button/Button.d.ts +26 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.js +3 -3
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Card/Card.d.ts +7 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +27 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
- package/dist/components/DropdownMenu/index.d.ts +2 -0
- package/dist/components/DropdownMenu/index.d.ts.map +1 -0
- package/dist/components/Form/Checkbox.d.ts +32 -0
- package/dist/components/Form/Checkbox.d.ts.map +1 -0
- package/dist/components/Form/Form.d.ts +62 -0
- package/dist/components/Form/Form.d.ts.map +1 -0
- package/dist/components/Form/Radio.d.ts +80 -0
- package/dist/components/Form/Radio.d.ts.map +1 -0
- package/dist/components/Form/Select.d.ts +75 -0
- package/dist/components/Form/Select.d.ts.map +1 -0
- package/dist/components/Form/Switch.d.ts +34 -0
- package/dist/components/Form/Switch.d.ts.map +1 -0
- package/dist/components/Form/TextArea.d.ts +47 -0
- package/dist/components/Form/TextArea.d.ts.map +1 -0
- package/dist/components/Form/TextBox.d.ts +61 -0
- package/dist/components/Form/TextBox.d.ts.map +1 -0
- package/dist/components/Form/context.d.ts +109 -0
- package/dist/components/Form/context.d.ts.map +1 -0
- package/dist/components/Form/hooks.d.ts +21 -0
- package/dist/components/Form/hooks.d.ts.map +1 -0
- package/dist/components/Form/index.d.ts +18 -0
- package/dist/components/Form/index.d.ts.map +1 -0
- package/dist/components/Form/variants.d.ts +8 -0
- package/dist/components/Form/variants.d.ts.map +1 -0
- package/dist/components/Input/Input.d.ts +5 -0
- package/dist/components/Input/Input.d.ts.map +1 -0
- package/dist/components/Input/Input.js +9 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/index.d.ts +3 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/Label/Label.d.ts +5 -0
- package/dist/components/Label/Label.d.ts.map +1 -0
- package/dist/components/Label/Label.js +9 -0
- package/dist/components/Label/Label.js.map +1 -0
- package/dist/components/Label/index.d.ts +3 -0
- package/dist/components/Label/index.d.ts.map +1 -0
- package/dist/components/Select/Select.d.ts +2 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Separator/Separator.d.ts +2 -0
- package/dist/components/Separator/Separator.d.ts.map +1 -0
- package/dist/components/Separator/index.d.ts +2 -0
- package/dist/components/Separator/index.d.ts.map +1 -0
- package/dist/components/Switch/Switch.d.ts +2 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +5 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.js +18 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +5 -0
- package/dist/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.js +9 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Textarea/index.d.ts +3 -0
- package/dist/components/Textarea/index.d.ts.map +1 -0
- package/dist/hooks/useDebounce.d.ts +8 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useToggle.d.ts +7 -0
- package/dist/hooks/useToggle.d.ts.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/primitives/alert.d.ts +9 -0
- package/dist/primitives/alert.d.ts.map +1 -0
- package/dist/primitives/alert.js +52 -0
- package/dist/primitives/alert.js.map +1 -0
- package/dist/primitives/avatar.d.ts +7 -0
- package/dist/primitives/avatar.d.ts.map +1 -0
- package/dist/primitives/badge.d.ts +10 -0
- package/dist/primitives/badge.d.ts.map +1 -0
- package/dist/primitives/button.d.ts +12 -0
- package/dist/primitives/button.d.ts.map +1 -0
- package/dist/primitives/card.d.ts +9 -0
- package/dist/primitives/card.d.ts.map +1 -0
- package/dist/primitives/checkbox.d.ts +5 -0
- package/dist/primitives/checkbox.d.ts.map +1 -0
- package/dist/primitives/dropdown-menu.d.ts +28 -0
- package/dist/primitives/dropdown-menu.d.ts.map +1 -0
- package/dist/primitives/index.d.ts +31 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/input.d.ts +4 -0
- package/dist/primitives/input.d.ts.map +1 -0
- package/dist/primitives/input.js +24 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/label.d.ts +6 -0
- package/dist/primitives/label.d.ts.map +1 -0
- package/dist/primitives/radio-group.d.ts +6 -0
- package/dist/primitives/radio-group.d.ts.map +1 -0
- package/dist/primitives/select.d.ts +14 -0
- package/dist/primitives/select.d.ts.map +1 -0
- package/dist/primitives/separator.d.ts +5 -0
- package/dist/primitives/separator.d.ts.map +1 -0
- package/dist/primitives/switch.d.ts +5 -0
- package/dist/primitives/switch.d.ts.map +1 -0
- package/dist/primitives/tabs.d.ts +8 -0
- package/dist/primitives/tabs.d.ts.map +1 -0
- package/dist/primitives/tabs.js +48 -0
- package/dist/primitives/tabs.js.map +1 -0
- package/dist/primitives/textarea.d.ts +4 -0
- package/dist/primitives/textarea.d.ts.map +1 -0
- package/dist/primitives/textbox.d.ts +4 -0
- package/dist/primitives/textbox.d.ts.map +1 -0
- package/dist/stories/Button.d.ts +15 -0
- package/dist/stories/Button.d.ts.map +1 -0
- package/dist/stories/Button.stories.d.ts +24 -0
- package/dist/stories/Button.stories.d.ts.map +1 -0
- package/dist/stories/Header.d.ts +12 -0
- package/dist/stories/Header.d.ts.map +1 -0
- package/dist/stories/Header.stories.d.ts +19 -0
- package/dist/stories/Header.stories.d.ts.map +1 -0
- package/dist/stories/Page.d.ts +3 -0
- package/dist/stories/Page.d.ts.map +1 -0
- package/dist/stories/Page.stories.d.ts +13 -0
- package/dist/stories/Page.stories.d.ts.map +1 -0
- package/dist/utils/cn.d.ts +7 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/package.json +9 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { ButtonPrimitive, buttonVariants } from \"../../primitives/button\"\n\nexport
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { ButtonPrimitive, buttonVariants as buttonVariantsPrimitive } from \"../../primitives/button\"\n\nexport const buttonVariants = buttonVariantsPrimitive;\n\ntype PrimitiveVariant = NonNullable<VariantProps<typeof buttonVariants>[\"variant\"]>;\ntype PrimitiveSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nconst variantMap: Record<string, PrimitiveVariant> = {\n primary: \"default\",\n secondary: \"secondary\",\n outline: \"outline\",\n ghost: \"ghost\",\n danger: \"destructive\",\n};\n\nconst sizeMap: Record<string, PrimitiveSize> = {\n sm: \"sm\",\n md: \"default\",\n lg: \"lg\",\n};\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style variant */\n variant?: keyof typeof variantMap;\n /** Size of the button */\n size?: keyof typeof sizeMap;\n /** Stretch button to full container width */\n fullWidth?: boolean;\n /** Show a loading spinner and disable interaction */\n loading?: boolean;\n /** Render as child element via Slot (e.g. wrap a Link) */\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n children,\n variant = \"primary\",\n size = \"md\",\n fullWidth = false,\n loading = false,\n disabled,\n className,\n asChild = false,\n style,\n ...props\n },\n ref\n) {\n return (\n <ButtonPrimitive\n ref={ref}\n variant={variantMap[variant]}\n size={sizeMap[size]}\n asChild={asChild}\n disabled={disabled || loading}\n className={cn(fullWidth && \"w-full\", \"relative cursor-pointer\", className)}\n style={style}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {loading && (\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <span className=\"size-4 border-2 border-current border-r-transparent rounded-full animate-spin\" />\n </span>\n )}\n <span className={cn(\"inline-flex items-center gap-2\", loading && \"invisible\")}>{children}</span>\n </>\n )}\n </ButtonPrimitive>\n );\n});\n\nButton.displayName = \"Button\";\n"],"names":["buttonVariantsPrimitive","Button"],"mappings":";;;;;AAKO,MAAM,iBAAiBA;AAK9B,MAAM,aAA+C;AAAA,EACnD,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,MAAM,UAAyC;AAAA,EAC7C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAgBO,MAAM,SAAS,WAA2C,SAASC,QACxE;AAAA,EACE;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,GAAG;AACL,GACA,KACA;AACA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,SAAS,WAAW,OAAO;AAAA,MAC3B,MAAM,QAAQ,IAAI;AAAA,MAClB;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,WAAW,GAAG,aAAa,UAAU,2BAA2B,SAAS;AAAA,MACzE;AAAA,MACC,GAAG;AAAA,MAEH,UAAA,UACC,WAEA,qBAAA,UAAA,EACG,UAAA;AAAA,QAAA,WACC,oBAAC,UAAK,WAAU,qDACd,8BAAC,QAAA,EAAK,WAAU,iFAAgF,EAAA,CAClG;AAAA,QAEF,oBAAC,UAAK,WAAW,GAAG,kCAAkC,WAAW,WAAW,GAAI,SAAA,CAAS;AAAA,MAAA,EAAA,CAC3F;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;AAED,OAAO,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const Card: import('react').ForwardRefExoticComponent<Omit<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
2
|
+
export declare const CardHeader: import('react').ForwardRefExoticComponent<Omit<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export declare const CardTitle: import('react').ForwardRefExoticComponent<Omit<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export declare const CardDescription: import('react').ForwardRefExoticComponent<Omit<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export declare const CardContent: import('react').ForwardRefExoticComponent<Omit<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export declare const CardFooter: import('react').ForwardRefExoticComponent<Omit<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
7
|
+
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,IAAI,wMAGwC,CAAA;AAGzD,eAAO,MAAM,UAAU,wMAGwC,CAAA;AAG/D,eAAO,MAAM,SAAS,wMAGwC,CAAA;AAG9D,eAAO,MAAM,eAAe,wMAGwC,CAAA;AAGpE,eAAO,MAAM,WAAW,wMAGwC,CAAA;AAGhE,eAAO,MAAM,UAAU,wMAGwC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, HTMLAttributes } from 'react';
|
|
2
|
+
import { DropdownMenu as DropdownMenuPrimitive, DropdownMenuPortal as DropdownMenuPortalPrimitive, DropdownMenuSub as DropdownMenuSubPrimitive } from '../../primitives/dropdown-menu';
|
|
3
|
+
export declare function DropdownMenu(props: ComponentPropsWithoutRef<typeof DropdownMenuPrimitive>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function DropdownMenuPortal(props: ComponentPropsWithoutRef<typeof DropdownMenuPortalPrimitive>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function DropdownMenuSub(props: ComponentPropsWithoutRef<typeof DropdownMenuSubPrimitive>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const DropdownMenuTrigger: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuTriggerProps & import('react').RefAttributes<HTMLButtonElement>, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export declare const DropdownMenuGroup: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuGroupProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export declare const DropdownMenuRadioGroup: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuRadioGroupProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const DropdownMenuContent: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const DropdownMenuSubContent: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuSubContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export declare const DropdownMenuSubTrigger: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuSubTriggerProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
|
|
12
|
+
inset?: boolean;
|
|
13
|
+
} & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
14
|
+
export declare const DropdownMenuItem: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
|
|
15
|
+
inset?: boolean;
|
|
16
|
+
} & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
17
|
+
export declare const DropdownMenuCheckboxItem: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuCheckboxItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export declare const DropdownMenuRadioItem: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuRadioItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export declare const DropdownMenuLabel: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuLabelProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
|
|
20
|
+
inset?: boolean;
|
|
21
|
+
} & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
22
|
+
export declare const DropdownMenuSeparator: import('react').ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-dropdown-menu').DropdownMenuSeparatorProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
23
|
+
export declare function DropdownMenuShortcut(props: HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare namespace DropdownMenuShortcut {
|
|
25
|
+
var displayName: string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=DropdownMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAc,cAAc,EAAE,MAAM,OAAO,CAAA;AACjF,OAAO,EACL,YAAY,IAAI,qBAAqB,EAUrC,kBAAkB,IAAI,2BAA2B,EACjD,eAAe,IAAI,wBAAwB,EAI5C,MAAM,gCAAgC,CAAA;AAGvC,wBAAgB,YAAY,CAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,2CAEzF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,2BAA2B,CAAC,2CAErG;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,wBAAwB,CAAC,2CAE/F;AAGD,eAAO,MAAM,mBAAmB,gOAGwC,CAAA;AAGxE,eAAO,MAAM,iBAAiB,wNAGwC,CAAA;AAGtE,eAAO,MAAM,sBAAsB,6NAGwC,CAAA;AAG3E,eAAO,MAAM,mBAAmB,uRAGwC,CAAA;AAGxE,eAAO,MAAM,sBAAsB,0RAGwC,CAAA;AAG3E,eAAO,MAAM,sBAAsB;;0GAGwC,CAAA;AAG3E,eAAO,MAAM,gBAAgB;;0GAGwC,CAAA;AAGrE,eAAO,MAAM,wBAAwB,4RAGwC,CAAA;AAG7E,eAAO,MAAM,qBAAqB,yRAGwC,CAAA;AAG1E,eAAO,MAAM,iBAAiB;;0GAGwC,CAAA;AAGtE,eAAO,MAAM,qBAAqB,yRAGwC,CAAA;AAI1E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,2CAE1E;yBAFe,oBAAoB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, } from './DropdownMenu';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ReactNode, ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { FieldValues, FieldPath, Control } from 'react-hook-form';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import type * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
5
|
+
declare const checkboxSizeVariants: (props?: ({
|
|
6
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
export interface CheckboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "name" | "checked" | "onCheckedChange" | "required">, VariantProps<typeof checkboxSizeVariants> {
|
|
9
|
+
/** Field name - required for form integration */
|
|
10
|
+
name: TName;
|
|
11
|
+
/** Label text for the checkbox */
|
|
12
|
+
label?: ReactNode;
|
|
13
|
+
/** Helper text displayed below the checkbox */
|
|
14
|
+
helperText?: string;
|
|
15
|
+
/** Whether to show the error message */
|
|
16
|
+
showError?: boolean;
|
|
17
|
+
/** Custom error message (overrides form error) */
|
|
18
|
+
error?: string;
|
|
19
|
+
/** External control (for use outside Form) */
|
|
20
|
+
control?: Control<TFieldValues>;
|
|
21
|
+
/** Variant style */
|
|
22
|
+
variant?: "default" | "error";
|
|
23
|
+
/** Field is required (must be checked) */
|
|
24
|
+
required?: boolean | string;
|
|
25
|
+
/** Custom validation function */
|
|
26
|
+
validate?: (value: unknown) => boolean | string | Promise<boolean | string>;
|
|
27
|
+
}
|
|
28
|
+
export declare const Checkbox: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: CheckboxProps<TFieldValues, TName> & {
|
|
29
|
+
ref?: React.ForwardedRef<React.ElementRef<typeof CheckboxPrimitive.Root>>;
|
|
30
|
+
}) => React.ReactElement;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAsD,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,OAAO,KAAK,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAEnE,QAAA,MAAM,oBAAoB;;8EAczB,CAAC;AAsBF,MAAM,WAAW,aAAa,CAC5B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAC/D,SAAQ,IAAI,CAAC,wBAAwB,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CAAC,EACxH,YAAY,CAAC,OAAO,oBAAoB,CAAC;IAC3C,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,kCAAkC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAG9B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC7E;AAmJD,eAAO,MAAM,QAAQ,EAAgC,CACnD,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAE/D,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;CAAE,KACtH,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { UseFormReturn, FieldValues, UseFormProps, SubmitHandler, SubmitErrorHandler, Resolver } from 'react-hook-form';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { FormConfig } from './context';
|
|
5
|
+
/**
|
|
6
|
+
* Props for the Form component
|
|
7
|
+
*/
|
|
8
|
+
export interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext = unknown> extends Omit<React.FormHTMLAttributes<HTMLFormElement>, "onSubmit" | "onError"> {
|
|
9
|
+
/** Base Zod schema for validation (will be extended by field props) */
|
|
10
|
+
schema?: z.ZodType<TFieldValues, any, any>;
|
|
11
|
+
/** Default values for the form */
|
|
12
|
+
defaultValues?: UseFormProps<TFieldValues, TContext>["defaultValues"];
|
|
13
|
+
/** Values to reset the form to */
|
|
14
|
+
values?: UseFormProps<TFieldValues, TContext>["values"];
|
|
15
|
+
/** Submit handler */
|
|
16
|
+
onSubmit?: SubmitHandler<TFieldValues>;
|
|
17
|
+
/** Error handler */
|
|
18
|
+
onError?: SubmitErrorHandler<TFieldValues>;
|
|
19
|
+
/** Form configuration */
|
|
20
|
+
config?: FormConfig;
|
|
21
|
+
/** Children */
|
|
22
|
+
children?: ReactNode;
|
|
23
|
+
/** External form instance (for controlled forms) */
|
|
24
|
+
form?: UseFormReturn<TFieldValues>;
|
|
25
|
+
/** Validation mode */
|
|
26
|
+
mode?: UseFormProps<TFieldValues, TContext>["mode"];
|
|
27
|
+
/** Revalidation mode */
|
|
28
|
+
reValidateMode?: UseFormProps<TFieldValues, TContext>["reValidateMode"];
|
|
29
|
+
/** Custom resolver (overrides schema) */
|
|
30
|
+
resolver?: Resolver<TFieldValues>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Form component that provides form context and validation
|
|
34
|
+
*
|
|
35
|
+
* Child components like TextBox can register their validation rules automatically.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Validation is automatically built from component props
|
|
40
|
+
* <Form onSubmit={handleSubmit} defaultValues={{ username: "", email: "" }}>
|
|
41
|
+
* <TextBox name="username" label="Username" required minLength={3} maxLength={50} />
|
|
42
|
+
* <TextBox name="email" label="Email" type="email" required email />
|
|
43
|
+
* <Button type="submit">Submit</Button>
|
|
44
|
+
* </Form>
|
|
45
|
+
*
|
|
46
|
+
* // Or with a base schema that gets extended
|
|
47
|
+
* const baseSchema = z.object({
|
|
48
|
+
* username: z.string(),
|
|
49
|
+
* email: z.string(),
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* <Form schema={baseSchema} onSubmit={handleSubmit}>
|
|
53
|
+
* <TextBox name="username" required minLength={3} /> // Adds required + minLength
|
|
54
|
+
* <TextBox name="email" required email /> // Adds required + email validation
|
|
55
|
+
* </Form>
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function Form<TFieldValues extends FieldValues = FieldValues, TContext = unknown>({ schema: baseSchema, defaultValues, values, onSubmit, onError, config, children, form: externalForm, mode, reValidateMode, resolver: customResolver, ...formProps }: FormProps<TFieldValues, TContext>): import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
export declare namespace Form {
|
|
60
|
+
var displayName: string;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=Form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EAEd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,KAAK,UAAU,EAEhB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,SAAS,CACxB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,OAAO,CAClB,SAAQ,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/E,uEAAuE;IAEvE,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,kCAAkC;IAClC,aAAa,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC;IACtE,kCAAkC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACvC,oBAAoB;IACpB,OAAO,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC3C,yBAAyB;IACzB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,eAAe;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,oDAAoD;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACnC,sBAAsB;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IACpD,wBAAwB;IACxB,cAAc,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACxE,yCAAyC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,IAAI,CAClB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,OAAO,EAClB,EACA,MAAM,EAAE,UAAU,EAClB,aAAa,EACb,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,EAAE,YAAY,EAClB,IAAe,EACf,cAA2B,EAC3B,QAAQ,EAAE,cAAc,EACxB,GAAG,SAAS,EACb,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,2CAmGnC;yBAnHe,IAAI"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ReactNode, ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { FieldValues, FieldPath, Control } from 'react-hook-form';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import type * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
5
|
+
declare const radioSizeVariants: (props?: ({
|
|
6
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
export interface RadioOption {
|
|
9
|
+
label: ReactNode;
|
|
10
|
+
value: string | number;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface RadioGroupProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends VariantProps<typeof radioSizeVariants> {
|
|
14
|
+
/** Field name - required for form integration */
|
|
15
|
+
name: TName;
|
|
16
|
+
/** Label text for the radio group */
|
|
17
|
+
label?: string;
|
|
18
|
+
/** Helper text displayed below the radio group */
|
|
19
|
+
helperText?: string;
|
|
20
|
+
/** Whether to show the error message */
|
|
21
|
+
showError?: boolean;
|
|
22
|
+
/** Custom error message (overrides form error) */
|
|
23
|
+
error?: string;
|
|
24
|
+
/** Options for the radio group */
|
|
25
|
+
options?: RadioOption[];
|
|
26
|
+
/** Layout direction */
|
|
27
|
+
direction?: "horizontal" | "vertical";
|
|
28
|
+
/** External control (for use outside Form) */
|
|
29
|
+
control?: Control<TFieldValues>;
|
|
30
|
+
/** Children (alternative to options prop) */
|
|
31
|
+
children?: ReactNode;
|
|
32
|
+
/** Disabled state */
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
/** Additional class name */
|
|
35
|
+
className?: string;
|
|
36
|
+
/** Variant style */
|
|
37
|
+
variant?: "default" | "error";
|
|
38
|
+
/** Field is required */
|
|
39
|
+
required?: boolean | string;
|
|
40
|
+
/** Custom validation function */
|
|
41
|
+
validate?: (value: unknown) => boolean | string | Promise<boolean | string>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* RadioGroup component with form integration
|
|
45
|
+
*
|
|
46
|
+
* This is a wrapper around the shadcn/ui RadioGroup primitive that adds:
|
|
47
|
+
* - Form integration with react-hook-form
|
|
48
|
+
* - Automatic validation registration
|
|
49
|
+
* - Label, helper text, and error message support
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* // Inside a Form component
|
|
54
|
+
* <RadioGroup
|
|
55
|
+
* name="gender"
|
|
56
|
+
* label="Gender"
|
|
57
|
+
* required
|
|
58
|
+
* options={[
|
|
59
|
+
* { label: "Male", value: "male" },
|
|
60
|
+
* { label: "Female", value: "female" },
|
|
61
|
+
* { label: "Other", value: "other" },
|
|
62
|
+
* ]}
|
|
63
|
+
* />
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function RadioGroup<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, label, helperText, showError, error: customError, size, variant, options, direction, control: externalControl, children, disabled, className, required, validate, }: RadioGroupProps<TFieldValues, TName>): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare namespace RadioGroup {
|
|
68
|
+
var displayName: string;
|
|
69
|
+
}
|
|
70
|
+
export interface RadioItemProps extends Omit<ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, "value">, VariantProps<typeof radioSizeVariants> {
|
|
71
|
+
/** Value for this radio option */
|
|
72
|
+
value: string | number;
|
|
73
|
+
/** Label for this radio option */
|
|
74
|
+
children?: ReactNode;
|
|
75
|
+
/** Variant style */
|
|
76
|
+
variant?: "default" | "error";
|
|
77
|
+
}
|
|
78
|
+
export declare const RadioItem: import('react').ForwardRefExoticComponent<RadioItemProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=Radio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Radio.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAsD,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,OAAO,KAAK,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAExE,QAAA,MAAM,iBAAiB;;8EActB,CAAC;AA4BF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe,CAC9B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAC/D,SAAQ,YAAY,CAAC,OAAO,iBAAiB,CAAC;IAC9C,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,uBAAuB;IACvB,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAG9B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,UAAU,CACxB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,EACA,IAAI,EACJ,KAAK,EACL,UAAU,EACV,SAAgB,EAChB,KAAK,EAAE,WAAW,EAClB,IAAI,EACJ,OAAO,EACP,OAAY,EACZ,SAAsB,EACtB,OAAO,EAAE,eAAe,EACxB,QAAQ,EACR,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,QAAQ,GACT,EAAE,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,2CAwGtC;yBA5He,UAAU;;;AAgI1B,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,wBAAwB,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAC5G,YAAY,CAAC,OAAO,iBAAiB,CAAC;IACxC,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;AAuDD,eAAO,MAAM,SAAS,8GAA6B,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { FieldValues, FieldPath, Control } from 'react-hook-form';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
declare const selectSizeVariants: (props?: ({
|
|
5
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
export interface SelectOption {
|
|
8
|
+
label: string;
|
|
9
|
+
value: string | number;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface SelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends VariantProps<typeof selectSizeVariants> {
|
|
13
|
+
/** Field name - required for form integration */
|
|
14
|
+
name: TName;
|
|
15
|
+
/** Label text for the select */
|
|
16
|
+
label?: string;
|
|
17
|
+
/** Helper text displayed below the select */
|
|
18
|
+
helperText?: string;
|
|
19
|
+
/** Whether to show the error message */
|
|
20
|
+
showError?: boolean;
|
|
21
|
+
/** Custom error message (overrides form error) */
|
|
22
|
+
error?: string;
|
|
23
|
+
/** Whether the select should take full width */
|
|
24
|
+
fullWidth?: boolean;
|
|
25
|
+
/** Options for the select */
|
|
26
|
+
options?: SelectOption[];
|
|
27
|
+
/** Placeholder text */
|
|
28
|
+
placeholder?: string;
|
|
29
|
+
/** Allow clear selection */
|
|
30
|
+
allowClear?: boolean;
|
|
31
|
+
/** External control (for use outside Form) */
|
|
32
|
+
control?: Control<TFieldValues>;
|
|
33
|
+
/** Children (alternative to options prop) */
|
|
34
|
+
children?: ReactNode;
|
|
35
|
+
/** Disabled state */
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
/** Additional class name */
|
|
38
|
+
className?: string;
|
|
39
|
+
/** ID for the select */
|
|
40
|
+
id?: string;
|
|
41
|
+
/** Variant style */
|
|
42
|
+
variant?: "default" | "error" | "success";
|
|
43
|
+
/** Field is required */
|
|
44
|
+
required?: boolean | string;
|
|
45
|
+
/** Custom validation function */
|
|
46
|
+
validate?: (value: unknown) => boolean | string | Promise<boolean | string>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Select component with form integration
|
|
50
|
+
*
|
|
51
|
+
* This is a wrapper around the shadcn/ui Select primitive that adds:
|
|
52
|
+
* - Form integration with react-hook-form
|
|
53
|
+
* - Automatic validation registration
|
|
54
|
+
* - Label, helper text, and error message support
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```tsx
|
|
58
|
+
* // Inside a Form component
|
|
59
|
+
* <Select
|
|
60
|
+
* name="country"
|
|
61
|
+
* label="Country"
|
|
62
|
+
* required
|
|
63
|
+
* options={[
|
|
64
|
+
* { label: "USA", value: "us" },
|
|
65
|
+
* { label: "Canada", value: "ca" },
|
|
66
|
+
* ]}
|
|
67
|
+
* />
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function Select<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, label, helperText, showError, error: customError, size, variant, fullWidth, className, disabled, options, placeholder, allowClear, id: providedId, control: externalControl, children, required, validate, }: SelectProps<TFieldValues, TName>): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
export declare namespace Select {
|
|
72
|
+
var displayName: string;
|
|
73
|
+
}
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAsD,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAalE,QAAA,MAAM,kBAAkB;;8EAcvB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW,CAC1B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAC/D,SAAQ,YAAY,CAAC,OAAO,kBAAkB,CAAC;IAC/C,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAG1C,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CACpB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,EACA,IAAI,EACJ,KAAK,EACL,UAAU,EACV,SAAgB,EAChB,KAAK,EAAE,WAAW,EAClB,IAAI,EACJ,OAAO,EACP,SAAgB,EAChB,SAAS,EACT,QAAQ,EACR,OAAY,EACZ,WAAW,EACX,UAAU,EACV,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,eAAe,EACxB,QAAQ,EAER,QAAQ,EACR,QAAQ,GACT,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,2CAkIlC;yBAzJe,MAAM"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ReactNode, ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { FieldValues, FieldPath, Control } from 'react-hook-form';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import type * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
5
|
+
declare const switchSizeVariants: (props?: ({
|
|
6
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
export interface SwitchProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>, "name" | "checked" | "onCheckedChange" | "required">, VariantProps<typeof switchSizeVariants> {
|
|
9
|
+
/** Field name - required for form integration */
|
|
10
|
+
name: TName;
|
|
11
|
+
/** Label text for the switch */
|
|
12
|
+
label?: ReactNode;
|
|
13
|
+
/** Helper text displayed below the switch */
|
|
14
|
+
helperText?: string;
|
|
15
|
+
/** Whether to show the error message */
|
|
16
|
+
showError?: boolean;
|
|
17
|
+
/** Custom error message (overrides form error) */
|
|
18
|
+
error?: string;
|
|
19
|
+
/** External control (for use outside Form) */
|
|
20
|
+
control?: Control<TFieldValues>;
|
|
21
|
+
/** Text to show when checked */
|
|
22
|
+
checkedText?: ReactNode;
|
|
23
|
+
/** Text to show when unchecked */
|
|
24
|
+
uncheckedText?: ReactNode;
|
|
25
|
+
/** Field is required (must be on) */
|
|
26
|
+
required?: boolean | string;
|
|
27
|
+
/** Custom validation function */
|
|
28
|
+
validate?: (value: unknown) => boolean | string | Promise<boolean | string>;
|
|
29
|
+
}
|
|
30
|
+
export declare const Switch: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: SwitchProps<TFieldValues, TName> & {
|
|
31
|
+
ref?: React.ForwardedRef<React.ElementRef<typeof SwitchPrimitives.Root>>;
|
|
32
|
+
}) => React.ReactElement;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=Switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Switch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAsD,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,OAAO,KAAK,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAEhE,QAAA,MAAM,kBAAkB;;8EAcvB,CAAC;AAiBF,MAAM,WAAW,WAAW,CAC1B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAC/D,SAAQ,IAAI,CAAC,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CAAC,EACvH,YAAY,CAAC,OAAO,kBAAkB,CAAC;IACzC,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,gCAAgC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,gCAAgC;IAChC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,kCAAkC;IAClC,aAAa,CAAC,EAAE,SAAS,CAAC;IAG1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC7E;AA2ID,eAAO,MAAM,MAAM,EAA8B,CAC/C,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAE/D,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;CAAE,KACnH,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { TextareaHTMLAttributes } from 'react';
|
|
2
|
+
import { FieldValues, FieldPath, Control } from 'react-hook-form';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
declare const textAreaSizeVariants: (props?: ({
|
|
5
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
6
|
+
variant?: "default" | "error" | "success" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Validation rule with optional custom message
|
|
10
|
+
*/
|
|
11
|
+
type ValidationRule<T> = T | {
|
|
12
|
+
value: T;
|
|
13
|
+
message: string;
|
|
14
|
+
};
|
|
15
|
+
export interface TextAreaProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, "name" | "required" | "minLength" | "maxLength">, VariantProps<typeof textAreaSizeVariants> {
|
|
16
|
+
/** Field name - required for form integration */
|
|
17
|
+
name: TName;
|
|
18
|
+
/** Label text for the textarea */
|
|
19
|
+
label?: string;
|
|
20
|
+
/** Helper text displayed below the textarea */
|
|
21
|
+
helperText?: string;
|
|
22
|
+
/** Whether to show the error message */
|
|
23
|
+
showError?: boolean;
|
|
24
|
+
/** Custom error message (overrides form error) */
|
|
25
|
+
error?: string;
|
|
26
|
+
/** Whether the textarea should take full width */
|
|
27
|
+
fullWidth?: boolean;
|
|
28
|
+
/** Show character count */
|
|
29
|
+
showCount?: boolean;
|
|
30
|
+
/** Maximum character count (for display) */
|
|
31
|
+
maxCount?: number;
|
|
32
|
+
/** External control (for use outside Form) */
|
|
33
|
+
control?: Control<TFieldValues>;
|
|
34
|
+
/** Field is required */
|
|
35
|
+
required?: boolean | string;
|
|
36
|
+
/** Minimum length */
|
|
37
|
+
minLength?: ValidationRule<number>;
|
|
38
|
+
/** Maximum length */
|
|
39
|
+
maxLength?: ValidationRule<number>;
|
|
40
|
+
/** Custom validation function */
|
|
41
|
+
validate?: (value: unknown) => boolean | string | Promise<boolean | string>;
|
|
42
|
+
}
|
|
43
|
+
export declare const TextArea: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: TextAreaProps<TFieldValues, TName> & {
|
|
44
|
+
ref?: React.ForwardedRef<HTMLTextAreaElement>;
|
|
45
|
+
}) => React.ReactElement;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=TextArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../src/components/Form/TextArea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAsD,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOlE,QAAA,MAAM,oBAAoB;;;8EAoBzB,CAAC;AAEF;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,aAAa,CAC5B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAC/D,SAAQ,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,EACxG,YAAY,CAAC,OAAO,oBAAoB,CAAC;IAC3C,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAGhC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,qBAAqB;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,qBAAqB;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC7E;AA6KD,eAAO,MAAM,QAAQ,EAAgC,CACnD,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAE/D,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;CAAE,KAC1F,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { FieldValues, FieldPath, Control } from 'react-hook-form';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
declare const textBoxVariants: (props?: ({
|
|
5
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
6
|
+
variant?: "default" | "error" | "success" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Validation rule with optional custom message
|
|
10
|
+
*/
|
|
11
|
+
type ValidationRule<T> = T | {
|
|
12
|
+
value: T;
|
|
13
|
+
message: string;
|
|
14
|
+
};
|
|
15
|
+
export interface TextBoxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "name" | "prefix" | "pattern" | "required" | "minLength" | "maxLength">, VariantProps<typeof textBoxVariants> {
|
|
16
|
+
/** Field name - required for form integration */
|
|
17
|
+
name: TName;
|
|
18
|
+
/** Label text for the input */
|
|
19
|
+
label?: string;
|
|
20
|
+
/** Helper text displayed below the input */
|
|
21
|
+
helperText?: string;
|
|
22
|
+
/** Whether to show the error message */
|
|
23
|
+
showError?: boolean;
|
|
24
|
+
/** Custom error message (overrides form error) */
|
|
25
|
+
error?: string;
|
|
26
|
+
/** Whether the input should take full width */
|
|
27
|
+
fullWidth?: boolean;
|
|
28
|
+
/** Prefix element */
|
|
29
|
+
prefix?: ReactNode;
|
|
30
|
+
/** Suffix element */
|
|
31
|
+
suffix?: ReactNode;
|
|
32
|
+
/** Allow clear button */
|
|
33
|
+
allowClear?: boolean;
|
|
34
|
+
/** Callback when clear is clicked */
|
|
35
|
+
onClear?: () => void;
|
|
36
|
+
/** External control (for use outside Form) */
|
|
37
|
+
control?: Control<TFieldValues>;
|
|
38
|
+
/** Field is required */
|
|
39
|
+
required?: boolean | string;
|
|
40
|
+
/** Minimum length for strings */
|
|
41
|
+
minLength?: ValidationRule<number>;
|
|
42
|
+
/** Maximum length for strings */
|
|
43
|
+
maxLength?: ValidationRule<number>;
|
|
44
|
+
/** Minimum value for numbers */
|
|
45
|
+
minValue?: ValidationRule<number>;
|
|
46
|
+
/** Maximum value for numbers */
|
|
47
|
+
maxValue?: ValidationRule<number>;
|
|
48
|
+
/** Regex pattern for validation */
|
|
49
|
+
pattern?: ValidationRule<RegExp>;
|
|
50
|
+
/** Email validation */
|
|
51
|
+
email?: boolean | string;
|
|
52
|
+
/** URL validation */
|
|
53
|
+
url?: boolean | string;
|
|
54
|
+
/** Custom validation function */
|
|
55
|
+
validate?: (value: unknown) => boolean | string | Promise<boolean | string>;
|
|
56
|
+
}
|
|
57
|
+
export declare const TextBox: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: TextBoxProps<TFieldValues, TName> & {
|
|
58
|
+
ref?: React.ForwardedRef<HTMLInputElement>;
|
|
59
|
+
}) => React.ReactElement;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=TextBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextBox.d.ts","sourceRoot":"","sources":["../../../src/components/Form/TextBox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAsD,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQlE,QAAA,MAAM,eAAe;;;8EAoBpB,CAAC;AAEF;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,YAAY,CAC3B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAC/D,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,EAClI,YAAY,CAAC,OAAO,eAAe,CAAC;IACtC,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qBAAqB;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAGhC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,iCAAiC;IACjC,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAClC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAClC,mCAAmC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,uBAAuB;IACvB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,qBAAqB;IACrB,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC7E;AAoPD,eAAO,MAAM,OAAO,EAA+B,CACjD,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAE/D,KAAK,EAAE,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;CAAE,KACtF,KAAK,CAAC,YAAY,CAAC"}
|