@health-samurai/react-components 0.0.0-alpha.1 → 0.0.0-alpha.3
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/bundle.css +100 -7
- package/dist/src/components/code-editor/index.js +53 -29
- package/dist/src/components/code-editor/index.js.map +1 -1
- package/dist/src/components/code-editor.stories.js +22 -7
- package/dist/src/components/code-editor.stories.js.map +1 -1
- package/dist/src/components/copy-icon.js +11 -4
- package/dist/src/components/copy-icon.js.map +1 -1
- package/dist/src/components/request-line-editor.js +56 -14
- package/dist/src/components/request-line-editor.js.map +1 -1
- package/dist/src/components/request-line-editor.stories.js +71 -22
- package/dist/src/components/request-line-editor.stories.js.map +1 -1
- package/dist/src/global.d.js +2 -0
- package/dist/src/global.d.js.map +1 -0
- package/dist/src/index.css +6 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +52 -50
- package/dist/src/index.js.map +1 -1
- package/dist/src/index.stories.js +8 -5
- package/dist/src/index.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.js +34 -5
- package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.stories.js +68 -3
- package/dist/src/shadcn/components/ui/accordion.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.js +61 -14
- package/dist/src/shadcn/components/ui/alert-dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js +39 -4
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.js +24 -8
- package/dist/src/shadcn/components/ui/alert.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.stories.js +57 -3
- package/dist/src/shadcn/components/ui/alert.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.js +6 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.js.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.js +12 -3
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.js +17 -4
- package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.stories.js +69 -3
- package/dist/src/shadcn/components/ui/avatar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/badge.js +13 -6
- package/dist/src/shadcn/components/ui/badge.js.map +1 -1
- package/dist/src/shadcn/components/ui/badge.stories.js +55 -3
- package/dist/src/shadcn/components/ui/badge.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.js +56 -11
- package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js +69 -4
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.js +23 -13
- package/dist/src/shadcn/components/ui/button.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.stories.js +190 -10
- package/dist/src/shadcn/components/ui/button.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.js +76 -33
- package/dist/src/shadcn/components/ui/calendar.js.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.stories.js +12 -5
- package/dist/src/shadcn/components/ui/calendar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.js +38 -9
- package/dist/src/shadcn/components/ui/card.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.stories.js +91 -6
- package/dist/src/shadcn/components/ui/card.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.js +99 -39
- package/dist/src/shadcn/components/ui/carousel.js.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.stories.js +30 -6
- package/dist/src/shadcn/components/ui/carousel.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/chart.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/chart.js +119 -55
- package/dist/src/shadcn/components/ui/chart.js.map +1 -1
- package/dist/src/shadcn/components/ui/chart.stories.js +72 -12
- package/dist/src/shadcn/components/ui/chart.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.js +15 -2
- package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.stories.js +79 -4
- package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/collapsible.js +13 -3
- package/dist/src/shadcn/components/ui/collapsible.js.map +1 -1
- package/dist/src/shadcn/components/ui/collapsible.stories.js +54 -6
- package/dist/src/shadcn/components/ui/collapsible.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/command.js +77 -12
- package/dist/src/shadcn/components/ui/command.js.map +1 -1
- package/dist/src/shadcn/components/ui/command.stories.js +88 -4
- package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.js +107 -17
- package/dist/src/shadcn/components/ui/context-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.stories.js +101 -3
- package/dist/src/shadcn/components/ui/context-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.js +69 -12
- package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.stories.js +82 -6
- package/dist/src/shadcn/components/ui/dialog.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.js +62 -12
- package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.stories.js +154 -21
- package/dist/src/shadcn/components/ui/drawer.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.js +107 -17
- package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js +119 -4
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/form.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/form.js +59 -18
- package/dist/src/shadcn/components/ui/form.js.map +1 -1
- package/dist/src/shadcn/components/ui/form.stories.js +45 -11
- package/dist/src/shadcn/components/ui/form.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.js +21 -4
- package/dist/src/shadcn/components/ui/hover-card.js.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.stories.js +51 -5
- package/dist/src/shadcn/components/ui/hover-card.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.js +35 -7
- package/dist/src/shadcn/components/ui/input-otp.js.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.stories.js +35 -3
- package/dist/src/shadcn/components/ui/input-otp.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.js +59 -40
- package/dist/src/shadcn/components/ui/input.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.stories.js +391 -23
- package/dist/src/shadcn/components/ui/input.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/label.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/label.js +8 -2
- package/dist/src/shadcn/components/ui/label.js.map +1 -1
- package/dist/src/shadcn/components/ui/label.stories.js +18 -4
- package/dist/src/shadcn/components/ui/label.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.js +116 -19
- package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.stories.js +216 -3
- package/dist/src/shadcn/components/ui/menubar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/navigation-menu.js +62 -10
- package/dist/src/shadcn/components/ui/navigation-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/navigation-menu.stories.js +263 -11
- package/dist/src/shadcn/components/ui/navigation-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.js +73 -16
- package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.stories.js +41 -3
- package/dist/src/shadcn/components/ui/pagination.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/popover.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/popover.js +24 -5
- package/dist/src/shadcn/components/ui/popover.js.map +1 -1
- package/dist/src/shadcn/components/ui/popover.stories.js +99 -6
- package/dist/src/shadcn/components/ui/popover.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/progress.js +14 -2
- package/dist/src/shadcn/components/ui/progress.js.map +1 -1
- package/dist/src/shadcn/components/ui/progress.stories.js +12 -8
- package/dist/src/shadcn/components/ui/progress.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.js +20 -3
- package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.stories.js +48 -4
- package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.js +22 -4
- package/dist/src/shadcn/components/ui/resizable.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.stories.js +49 -3
- package/dist/src/shadcn/components/ui/resizable.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.js +27 -5
- package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.stories.js +30 -5
- package/dist/src/shadcn/components/ui/scroll-area.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.js +98 -19
- package/dist/src/shadcn/components/ui/select.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.stories.js +84 -5
- package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/separator.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/separator.js +10 -2
- package/dist/src/shadcn/components/ui/separator.js.map +1 -1
- package/dist/src/shadcn/components/ui/separator.stories.js +43 -3
- package/dist/src/shadcn/components/ui/separator.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/sheet.js +69 -16
- package/dist/src/shadcn/components/ui/sheet.js.map +1 -1
- package/dist/src/shadcn/components/ui/sheet.stories.js +77 -6
- package/dist/src/shadcn/components/ui/sheet.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.js +305 -79
- package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.stories.js +321 -59
- package/dist/src/shadcn/components/ui/sidebar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.js +7 -2
- package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.stories.js +22 -3
- package/dist/src/shadcn/components/ui/skeleton.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/slider.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/slider.js +41 -7
- package/dist/src/shadcn/components/ui/slider.js.map +1 -1
- package/dist/src/shadcn/components/ui/slider.stories.js +11 -3
- package/dist/src/shadcn/components/ui/slider.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.js +10 -4
- package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.stories.js +14 -9
- package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/switch.js +12 -2
- package/dist/src/shadcn/components/ui/switch.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.stories.js +16 -4
- package/dist/src/shadcn/components/ui/switch.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.js +47 -10
- package/dist/src/shadcn/components/ui/table.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.stories.js +72 -11
- package/dist/src/shadcn/components/ui/table.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.d.ts +9 -5
- package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.js +76 -18
- package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts +6 -0
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.stories.js +221 -10
- package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.js +7 -2
- package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.stories.js +6 -3
- package/dist/src/shadcn/components/ui/textarea.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.js +29 -8
- package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.stories.js +30 -3
- package/dist/src/shadcn/components/ui/toggle-group.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.js +16 -7
- package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.stories.js +9 -3
- package/dist/src/shadcn/components/ui/toggle.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.js +27 -5
- package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.stories.js +20 -4
- package/dist/src/shadcn/components/ui/tooltip.stories.js.map +1 -1
- package/dist/src/shadcn/hooks/use-mobile.js +4 -3
- package/dist/src/shadcn/hooks/use-mobile.js.map +1 -1
- package/dist/src/shadcn/lib/utils.js +1 -0
- package/dist/src/shadcn/lib/utils.js.map +1 -1
- package/package.json +8 -4
- package/src/index.css +6 -0
- package/src/index.tsx +1 -0
- package/src/shadcn/components/ui/aspect-ratio.tsx +1 -0
- package/src/shadcn/components/ui/calendar.tsx +1 -0
- package/src/shadcn/components/ui/chart.tsx +1 -0
- package/src/shadcn/components/ui/checkbox.tsx +1 -0
- package/src/shadcn/components/ui/context-menu.tsx +1 -0
- package/src/shadcn/components/ui/drawer.tsx +1 -0
- package/src/shadcn/components/ui/form.tsx +1 -0
- package/src/shadcn/components/ui/hover-card.tsx +1 -0
- package/src/shadcn/components/ui/label.tsx +1 -0
- package/src/shadcn/components/ui/popover.tsx +1 -0
- package/src/shadcn/components/ui/radio-group.tsx +1 -0
- package/src/shadcn/components/ui/scroll-area.tsx +1 -0
- package/src/shadcn/components/ui/separator.tsx +1 -0
- package/src/shadcn/components/ui/sidebar.tsx +1 -0
- package/src/shadcn/components/ui/slider.tsx +1 -0
- package/src/shadcn/components/ui/switch.tsx +1 -0
- package/src/shadcn/components/ui/tabs.stories.tsx +57 -0
- package/src/shadcn/components/ui/tabs.tsx +77 -26
- package/src/shadcn/components/ui/tooltip.tsx +1 -0
|
@@ -1,19 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
3
|
import { Slot } from "@radix-ui/react-slot";
|
|
3
4
|
import * as React from "react";
|
|
4
|
-
import { Controller, FormProvider, useFormContext, useFormState
|
|
5
|
-
import { Label } from "
|
|
6
|
-
import { cn } from "
|
|
5
|
+
import { Controller, FormProvider, useFormContext, useFormState } from "react-hook-form";
|
|
6
|
+
import { Label } from "./label.js";
|
|
7
|
+
import { cn } from "../../lib/utils.js";
|
|
7
8
|
const Form = FormProvider;
|
|
8
|
-
const FormFieldContext = React.createContext({});
|
|
9
|
-
const FormField = ({ ...props })
|
|
10
|
-
return
|
|
9
|
+
const FormFieldContext = /*#__PURE__*/ React.createContext({});
|
|
10
|
+
const FormField = ({ ...props })=>{
|
|
11
|
+
return /*#__PURE__*/ _jsx(FormFieldContext.Provider, {
|
|
12
|
+
value: {
|
|
13
|
+
name: props.name
|
|
14
|
+
},
|
|
15
|
+
children: /*#__PURE__*/ _jsx(Controller, {
|
|
16
|
+
...props
|
|
17
|
+
})
|
|
18
|
+
});
|
|
11
19
|
};
|
|
12
|
-
const useFormField = ()
|
|
20
|
+
const useFormField = ()=>{
|
|
13
21
|
const fieldContext = React.useContext(FormFieldContext);
|
|
14
22
|
const itemContext = React.useContext(FormItemContext);
|
|
15
23
|
const { getFieldState } = useFormContext();
|
|
16
|
-
const formState = useFormState({
|
|
24
|
+
const formState = useFormState({
|
|
25
|
+
name: fieldContext.name
|
|
26
|
+
});
|
|
17
27
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
18
28
|
if (!fieldContext) {
|
|
19
29
|
throw new Error("useFormField should be used within <FormField>");
|
|
@@ -25,27 +35,51 @@ const useFormField = () => {
|
|
|
25
35
|
formItemId: `${id}-form-item`,
|
|
26
36
|
formDescriptionId: `${id}-form-item-description`,
|
|
27
37
|
formMessageId: `${id}-form-item-message`,
|
|
28
|
-
...fieldState
|
|
38
|
+
...fieldState
|
|
29
39
|
};
|
|
30
40
|
};
|
|
31
|
-
const FormItemContext = React.createContext({});
|
|
41
|
+
const FormItemContext = /*#__PURE__*/ React.createContext({});
|
|
32
42
|
function FormItem({ className, ...props }) {
|
|
33
43
|
const id = React.useId();
|
|
34
|
-
return
|
|
44
|
+
return /*#__PURE__*/ _jsx(FormItemContext.Provider, {
|
|
45
|
+
value: {
|
|
46
|
+
id
|
|
47
|
+
},
|
|
48
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
49
|
+
"data-slot": "form-item",
|
|
50
|
+
className: cn("grid gap-2", className),
|
|
51
|
+
...props
|
|
52
|
+
})
|
|
53
|
+
});
|
|
35
54
|
}
|
|
36
55
|
function FormLabel({ className, ...props }) {
|
|
37
56
|
const { error, formItemId } = useFormField();
|
|
38
|
-
return
|
|
57
|
+
return /*#__PURE__*/ _jsx(Label, {
|
|
58
|
+
"data-slot": "form-label",
|
|
59
|
+
"data-error": !!error,
|
|
60
|
+
className: cn("data-[error=true]:text-destructive", className),
|
|
61
|
+
htmlFor: formItemId,
|
|
62
|
+
...props
|
|
63
|
+
});
|
|
39
64
|
}
|
|
40
65
|
function FormControl({ ...props }) {
|
|
41
66
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
|
|
67
|
+
return /*#__PURE__*/ _jsx(Slot, {
|
|
68
|
+
"data-slot": "form-control",
|
|
69
|
+
id: formItemId,
|
|
70
|
+
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
|
|
71
|
+
"aria-invalid": !!error,
|
|
72
|
+
...props
|
|
73
|
+
});
|
|
45
74
|
}
|
|
46
75
|
function FormDescription({ className, ...props }) {
|
|
47
76
|
const { formDescriptionId } = useFormField();
|
|
48
|
-
return
|
|
77
|
+
return /*#__PURE__*/ _jsx("p", {
|
|
78
|
+
"data-slot": "form-description",
|
|
79
|
+
id: formDescriptionId,
|
|
80
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
81
|
+
...props
|
|
82
|
+
});
|
|
49
83
|
}
|
|
50
84
|
function FormMessage({ className, ...props }) {
|
|
51
85
|
const { error, formMessageId } = useFormField();
|
|
@@ -53,7 +87,14 @@ function FormMessage({ className, ...props }) {
|
|
|
53
87
|
if (!body) {
|
|
54
88
|
return null;
|
|
55
89
|
}
|
|
56
|
-
return
|
|
90
|
+
return /*#__PURE__*/ _jsx("p", {
|
|
91
|
+
"data-slot": "form-message",
|
|
92
|
+
id: formMessageId,
|
|
93
|
+
className: cn("text-destructive text-sm", className),
|
|
94
|
+
...props,
|
|
95
|
+
children: body
|
|
96
|
+
});
|
|
57
97
|
}
|
|
58
|
-
export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField
|
|
98
|
+
export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
|
|
99
|
+
|
|
59
100
|
//# sourceMappingURL=form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/form.tsx"],"sourcesContent":["\"use client\";\nimport type * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport * as React from \"react\";\nimport {\n\tController,\n\ttype ControllerProps,\n\ttype FieldPath,\n\ttype FieldValues,\n\tFormProvider,\n\tuseFormContext,\n\tuseFormState,\n} from \"react-hook-form\";\nimport { Label } from \"#shadcn/components/ui/label\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n\tTFieldValues extends FieldValues = FieldValues,\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n\tname: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n\t{} as FormFieldContextValue,\n);\n\nconst FormField = <\n\tTFieldValues extends FieldValues = FieldValues,\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n\t...props\n}: ControllerProps<TFieldValues, TName>) => {\n\treturn (\n\t\t<FormFieldContext.Provider value={{ name: props.name }}>\n\t\t\t<Controller {...props} />\n\t\t</FormFieldContext.Provider>\n\t);\n};\n\nconst useFormField = () => {\n\tconst fieldContext = React.useContext(FormFieldContext);\n\tconst itemContext = React.useContext(FormItemContext);\n\tconst { getFieldState } = useFormContext();\n\tconst formState = useFormState({ name: fieldContext.name });\n\tconst fieldState = getFieldState(fieldContext.name, formState);\n\n\tif (!fieldContext) {\n\t\tthrow new Error(\"useFormField should be used within <FormField>\");\n\t}\n\n\tconst { id } = itemContext;\n\n\treturn {\n\t\tid,\n\t\tname: fieldContext.name,\n\t\tformItemId: `${id}-form-item`,\n\t\tformDescriptionId: `${id}-form-item-description`,\n\t\tformMessageId: `${id}-form-item-message`,\n\t\t...fieldState,\n\t};\n};\n\ntype FormItemContextValue = {\n\tid: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n\t{} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n\tconst id = React.useId();\n\n\treturn (\n\t\t<FormItemContext.Provider value={{ id }}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"form-item\"\n\t\t\t\tclassName={cn(\"grid gap-2\", className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</FormItemContext.Provider>\n\t);\n}\n\nfunction FormLabel({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n\tconst { error, formItemId } = useFormField();\n\n\treturn (\n\t\t<Label\n\t\t\tdata-slot=\"form-label\"\n\t\t\tdata-error={!!error}\n\t\t\tclassName={cn(\"data-[error=true]:text-destructive\", className)}\n\t\t\thtmlFor={formItemId}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n\tconst { error, formItemId, formDescriptionId, formMessageId } =\n\t\tuseFormField();\n\n\treturn (\n\t\t<Slot\n\t\t\tdata-slot=\"form-control\"\n\t\t\tid={formItemId}\n\t\t\taria-describedby={\n\t\t\t\t!error\n\t\t\t\t\t? `${formDescriptionId}`\n\t\t\t\t\t: `${formDescriptionId} ${formMessageId}`\n\t\t\t}\n\t\t\taria-invalid={!!error}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n\tconst { formDescriptionId } = useFormField();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"form-description\"\n\t\t\tid={formDescriptionId}\n\t\t\tclassName={cn(\"text-muted-foreground text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n\tconst { error, formMessageId } = useFormField();\n\tconst body = error ? String(error?.message ?? \"\") : props.children;\n\n\tif (!body) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"form-message\"\n\t\t\tid={formMessageId}\n\t\t\tclassName={cn(\"text-destructive text-sm\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{body}\n\t\t</p>\n\t);\n}\n\nexport {\n\tuseFormField,\n\tForm,\n\tFormItem,\n\tFormLabel,\n\tFormControl,\n\tFormDescription,\n\tFormMessage,\n\tFormField,\n};\n"],"names":["Slot","React","Controller","FormProvider","useFormContext","useFormState","Label","cn","Form","FormFieldContext","createContext","FormField","props","Provider","value","name","useFormField","fieldContext","useContext","itemContext","FormItemContext","getFieldState","formState","fieldState","Error","id","formItemId","formDescriptionId","formMessageId","FormItem","className","useId","div","data-slot","FormLabel","error","data-error","htmlFor","FormControl","aria-describedby","aria-invalid","FormDescription","p","FormMessage","body","String","message","children"],"mappings":"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"}
|
|
@@ -2,30 +2,64 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
3
3
|
import { useForm } from "react-hook-form";
|
|
4
4
|
import { z } from "zod";
|
|
5
|
-
import { Button } from "
|
|
6
|
-
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage
|
|
7
|
-
import { Input } from "
|
|
5
|
+
import { Button } from "./button.js";
|
|
6
|
+
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from "./form.js";
|
|
7
|
+
import { Input } from "./input.js";
|
|
8
8
|
const formSchema = z.object({
|
|
9
9
|
username: z.string().min(2, {
|
|
10
|
-
message: "Username must be at least 2 characters."
|
|
11
|
-
})
|
|
10
|
+
message: "Username must be at least 2 characters."
|
|
11
|
+
})
|
|
12
12
|
});
|
|
13
13
|
const meta = {
|
|
14
|
-
title: "Component/Form"
|
|
14
|
+
title: "Component/Form"
|
|
15
15
|
};
|
|
16
16
|
export default meta;
|
|
17
17
|
export const Demo = {
|
|
18
|
-
render: ()
|
|
18
|
+
render: ()=>{
|
|
19
19
|
const form = useForm({
|
|
20
20
|
resolver: zodResolver(formSchema),
|
|
21
21
|
defaultValues: {
|
|
22
|
-
username: ""
|
|
23
|
-
}
|
|
22
|
+
username: ""
|
|
23
|
+
}
|
|
24
24
|
});
|
|
25
25
|
function onSubmit(values) {
|
|
26
26
|
console.log(values);
|
|
27
27
|
}
|
|
28
|
-
return
|
|
29
|
-
|
|
28
|
+
return /*#__PURE__*/ _jsx(Form, {
|
|
29
|
+
...form,
|
|
30
|
+
children: /*#__PURE__*/ _jsxs("form", {
|
|
31
|
+
onSubmit: form.handleSubmit(onSubmit),
|
|
32
|
+
className: "space-y-8",
|
|
33
|
+
children: [
|
|
34
|
+
/*#__PURE__*/ _jsx(FormField, {
|
|
35
|
+
control: form.control,
|
|
36
|
+
name: "username",
|
|
37
|
+
render: ({ field })=>/*#__PURE__*/ _jsxs(FormItem, {
|
|
38
|
+
children: [
|
|
39
|
+
/*#__PURE__*/ _jsx(FormLabel, {
|
|
40
|
+
children: "Username"
|
|
41
|
+
}),
|
|
42
|
+
/*#__PURE__*/ _jsx(FormControl, {
|
|
43
|
+
children: /*#__PURE__*/ _jsx(Input, {
|
|
44
|
+
placeholder: "shadcn",
|
|
45
|
+
...field
|
|
46
|
+
})
|
|
47
|
+
}),
|
|
48
|
+
/*#__PURE__*/ _jsx(FormDescription, {
|
|
49
|
+
children: "This is your public display name."
|
|
50
|
+
}),
|
|
51
|
+
/*#__PURE__*/ _jsx(FormMessage, {})
|
|
52
|
+
]
|
|
53
|
+
})
|
|
54
|
+
}),
|
|
55
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
56
|
+
type: "submit",
|
|
57
|
+
children: "Submit"
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
}
|
|
30
63
|
};
|
|
64
|
+
|
|
31
65
|
//# sourceMappingURL=form.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/form.stories.tsx"],"sourcesContent":["import { zodResolver } from \"@hookform/resolvers/zod\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { useForm } from \"react-hook-form\";\nimport { z } from \"zod\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport {\n\tForm,\n\tFormControl,\n\tFormDescription,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"#shadcn/components/ui/form\";\nimport { Input } from \"#shadcn/components/ui/input\";\n\nconst formSchema = z.object({\n\tusername: z.string().min(2, {\n\t\tmessage: \"Username must be at least 2 characters.\",\n\t}),\n});\n\nconst meta = {\n\ttitle: \"Component/Form\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => {\n\t\tconst form = useForm<z.infer<typeof formSchema>>({\n\t\t\tresolver: zodResolver(formSchema),\n\t\t\tdefaultValues: {\n\t\t\t\tusername: \"\",\n\t\t\t},\n\t\t});\n\n\t\tfunction onSubmit(values: z.infer<typeof formSchema>) {\n\t\t\tconsole.log(values);\n\t\t}\n\n\t\treturn (\n\t\t\t<Form {...form}>\n\t\t\t\t<form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-8\">\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\tname=\"username\"\n\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t<FormLabel>Username</FormLabel>\n\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t<Input placeholder=\"shadcn\" {...field} />\n\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t<FormDescription>\n\t\t\t\t\t\t\t\t\tThis is your public display name.\n\t\t\t\t\t\t\t\t</FormDescription>\n\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button type=\"submit\">Submit</Button>\n\t\t\t\t</form>\n\t\t\t</Form>\n\t\t);\n\t},\n} satisfies Story;\n"],"names":["zodResolver","useForm","z","Button","Form","FormControl","FormDescription","FormField","FormItem","FormLabel","FormMessage","Input","formSchema","object","username","string","min","message","meta","title","Demo","render","form","resolver","defaultValues","onSubmit","values","console","log","handleSubmit","className","control","name","field","placeholder","type"],"mappings":";AAAA,SAASA,WAAW,QAAQ,0BAA0B;AAEtD,SAASC,OAAO,QAAQ,kBAAkB;AAC1C,SAASC,CAAC,QAAQ,MAAM;AACxB,SAASC,MAAM,QAAQ,cAA+B;AACtD,SACCC,IAAI,EACJC,WAAW,EACXC,eAAe,EACfC,SAAS,EACTC,QAAQ,EACRC,SAAS,EACTC,WAAW,QACL,YAA6B;AACpC,SAASC,KAAK,QAAQ,aAA8B;AAEpD,MAAMC,aAAaV,EAAEW,MAAM,CAAC;IAC3BC,UAAUZ,EAAEa,MAAM,GAAGC,GAAG,CAAC,GAAG;QAC3BC,SAAS;IACV;AACD;AAEA,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ;QACP,MAAMC,OAAOrB,QAAoC;YAChDsB,UAAUvB,YAAYY;YACtBY,eAAe;gBACdV,UAAU;YACX;QACD;QAEA,SAASW,SAASC,MAAkC;YACnDC,QAAQC,GAAG,CAACF;QACb;QAEA,qBACC,KAACtB;YAAM,GAAGkB,IAAI;sBACb,cAAA,MAACA;gBAAKG,UAAUH,KAAKO,YAAY,CAACJ;gBAAWK,WAAU;;kCACtD,KAACvB;wBACAwB,SAAST,KAAKS,OAAO;wBACrBC,MAAK;wBACLX,QAAQ,CAAC,EAAEY,KAAK,EAAE,iBACjB,MAACzB;;kDACA,KAACC;kDAAU;;kDACX,KAACJ;kDACA,cAAA,KAACM;4CAAMuB,aAAY;4CAAU,GAAGD,KAAK;;;kDAEtC,KAAC3B;kDAAgB;;kDAGjB,KAACI;;;;kCAIJ,KAACP;wBAAOgC,MAAK;kCAAS;;;;;IAI1B;AACD,EAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/hover-card.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/hover-card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,kBAAkB,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,iBAAS,SAAS,CAAC,EAClB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAEtD;AAED,iBAAS,gBAAgB,CAAC,EACzB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAIzD;AAED,iBAAS,gBAAgB,CAAC,EACzB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAezD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,14 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
3
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3
|
-
import { cn } from "
|
|
4
|
+
import { cn } from "../../lib/utils.js";
|
|
4
5
|
function HoverCard({ ...props }) {
|
|
5
|
-
return _jsx(HoverCardPrimitive.Root, {
|
|
6
|
+
return /*#__PURE__*/ _jsx(HoverCardPrimitive.Root, {
|
|
7
|
+
"data-slot": "hover-card",
|
|
8
|
+
...props
|
|
9
|
+
});
|
|
6
10
|
}
|
|
7
11
|
function HoverCardTrigger({ ...props }) {
|
|
8
|
-
return
|
|
12
|
+
return /*#__PURE__*/ _jsx(HoverCardPrimitive.Trigger, {
|
|
13
|
+
"data-slot": "hover-card-trigger",
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
9
16
|
}
|
|
10
17
|
function HoverCardContent({ className, align = "center", sideOffset = 4, ...props }) {
|
|
11
|
-
return
|
|
18
|
+
return /*#__PURE__*/ _jsx(HoverCardPrimitive.Portal, {
|
|
19
|
+
"data-slot": "hover-card-portal",
|
|
20
|
+
children: /*#__PURE__*/ _jsx(HoverCardPrimitive.Content, {
|
|
21
|
+
"data-slot": "hover-card-content",
|
|
22
|
+
align: align,
|
|
23
|
+
sideOffset: sideOffset,
|
|
24
|
+
className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", className),
|
|
25
|
+
...props
|
|
26
|
+
})
|
|
27
|
+
});
|
|
12
28
|
}
|
|
13
29
|
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
|
30
|
+
|
|
14
31
|
//# sourceMappingURL=hover-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\nimport type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nfunction HoverCard({\n\t...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n\treturn <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n\t...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n\treturn (\n\t\t<HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n\t);\n}\n\nfunction HoverCardContent({\n\tclassName,\n\talign = \"center\",\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n\treturn (\n\t\t<HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n\t\t\t<HoverCardPrimitive.Content\n\t\t\t\tdata-slot=\"hover-card-content\"\n\t\t\t\talign={align}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</HoverCardPrimitive.Portal>\n\t);\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"names":["HoverCardPrimitive","cn","HoverCard","props","Root","data-slot","HoverCardTrigger","Trigger","HoverCardContent","className","align","sideOffset","Portal","Content"],"mappings":"AAAA;;AACA,YAAYA,wBAAwB,6BAA6B;AAGjE,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,UAAU,EAClB,GAAGC,OACmD;IACtD,qBAAO,KAACH,mBAAmBI,IAAI;QAACC,aAAU;QAAc,GAAGF,KAAK;;AACjE;AAEA,SAASG,iBAAiB,EACzB,GAAGH,OACsD;IACzD,qBACC,KAACH,mBAAmBO,OAAO;QAACF,aAAU;QAAsB,GAAGF,KAAK;;AAEtE;AAEA,SAASK,iBAAiB,EACzBC,SAAS,EACTC,QAAQ,QAAQ,EAChBC,aAAa,CAAC,EACd,GAAGR,OACsD;IACzD,qBACC,KAACH,mBAAmBY,MAAM;QAACP,aAAU;kBACpC,cAAA,KAACL,mBAAmBa,OAAO;YAC1BR,aAAU;YACVK,OAAOA;YACPC,YAAYA;YACZF,WAAWR,GACV,qeACAQ;YAEA,GAAGN,KAAK;;;AAIb;AAEA,SAASD,SAAS,EAAEI,gBAAgB,EAAEE,gBAAgB,GAAG"}
|
|
@@ -1,12 +1,58 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Avatar, AvatarFallback, AvatarImage
|
|
3
|
-
import { Button } from "
|
|
4
|
-
import { HoverCard, HoverCardContent, HoverCardTrigger
|
|
2
|
+
import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
|
|
3
|
+
import { Button } from "./button.js";
|
|
4
|
+
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./hover-card.js";
|
|
5
5
|
const meta = {
|
|
6
|
-
title: "Component/Hover card"
|
|
6
|
+
title: "Component/Hover card"
|
|
7
7
|
};
|
|
8
8
|
export default meta;
|
|
9
9
|
export const Demo = {
|
|
10
|
-
render: ()
|
|
10
|
+
render: ()=>/*#__PURE__*/ _jsxs(HoverCard, {
|
|
11
|
+
children: [
|
|
12
|
+
/*#__PURE__*/ _jsx(HoverCardTrigger, {
|
|
13
|
+
asChild: true,
|
|
14
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
|
15
|
+
variant: "link",
|
|
16
|
+
children: "@nextjs"
|
|
17
|
+
})
|
|
18
|
+
}),
|
|
19
|
+
/*#__PURE__*/ _jsx(HoverCardContent, {
|
|
20
|
+
className: "w-80",
|
|
21
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
22
|
+
className: "flex justify-between gap-4",
|
|
23
|
+
children: [
|
|
24
|
+
/*#__PURE__*/ _jsxs(Avatar, {
|
|
25
|
+
children: [
|
|
26
|
+
/*#__PURE__*/ _jsx(AvatarImage, {
|
|
27
|
+
src: "https://github.com/vercel.png"
|
|
28
|
+
}),
|
|
29
|
+
/*#__PURE__*/ _jsx(AvatarFallback, {
|
|
30
|
+
children: "VC"
|
|
31
|
+
})
|
|
32
|
+
]
|
|
33
|
+
}),
|
|
34
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
35
|
+
className: "space-y-1",
|
|
36
|
+
children: [
|
|
37
|
+
/*#__PURE__*/ _jsx("h4", {
|
|
38
|
+
className: "text-sm font-semibold",
|
|
39
|
+
children: "@nextjs"
|
|
40
|
+
}),
|
|
41
|
+
/*#__PURE__*/ _jsx("p", {
|
|
42
|
+
className: "text-sm",
|
|
43
|
+
children: "The React Framework – created and maintained by @vercel."
|
|
44
|
+
}),
|
|
45
|
+
/*#__PURE__*/ _jsx("div", {
|
|
46
|
+
className: "text-muted-foreground text-xs",
|
|
47
|
+
children: "Joined December 2021"
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
]
|
|
55
|
+
})
|
|
11
56
|
};
|
|
57
|
+
|
|
12
58
|
//# sourceMappingURL=hover-card.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/hover-card.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\tAvatar,\n\tAvatarFallback,\n\tAvatarImage,\n} from \"#shadcn/components/ui/avatar\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport {\n\tHoverCard,\n\tHoverCardContent,\n\tHoverCardTrigger,\n} from \"#shadcn/components/ui/hover-card\";\n\nconst meta = {\n\ttitle: \"Component/Hover card\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<HoverCard>\n\t\t\t<HoverCardTrigger asChild>\n\t\t\t\t<Button variant=\"link\">@nextjs</Button>\n\t\t\t</HoverCardTrigger>\n\t\t\t<HoverCardContent className=\"w-80\">\n\t\t\t\t<div className=\"flex justify-between gap-4\">\n\t\t\t\t\t<Avatar>\n\t\t\t\t\t\t<AvatarImage src=\"https://github.com/vercel.png\" />\n\t\t\t\t\t\t<AvatarFallback>VC</AvatarFallback>\n\t\t\t\t\t</Avatar>\n\t\t\t\t\t<div className=\"space-y-1\">\n\t\t\t\t\t\t<h4 className=\"text-sm font-semibold\">@nextjs</h4>\n\t\t\t\t\t\t<p className=\"text-sm\">\n\t\t\t\t\t\t\tThe React Framework – created and maintained by @vercel.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<div className=\"text-muted-foreground text-xs\">\n\t\t\t\t\t\t\tJoined December 2021\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</HoverCardContent>\n\t\t</HoverCard>\n\t),\n} satisfies Story;\n"],"names":["Avatar","AvatarFallback","AvatarImage","Button","HoverCard","HoverCardContent","HoverCardTrigger","meta","title","Demo","render","asChild","variant","className","div","src","h4","p"],"mappings":";AACA,SACCA,MAAM,EACNC,cAAc,EACdC,WAAW,QACL,cAA+B;AACtC,SAASC,MAAM,QAAQ,cAA+B;AACtD,SACCC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,QACV,kBAAmC;AAE1C,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,MAACN;;8BACA,KAACE;oBAAiBK,OAAO;8BACxB,cAAA,KAACR;wBAAOS,SAAQ;kCAAO;;;8BAExB,KAACP;oBAAiBQ,WAAU;8BAC3B,cAAA,MAACC;wBAAID,WAAU;;0CACd,MAACb;;kDACA,KAACE;wCAAYa,KAAI;;kDACjB,KAACd;kDAAe;;;;0CAEjB,MAACa;gCAAID,WAAU;;kDACd,KAACG;wCAAGH,WAAU;kDAAwB;;kDACtC,KAACI;wCAAEJ,WAAU;kDAAU;;kDAGvB,KAACC;wCAAID,WAAU;kDAAgC;;;;;;;;;AAQrD,EAAkB"}
|
|
@@ -2,24 +2,52 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
3
3
|
import { MinusIcon } from "lucide-react";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { cn } from "
|
|
5
|
+
import { cn } from "../../lib/utils.js";
|
|
6
6
|
function InputOTP({ className, containerClassName, ...props }) {
|
|
7
|
-
return
|
|
7
|
+
return /*#__PURE__*/ _jsx(OTPInput, {
|
|
8
|
+
"data-slot": "input-otp",
|
|
9
|
+
containerClassName: cn("flex items-center gap-2 has-disabled:opacity-50", containerClassName),
|
|
10
|
+
className: cn("disabled:cursor-not-allowed", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
8
13
|
}
|
|
9
14
|
function InputOTPGroup({ className, ...props }) {
|
|
10
|
-
return
|
|
15
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
16
|
+
"data-slot": "input-otp-group",
|
|
17
|
+
className: cn("flex items-center", className),
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
11
20
|
}
|
|
12
21
|
function InputOTPSlot({ index, className, ...props }) {
|
|
13
22
|
const inputOTPContext = React.useContext(OTPInputContext);
|
|
14
23
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
15
|
-
return
|
|
24
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
25
|
+
"data-slot": "input-otp-slot",
|
|
26
|
+
"data-active": isActive,
|
|
27
|
+
className: cn("data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]", className),
|
|
28
|
+
...props,
|
|
29
|
+
children: [
|
|
30
|
+
char,
|
|
31
|
+
hasFakeCaret && /*#__PURE__*/ _jsx("div", {
|
|
32
|
+
className: "pointer-events-none absolute inset-0 flex items-center justify-center",
|
|
33
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
34
|
+
className: "animate-caret-blink bg-foreground h-4 w-px duration-1000"
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
});
|
|
16
39
|
}
|
|
17
40
|
function InputOTPSeparator({ ...props }) {
|
|
18
|
-
return
|
|
19
|
-
// biome-ignore lint/a11y/useFocusableInteractive: FIXME: unchanged shadcn
|
|
41
|
+
return(// biome-ignore lint/a11y/useFocusableInteractive: FIXME: unchanged shadcn
|
|
20
42
|
// biome-ignore lint/a11y/useSemanticElements: FIXME: unchanged shadcn
|
|
21
43
|
// biome-ignore lint/a11y/useAriaPropsForRole: FIXME: unchanged shadcn
|
|
22
|
-
_jsx("div", {
|
|
44
|
+
/*#__PURE__*/ _jsx("div", {
|
|
45
|
+
"data-slot": "input-otp-separator",
|
|
46
|
+
role: "separator",
|
|
47
|
+
...props,
|
|
48
|
+
children: /*#__PURE__*/ _jsx(MinusIcon, {})
|
|
49
|
+
}));
|
|
23
50
|
}
|
|
24
51
|
export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
|
|
52
|
+
|
|
25
53
|
//# sourceMappingURL=input-otp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/input-otp.tsx"],"sourcesContent":["import { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nfunction InputOTP({\n\tclassName,\n\tcontainerClassName,\n\t...props\n}: React.ComponentProps<typeof OTPInput> & {\n\tcontainerClassName?: string;\n}) {\n\treturn (\n\t\t<OTPInput\n\t\t\tdata-slot=\"input-otp\"\n\t\t\tcontainerClassName={cn(\n\t\t\t\t\"flex items-center gap-2 has-disabled:opacity-50\",\n\t\t\t\tcontainerClassName,\n\t\t\t)}\n\t\t\tclassName={cn(\"disabled:cursor-not-allowed\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"input-otp-group\"\n\t\t\tclassName={cn(\"flex items-center\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputOTPSlot({\n\tindex,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tindex: number;\n}) {\n\tconst inputOTPContext = React.useContext(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"input-otp-slot\"\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{char}\n\t\t\t{hasFakeCaret && (\n\t\t\t\t<div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n\t\t\t\t\t<div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t// biome-ignore lint/a11y/useFocusableInteractive: FIXME: unchanged shadcn\n\t\t// biome-ignore lint/a11y/useSemanticElements: FIXME: unchanged shadcn\n\t\t// biome-ignore lint/a11y/useAriaPropsForRole: FIXME: unchanged shadcn\n\t\t<div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n\t\t\t<MinusIcon />\n\t\t</div>\n\t);\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"names":["OTPInput","OTPInputContext","MinusIcon","React","cn","InputOTP","className","containerClassName","props","data-slot","InputOTPGroup","div","InputOTPSlot","index","inputOTPContext","useContext","char","hasFakeCaret","isActive","slots","data-active","InputOTPSeparator","role"],"mappings":";AAAA,SAASA,QAAQ,EAAEC,eAAe,QAAQ,YAAY;AACtD,SAASC,SAAS,QAAQ,eAAe;AACzC,YAAYC,WAAW,QAAQ;AAE/B,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,SAAS,EACjBC,SAAS,EACTC,kBAAkB,EAClB,GAAGC,OAGH;IACA,qBACC,KAACR;QACAS,aAAU;QACVF,oBAAoBH,GACnB,mDACAG;QAEDD,WAAWF,GAAG,+BAA+BE;QAC5C,GAAGE,KAAK;;AAGZ;AAEA,SAASE,cAAc,EAAEJ,SAAS,EAAE,GAAGE,OAAoC;IAC1E,qBACC,KAACG;QACAF,aAAU;QACVH,WAAWF,GAAG,qBAAqBE;QAClC,GAAGE,KAAK;;AAGZ;AAEA,SAASI,aAAa,EACrBC,KAAK,EACLP,SAAS,EACT,GAAGE,OAGH;IACA,MAAMM,kBAAkBX,MAAMY,UAAU,CAACd;IACzC,MAAM,EAAEe,IAAI,EAAEC,YAAY,EAAEC,QAAQ,EAAE,GAAGJ,iBAAiBK,KAAK,CAACN,MAAM,IAAI,CAAC;IAE3E,qBACC,MAACF;QACAF,aAAU;QACVW,eAAaF;QACbZ,WAAWF,GACV,4fACAE;QAEA,GAAGE,KAAK;;YAERQ;YACAC,8BACA,KAACN;gBAAIL,WAAU;0BACd,cAAA,KAACK;oBAAIL,WAAU;;;;;AAKpB;AAEA,SAASe,kBAAkB,EAAE,GAAGb,OAAoC;IACnE,OACC,0EAA0E;IAC1E,sEAAsE;IACtE,sEAAsE;kBACtE,KAACG;QAAIF,aAAU;QAAsBa,MAAK;QAAa,GAAGd,KAAK;kBAC9D,cAAA,KAACN;;AAGJ;AAEA,SAASG,QAAQ,EAAEK,aAAa,EAAEE,YAAY,EAAES,iBAAiB,GAAG"}
|
|
@@ -1,10 +1,42 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot
|
|
2
|
+
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from "./input-otp.js";
|
|
3
3
|
const meta = {
|
|
4
|
-
title: "Component/Input OTP"
|
|
4
|
+
title: "Component/Input OTP"
|
|
5
5
|
};
|
|
6
6
|
export default meta;
|
|
7
7
|
export const Demo = {
|
|
8
|
-
render: ()
|
|
8
|
+
render: ()=>/*#__PURE__*/ _jsxs(InputOTP, {
|
|
9
|
+
maxLength: 6,
|
|
10
|
+
children: [
|
|
11
|
+
/*#__PURE__*/ _jsxs(InputOTPGroup, {
|
|
12
|
+
children: [
|
|
13
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
14
|
+
index: 0
|
|
15
|
+
}),
|
|
16
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
17
|
+
index: 1
|
|
18
|
+
}),
|
|
19
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
20
|
+
index: 2
|
|
21
|
+
})
|
|
22
|
+
]
|
|
23
|
+
}),
|
|
24
|
+
/*#__PURE__*/ _jsx(InputOTPSeparator, {}),
|
|
25
|
+
/*#__PURE__*/ _jsxs(InputOTPGroup, {
|
|
26
|
+
children: [
|
|
27
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
28
|
+
index: 3
|
|
29
|
+
}),
|
|
30
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
31
|
+
index: 4
|
|
32
|
+
}),
|
|
33
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
34
|
+
index: 5
|
|
35
|
+
})
|
|
36
|
+
]
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
})
|
|
9
40
|
};
|
|
41
|
+
|
|
10
42
|
//# sourceMappingURL=input-otp.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/input-otp.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\tInputOTP,\n\tInputOTPGroup,\n\tInputOTPSeparator,\n\tInputOTPSlot,\n} from \"#shadcn/components/ui/input-otp\";\n\nconst meta = {\n\ttitle: \"Component/Input OTP\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<InputOTP maxLength={6}>\n\t\t\t<InputOTPGroup>\n\t\t\t\t<InputOTPSlot index={0} />\n\t\t\t\t<InputOTPSlot index={1} />\n\t\t\t\t<InputOTPSlot index={2} />\n\t\t\t</InputOTPGroup>\n\t\t\t<InputOTPSeparator />\n\t\t\t<InputOTPGroup>\n\t\t\t\t<InputOTPSlot index={3} />\n\t\t\t\t<InputOTPSlot index={4} />\n\t\t\t\t<InputOTPSlot index={5} />\n\t\t\t</InputOTPGroup>\n\t\t</InputOTP>\n\t),\n} satisfies Story;\n"],"names":["InputOTP","InputOTPGroup","InputOTPSeparator","InputOTPSlot","meta","title","Demo","render","maxLength","index"],"mappings":";AACA,SACCA,QAAQ,EACRC,aAAa,EACbC,iBAAiB,EACjBC,YAAY,QACN,iBAAkC;AAEzC,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,MAACP;YAASQ,WAAW;;8BACpB,MAACP;;sCACA,KAACE;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;;;8BAEtB,KAACP;8BACD,MAACD;;sCACA,KAACE;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;;;;;AAIzB,EAAkB"}
|