@codefast/ui 0.0.9 → 0.0.11
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/accordion.d.mts +7 -7
- package/dist/accordion.d.ts +7 -7
- package/dist/accordion.js +42 -32
- package/dist/accordion.js.map +1 -1
- package/dist/accordion.mjs +42 -32
- package/dist/accordion.mjs.map +1 -1
- package/dist/alert-dialog.d.mts +12 -12
- package/dist/alert-dialog.d.ts +12 -12
- package/dist/alert-dialog.js +47 -75
- package/dist/alert-dialog.js.map +1 -1
- package/dist/alert-dialog.mjs +47 -75
- package/dist/alert-dialog.mjs.map +1 -1
- package/dist/alert.js +5 -30
- package/dist/alert.js.map +1 -1
- package/dist/alert.mjs +5 -30
- package/dist/alert.mjs.map +1 -1
- package/dist/aspect-ratio.d.mts +1 -1
- package/dist/aspect-ratio.d.ts +1 -1
- package/dist/aspect-ratio.js.map +1 -1
- package/dist/aspect-ratio.mjs.map +1 -1
- package/dist/avatar.d.mts +6 -6
- package/dist/avatar.d.ts +6 -6
- package/dist/avatar.js +3 -16
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.mjs +3 -16
- package/dist/avatar.mjs.map +1 -1
- package/dist/badge.js +1 -5
- package/dist/badge.js.map +1 -1
- package/dist/badge.mjs +1 -5
- package/dist/badge.mjs.map +1 -1
- package/dist/blockquote.js +4 -6
- package/dist/blockquote.js.map +1 -1
- package/dist/blockquote.mjs +4 -6
- package/dist/blockquote.mjs.map +1 -1
- package/dist/box.js +4 -6
- package/dist/box.js.map +1 -1
- package/dist/box.mjs +4 -6
- package/dist/box.mjs.map +1 -1
- package/dist/breadcrumb.js +30 -67
- package/dist/breadcrumb.js.map +1 -1
- package/dist/breadcrumb.mjs +30 -67
- package/dist/breadcrumb.mjs.map +1 -1
- package/dist/button.d.mts +1 -0
- package/dist/button.d.ts +1 -0
- package/dist/button.js +3 -2
- package/dist/button.mjs +2 -1
- package/dist/calendar.js +7 -19
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.mjs +6 -18
- package/dist/calendar.mjs.map +1 -1
- package/dist/card.js +8 -55
- package/dist/card.js.map +1 -1
- package/dist/card.mjs +8 -55
- package/dist/card.mjs.map +1 -1
- package/dist/carousel.js +58 -64
- package/dist/carousel.js.map +1 -1
- package/dist/carousel.mjs +57 -63
- package/dist/carousel.mjs.map +1 -1
- package/dist/checkbox-cards.d.mts +15 -0
- package/dist/checkbox-cards.d.ts +15 -0
- package/dist/checkbox-cards.js +56 -0
- package/dist/checkbox-cards.js.map +1 -0
- package/dist/checkbox-cards.mjs +56 -0
- package/dist/checkbox-cards.mjs.map +1 -0
- package/dist/checkbox-group.d.mts +13 -0
- package/dist/checkbox-group.d.ts +13 -0
- package/dist/checkbox-group.js +44 -0
- package/dist/checkbox-group.js.map +1 -0
- package/dist/checkbox-group.mjs +44 -0
- package/dist/checkbox-group.mjs.map +1 -0
- package/dist/checkbox-group.primitive.d.mts +38 -0
- package/dist/checkbox-group.primitive.d.ts +38 -0
- package/dist/checkbox-group.primitive.js +19 -0
- package/dist/checkbox-group.primitive.js.map +1 -0
- package/dist/checkbox-group.primitive.mjs +19 -0
- package/dist/checkbox-group.primitive.mjs.map +1 -0
- package/dist/checkbox.d.mts +2 -2
- package/dist/checkbox.d.ts +2 -2
- package/dist/checkbox.js +5 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.mjs +5 -1
- package/dist/checkbox.mjs.map +1 -1
- package/dist/chunk-3ZZ3SRTJ.js +148 -0
- package/dist/chunk-3ZZ3SRTJ.js.map +1 -0
- package/dist/{chunk-MJDKD2K4.mjs → chunk-6J6VPUBP.mjs} +9 -10
- package/dist/chunk-6J6VPUBP.mjs.map +1 -0
- package/dist/{chunk-PKB2G726.js → chunk-7S4DOWLB.js} +9 -10
- package/dist/chunk-7S4DOWLB.js.map +1 -0
- package/dist/{chunk-JOJW7BBY.js → chunk-BWCO2ZQQ.js} +29 -8
- package/dist/chunk-BWCO2ZQQ.js.map +1 -0
- package/dist/chunk-EWS3N4OZ.mjs +148 -0
- package/dist/chunk-EWS3N4OZ.mjs.map +1 -0
- package/dist/{chunk-PIU627A3.mjs → chunk-FGI3JA75.mjs} +1 -1
- package/dist/chunk-FGI3JA75.mjs.map +1 -0
- package/dist/{chunk-GRKABVK4.js → chunk-IVYGBU4G.js} +1 -1
- package/dist/chunk-IVYGBU4G.js.map +1 -0
- package/dist/chunk-IXEJO7ZP.js +86 -0
- package/dist/chunk-IXEJO7ZP.js.map +1 -0
- package/dist/chunk-JULVZPCS.mjs +120 -0
- package/dist/chunk-JULVZPCS.mjs.map +1 -0
- package/dist/chunk-LNSEYAPJ.js +121 -0
- package/dist/chunk-LNSEYAPJ.js.map +1 -0
- package/dist/chunk-MDSPK3M6.js +54 -0
- package/dist/chunk-MDSPK3M6.js.map +1 -0
- package/dist/chunk-MOJNV3XZ.js +120 -0
- package/dist/chunk-MOJNV3XZ.js.map +1 -0
- package/dist/chunk-OK63Q6EJ.mjs +121 -0
- package/dist/chunk-OK63Q6EJ.mjs.map +1 -0
- package/dist/chunk-V2254PQL.mjs +54 -0
- package/dist/chunk-V2254PQL.mjs.map +1 -0
- package/dist/chunk-WFXEFJRB.mjs +77 -0
- package/dist/chunk-WFXEFJRB.mjs.map +1 -0
- package/dist/chunk-XCKLBP2V.mjs +86 -0
- package/dist/chunk-XCKLBP2V.mjs.map +1 -0
- package/dist/code.js +4 -6
- package/dist/code.js.map +1 -1
- package/dist/code.mjs +4 -6
- package/dist/code.mjs.map +1 -1
- package/dist/collapsible.d.mts +3 -3
- package/dist/collapsible.d.ts +3 -3
- package/dist/collapsible.js.map +1 -1
- package/dist/collapsible.mjs.map +1 -1
- package/dist/command.d.mts +11 -10
- package/dist/command.d.ts +11 -10
- package/dist/command.js +10 -44
- package/dist/command.js.map +1 -1
- package/dist/command.mjs +10 -44
- package/dist/command.mjs.map +1 -1
- package/dist/container.js +4 -6
- package/dist/container.js.map +1 -1
- package/dist/container.mjs +4 -6
- package/dist/container.mjs.map +1 -1
- package/dist/context-menu.d.mts +18 -18
- package/dist/context-menu.d.ts +18 -18
- package/dist/context-menu.js +108 -124
- package/dist/context-menu.js.map +1 -1
- package/dist/context-menu.mjs +109 -125
- package/dist/context-menu.mjs.map +1 -1
- package/dist/data-table.d.mts +1 -1
- package/dist/data-table.d.ts +1 -1
- package/dist/data-table.js +131 -149
- package/dist/data-table.js.map +1 -1
- package/dist/data-table.mjs +120 -138
- package/dist/data-table.mjs.map +1 -1
- package/dist/dialog.d.mts +9 -9
- package/dist/dialog.d.ts +9 -9
- package/dist/dialog.js +2 -2
- package/dist/dialog.mjs +1 -1
- package/dist/drawer.d.mts +2 -2
- package/dist/drawer.d.ts +2 -2
- package/dist/drawer.js +30 -63
- package/dist/drawer.js.map +1 -1
- package/dist/drawer.mjs +30 -63
- package/dist/drawer.mjs.map +1 -1
- package/dist/dropdown-menu.d.mts +16 -16
- package/dist/dropdown-menu.d.ts +16 -16
- package/dist/dropdown-menu.js +2 -2
- package/dist/dropdown-menu.mjs +1 -1
- package/dist/em.js +4 -6
- package/dist/em.js.map +1 -1
- package/dist/em.mjs +4 -6
- package/dist/em.mjs.map +1 -1
- package/dist/form.js +23 -54
- package/dist/form.js.map +1 -1
- package/dist/form.mjs +23 -54
- package/dist/form.mjs.map +1 -1
- package/dist/heading.js +4 -6
- package/dist/heading.js.map +1 -1
- package/dist/heading.mjs +4 -6
- package/dist/heading.mjs.map +1 -1
- package/dist/hover-card.d.mts +4 -4
- package/dist/hover-card.d.ts +4 -4
- package/dist/hover-card.js +15 -13
- package/dist/hover-card.js.map +1 -1
- package/dist/hover-card.mjs +15 -13
- package/dist/hover-card.mjs.map +1 -1
- package/dist/input-otp.js +32 -37
- package/dist/input-otp.js.map +1 -1
- package/dist/input-otp.mjs +32 -37
- package/dist/input-otp.mjs.map +1 -1
- package/dist/input.js +10 -14
- package/dist/input.js.map +1 -1
- package/dist/input.mjs +10 -14
- package/dist/input.mjs.map +1 -1
- package/dist/kbd.js +14 -16
- package/dist/kbd.js.map +1 -1
- package/dist/kbd.mjs +14 -16
- package/dist/kbd.mjs.map +1 -1
- package/dist/label.d.mts +2 -2
- package/dist/label.d.ts +2 -2
- package/dist/label.js +2 -2
- package/dist/label.mjs +1 -1
- package/dist/menubar.d.mts +21 -21
- package/dist/menubar.d.ts +21 -21
- package/dist/menubar.js +73 -93
- package/dist/menubar.js.map +1 -1
- package/dist/menubar.mjs +74 -94
- package/dist/menubar.mjs.map +1 -1
- package/dist/navigation-menu.d.mts +16 -16
- package/dist/navigation-menu.d.ts +16 -16
- package/dist/navigation-menu.js +89 -93
- package/dist/navigation-menu.js.map +1 -1
- package/dist/navigation-menu.mjs +89 -93
- package/dist/navigation-menu.mjs.map +1 -1
- package/dist/pagination.js +19 -58
- package/dist/pagination.js.map +1 -1
- package/dist/pagination.mjs +19 -58
- package/dist/pagination.mjs.map +1 -1
- package/dist/popover.d.mts +7 -7
- package/dist/popover.d.ts +7 -7
- package/dist/popover.js +16 -21
- package/dist/popover.js.map +1 -1
- package/dist/popover.mjs +16 -21
- package/dist/popover.mjs.map +1 -1
- package/dist/pre.js +4 -6
- package/dist/pre.js.map +1 -1
- package/dist/pre.mjs +4 -6
- package/dist/pre.mjs.map +1 -1
- package/dist/progress.d.mts +2 -2
- package/dist/progress.d.ts +2 -2
- package/dist/progress.js +1 -4
- package/dist/progress.js.map +1 -1
- package/dist/progress.mjs +1 -4
- package/dist/progress.mjs.map +1 -1
- package/dist/quote.js +4 -6
- package/dist/quote.js.map +1 -1
- package/dist/quote.mjs +4 -6
- package/dist/quote.mjs.map +1 -1
- package/dist/radio-cards.d.mts +9 -0
- package/dist/radio-cards.d.ts +9 -0
- package/dist/radio-cards.js +36 -0
- package/dist/radio-cards.js.map +1 -0
- package/dist/radio-cards.mjs +36 -0
- package/dist/radio-cards.mjs.map +1 -0
- package/dist/radio-group.d.mts +4 -4
- package/dist/radio-group.d.ts +4 -4
- package/dist/radio-group.js +3 -9
- package/dist/radio-group.js.map +1 -1
- package/dist/radio-group.mjs +3 -9
- package/dist/radio-group.mjs.map +1 -1
- package/dist/radio.d.mts +8 -0
- package/dist/radio.d.ts +8 -0
- package/dist/radio.js +35 -0
- package/dist/radio.js.map +1 -0
- package/dist/radio.mjs +35 -0
- package/dist/radio.mjs.map +1 -0
- package/dist/resizable.d.mts +2 -2
- package/dist/resizable.d.ts +2 -2
- package/dist/resizable.js +3 -5
- package/dist/resizable.js.map +1 -1
- package/dist/resizable.mjs +3 -5
- package/dist/resizable.mjs.map +1 -1
- package/dist/scroll-area.d.mts +4 -4
- package/dist/scroll-area.d.ts +4 -4
- package/dist/scroll-area.js +23 -29
- package/dist/scroll-area.js.map +1 -1
- package/dist/scroll-area.mjs +23 -29
- package/dist/scroll-area.mjs.map +1 -1
- package/dist/section.js +4 -6
- package/dist/section.js.map +1 -1
- package/dist/section.mjs +4 -6
- package/dist/section.mjs.map +1 -1
- package/dist/segmented.d.mts +22 -0
- package/dist/segmented.d.ts +22 -0
- package/dist/segmented.js +126 -0
- package/dist/segmented.js.map +1 -0
- package/dist/segmented.mjs +126 -0
- package/dist/segmented.mjs.map +1 -0
- package/dist/select.d.mts +17 -17
- package/dist/select.d.ts +17 -17
- package/dist/select.js +2 -2
- package/dist/select.mjs +1 -1
- package/dist/separator.d.mts +2 -2
- package/dist/separator.d.ts +2 -2
- package/dist/separator.js +1 -5
- package/dist/separator.js.map +1 -1
- package/dist/separator.mjs +1 -5
- package/dist/separator.mjs.map +1 -1
- package/dist/sheet.d.mts +9 -9
- package/dist/sheet.d.ts +9 -9
- package/dist/sheet.js +35 -76
- package/dist/sheet.js.map +1 -1
- package/dist/sheet.mjs +35 -76
- package/dist/sheet.mjs.map +1 -1
- package/dist/skeleton.js +1 -7
- package/dist/skeleton.js.map +1 -1
- package/dist/skeleton.mjs +1 -7
- package/dist/skeleton.mjs.map +1 -1
- package/dist/slider.d.mts +2 -2
- package/dist/slider.d.ts +2 -2
- package/dist/slider.js +10 -5
- package/dist/slider.js.map +1 -1
- package/dist/slider.mjs +10 -5
- package/dist/slider.mjs.map +1 -1
- package/dist/sonner.js +1 -6
- package/dist/sonner.js.map +1 -1
- package/dist/sonner.mjs +1 -6
- package/dist/sonner.mjs.map +1 -1
- package/dist/spinner.d.mts +8 -0
- package/dist/spinner.d.ts +8 -0
- package/dist/spinner.js +8 -0
- package/dist/spinner.js.map +1 -0
- package/dist/spinner.mjs +8 -0
- package/dist/spinner.mjs.map +1 -0
- package/dist/strong.js +4 -6
- package/dist/strong.js.map +1 -1
- package/dist/strong.mjs +4 -6
- package/dist/strong.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/switch.d.mts +2 -2
- package/dist/switch.d.ts +2 -2
- package/dist/switch.js +2 -1
- package/dist/switch.js.map +1 -1
- package/dist/switch.mjs +2 -1
- package/dist/switch.mjs.map +1 -1
- package/dist/table.js +22 -80
- package/dist/table.js.map +1 -1
- package/dist/table.mjs +22 -80
- package/dist/table.mjs.map +1 -1
- package/dist/tabs.d.mts +7 -7
- package/dist/tabs.d.ts +7 -7
- package/dist/tabs.js +4 -2
- package/dist/tabs.js.map +1 -1
- package/dist/tabs.mjs +4 -2
- package/dist/tabs.mjs.map +1 -1
- package/dist/text.js +4 -6
- package/dist/text.js.map +1 -1
- package/dist/text.mjs +4 -6
- package/dist/text.mjs.map +1 -1
- package/dist/textarea.js +14 -15
- package/dist/textarea.js.map +1 -1
- package/dist/textarea.mjs +14 -15
- package/dist/textarea.mjs.map +1 -1
- package/dist/toggle-group.d.mts +2 -2
- package/dist/toggle-group.d.ts +2 -2
- package/dist/toggle-group.js +41 -34
- package/dist/toggle-group.js.map +1 -1
- package/dist/toggle-group.mjs +40 -33
- package/dist/toggle-group.mjs.map +1 -1
- package/dist/toggle.d.mts +2 -2
- package/dist/toggle.d.ts +2 -2
- package/dist/toggle.js +2 -2
- package/dist/toggle.mjs +1 -1
- package/dist/tooltip.d.mts +7 -7
- package/dist/tooltip.d.ts +7 -7
- package/dist/tooltip.js +15 -20
- package/dist/tooltip.js.map +1 -1
- package/dist/tooltip.mjs +15 -20
- package/dist/tooltip.mjs.map +1 -1
- package/package.json +43 -6
- package/src/accordion.tsx +53 -43
- package/src/alert-dialog.tsx +73 -92
- package/src/alert.tsx +24 -41
- package/src/aspect-ratio.tsx +2 -1
- package/src/avatar.tsx +19 -36
- package/src/badge.tsx +3 -7
- package/src/blockquote.tsx +9 -8
- package/src/box.tsx +7 -6
- package/src/breadcrumb.tsx +54 -63
- package/src/button.tsx +42 -16
- package/src/calendar.tsx +6 -22
- package/src/card.tsx +40 -56
- package/src/carousel.tsx +95 -81
- package/src/checkbox-cards.tsx +68 -0
- package/src/checkbox-group.primitive.tsx +199 -0
- package/src/checkbox-group.tsx +57 -0
- package/src/checkbox.tsx +10 -6
- package/src/code.tsx +8 -6
- package/src/collapsible.tsx +4 -3
- package/src/command.tsx +53 -90
- package/src/container.tsx +8 -6
- package/src/context-menu.tsx +163 -175
- package/src/data-table.tsx +26 -43
- package/src/dialog.tsx +58 -77
- package/src/drawer.tsx +48 -78
- package/src/dropdown-menu.tsx +143 -154
- package/src/em.tsx +8 -6
- package/src/form.tsx +61 -86
- package/src/heading.tsx +8 -6
- package/src/hover-card.tsx +22 -20
- package/src/input-otp.tsx +50 -48
- package/src/input.tsx +14 -15
- package/src/kbd.tsx +18 -16
- package/src/label.tsx +5 -5
- package/src/menubar.tsx +133 -149
- package/src/navigation-menu.tsx +110 -114
- package/src/pagination.tsx +26 -48
- package/src/popover.tsx +29 -31
- package/src/pre.tsx +8 -6
- package/src/progress.tsx +6 -9
- package/src/quote.tsx +8 -6
- package/src/radio-cards.tsx +50 -0
- package/src/radio-group.tsx +14 -24
- package/src/radio.tsx +44 -0
- package/src/resizable.tsx +5 -7
- package/src/scroll-area.tsx +29 -40
- package/src/section.tsx +8 -6
- package/src/segmented.tsx +176 -0
- package/src/select.tsx +106 -115
- package/src/separator.tsx +7 -14
- package/src/sheet.tsx +50 -76
- package/src/skeleton.tsx +2 -6
- package/src/slider.tsx +12 -10
- package/src/sonner.tsx +3 -7
- package/src/spinner.tsx +71 -0
- package/src/strong.tsx +8 -6
- package/src/switch.tsx +7 -6
- package/src/table.tsx +60 -82
- package/src/tabs.tsx +20 -18
- package/src/text.tsx +8 -8
- package/src/textarea.tsx +16 -14
- package/src/toggle-group.tsx +59 -58
- package/src/toggle.tsx +14 -13
- package/src/tooltip.tsx +28 -30
- package/dist/chunk-3BDLWZ3W.js +0 -158
- package/dist/chunk-3BDLWZ3W.js.map +0 -1
- package/dist/chunk-43YGVOCO.js +0 -135
- package/dist/chunk-43YGVOCO.js.map +0 -1
- package/dist/chunk-AJLEALVP.mjs +0 -112
- package/dist/chunk-AJLEALVP.mjs.map +0 -1
- package/dist/chunk-D6NQEMTJ.js +0 -112
- package/dist/chunk-D6NQEMTJ.js.map +0 -1
- package/dist/chunk-FATZHRHR.mjs +0 -56
- package/dist/chunk-FATZHRHR.mjs.map +0 -1
- package/dist/chunk-GRKABVK4.js.map +0 -1
- package/dist/chunk-JOJW7BBY.js.map +0 -1
- package/dist/chunk-KV4VL2ZF.mjs +0 -135
- package/dist/chunk-KV4VL2ZF.mjs.map +0 -1
- package/dist/chunk-MJDKD2K4.mjs.map +0 -1
- package/dist/chunk-NCEN3XBK.mjs +0 -158
- package/dist/chunk-NCEN3XBK.mjs.map +0 -1
- package/dist/chunk-PIU627A3.mjs.map +0 -1
- package/dist/chunk-PKB2G726.js.map +0 -1
package/src/dropdown-menu.tsx
CHANGED
|
@@ -2,83 +2,79 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
5
|
-
import {
|
|
6
|
-
CheckIcon,
|
|
7
|
-
ChevronRightIcon,
|
|
8
|
-
DotFilledIcon,
|
|
9
|
-
} from "@radix-ui/react-icons";
|
|
5
|
+
import { CheckIcon, ChevronRightIcon, DotFilledIcon } from "@radix-ui/react-icons";
|
|
10
6
|
import { cn } from "./utils";
|
|
11
7
|
|
|
12
8
|
/* -----------------------------------------------------------------------------
|
|
13
9
|
* Component: DropdownMenu
|
|
14
10
|
* -------------------------------------------------------------------------- */
|
|
15
11
|
|
|
16
|
-
type DropdownMenuProps = DropdownMenuPrimitive.
|
|
12
|
+
type DropdownMenuProps = React.ComponentProps<typeof DropdownMenuPrimitive.Root>;
|
|
17
13
|
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
18
14
|
|
|
19
15
|
/* -----------------------------------------------------------------------------
|
|
20
16
|
* Component: DropdownMenuTrigger
|
|
21
17
|
* -------------------------------------------------------------------------- */
|
|
22
18
|
|
|
23
|
-
type DropdownMenuTriggerProps = DropdownMenuPrimitive.
|
|
19
|
+
type DropdownMenuTriggerProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>;
|
|
24
20
|
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
25
21
|
|
|
26
22
|
/* -----------------------------------------------------------------------------
|
|
27
23
|
* Component: DropdownMenuGroup
|
|
28
24
|
* -------------------------------------------------------------------------- */
|
|
29
25
|
|
|
30
|
-
type DropdownMenuGroupProps = DropdownMenuPrimitive.
|
|
26
|
+
type DropdownMenuGroupProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Group>;
|
|
31
27
|
const DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
32
28
|
|
|
33
29
|
/* -----------------------------------------------------------------------------
|
|
34
30
|
* Component: DropdownMenuSub
|
|
35
31
|
* -------------------------------------------------------------------------- */
|
|
36
32
|
|
|
37
|
-
type DropdownMenuSubProps = DropdownMenuPrimitive.
|
|
33
|
+
type DropdownMenuSubProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub>;
|
|
38
34
|
const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
39
35
|
|
|
40
36
|
/* -----------------------------------------------------------------------------
|
|
41
37
|
* Component: DropdownMenuSubTrigger
|
|
42
38
|
* -------------------------------------------------------------------------- */
|
|
43
39
|
|
|
44
|
-
type DropdownMenuRadioGroupProps =
|
|
45
|
-
DropdownMenuPrimitive.DropdownMenuRadioGroupProps;
|
|
40
|
+
type DropdownMenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup>;
|
|
46
41
|
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
47
42
|
|
|
48
43
|
/* -----------------------------------------------------------------------------
|
|
49
44
|
* Component: DropdownMenuSubTrigger
|
|
50
45
|
* -------------------------------------------------------------------------- */
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
type DropdownMenuSubTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>;
|
|
48
|
+
|
|
49
|
+
interface DropdownMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> {
|
|
54
50
|
inset?: boolean;
|
|
55
51
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
|
|
52
|
+
|
|
53
|
+
const DropdownMenuSubTrigger = React.forwardRef<DropdownMenuSubTriggerElement, DropdownMenuSubTriggerProps>(
|
|
54
|
+
({ className, inset, children, ...props }, ref) => (
|
|
55
|
+
<DropdownMenuPrimitive.SubTrigger
|
|
56
|
+
ref={ref}
|
|
57
|
+
className={cn(
|
|
58
|
+
"focus:bg-accent data-[state=open]:bg-accent flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none",
|
|
59
|
+
inset && "pl-8",
|
|
60
|
+
className,
|
|
61
|
+
)}
|
|
62
|
+
{...props}
|
|
63
|
+
>
|
|
64
|
+
{children}
|
|
65
|
+
<ChevronRightIcon className="ml-auto size-4" />
|
|
66
|
+
</DropdownMenuPrimitive.SubTrigger>
|
|
67
|
+
),
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
75
71
|
|
|
76
72
|
/* -----------------------------------------------------------------------------
|
|
77
73
|
* Component: DropdownMenuSubContent
|
|
78
74
|
* -------------------------------------------------------------------------- */
|
|
79
75
|
|
|
80
|
-
type DropdownMenuSubContentProps =
|
|
81
|
-
|
|
76
|
+
type DropdownMenuSubContentProps = DropdownMenuPrimitive.DropdownMenuSubContentProps;
|
|
77
|
+
|
|
82
78
|
const DropdownMenuSubContent = React.forwardRef<
|
|
83
79
|
React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
|
|
84
80
|
DropdownMenuSubContentProps
|
|
@@ -94,154 +90,154 @@ const DropdownMenuSubContent = React.forwardRef<
|
|
|
94
90
|
/>
|
|
95
91
|
</DropdownMenuPrimitive.Portal>
|
|
96
92
|
));
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
|
|
94
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
99
95
|
|
|
100
96
|
/* -----------------------------------------------------------------------------
|
|
101
97
|
* Component: DropdownMenuContent
|
|
102
98
|
* -------------------------------------------------------------------------- */
|
|
103
99
|
|
|
104
|
-
type
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
)
|
|
100
|
+
type DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;
|
|
101
|
+
type DropdownMenuContentProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>;
|
|
102
|
+
|
|
103
|
+
const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(
|
|
104
|
+
({ className, sideOffset = 4, ...props }, ref) => (
|
|
105
|
+
<DropdownMenuPrimitive.Portal>
|
|
106
|
+
<DropdownMenuPrimitive.Content
|
|
107
|
+
ref={ref}
|
|
108
|
+
sideOffset={sideOffset}
|
|
109
|
+
className={cn(
|
|
110
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 z-50 min-w-[8rem] rounded-md border p-1 shadow-md focus:outline-none",
|
|
111
|
+
className,
|
|
112
|
+
)}
|
|
113
|
+
{...props}
|
|
114
|
+
/>
|
|
115
|
+
</DropdownMenuPrimitive.Portal>
|
|
116
|
+
),
|
|
117
|
+
);
|
|
118
|
+
|
|
121
119
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
122
120
|
|
|
123
121
|
/* -----------------------------------------------------------------------------
|
|
124
122
|
* Component: DropdownMenuItem
|
|
125
123
|
* -------------------------------------------------------------------------- */
|
|
126
124
|
|
|
127
|
-
|
|
128
|
-
|
|
125
|
+
type DropdownMenuItemElement = React.ElementRef<typeof DropdownMenuPrimitive.Item>;
|
|
126
|
+
|
|
127
|
+
interface DropdownMenuItemProps extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {
|
|
129
128
|
inset?: boolean;
|
|
130
129
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
)
|
|
130
|
+
|
|
131
|
+
const DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(
|
|
132
|
+
({ className, inset, ...props }, ref) => (
|
|
133
|
+
<DropdownMenuPrimitive.Item
|
|
134
|
+
ref={ref}
|
|
135
|
+
className={cn(
|
|
136
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm transition-colors focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
137
|
+
inset && "pl-8",
|
|
138
|
+
className,
|
|
139
|
+
)}
|
|
140
|
+
{...props}
|
|
141
|
+
/>
|
|
142
|
+
),
|
|
143
|
+
);
|
|
144
|
+
|
|
145
145
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
146
146
|
|
|
147
147
|
/* -----------------------------------------------------------------------------
|
|
148
148
|
* Component: DropdownMenuCheckboxItem
|
|
149
149
|
* -------------------------------------------------------------------------- */
|
|
150
150
|
|
|
151
|
-
type
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
</
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
)
|
|
174
|
-
|
|
175
|
-
|
|
151
|
+
type DropdownMenuCheckboxItemElement = React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>;
|
|
152
|
+
type DropdownMenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>;
|
|
153
|
+
|
|
154
|
+
const DropdownMenuCheckboxItem = React.forwardRef<DropdownMenuCheckboxItemElement, DropdownMenuCheckboxItemProps>(
|
|
155
|
+
({ className, children, checked, ...props }, ref) => (
|
|
156
|
+
<DropdownMenuPrimitive.CheckboxItem
|
|
157
|
+
ref={ref}
|
|
158
|
+
className={cn(
|
|
159
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm transition-colors focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
160
|
+
className,
|
|
161
|
+
)}
|
|
162
|
+
checked={checked}
|
|
163
|
+
{...props}
|
|
164
|
+
>
|
|
165
|
+
<span className="absolute left-2 flex size-3.5 items-center justify-center">
|
|
166
|
+
<DropdownMenuPrimitive.ItemIndicator>
|
|
167
|
+
<CheckIcon className="size-4" />
|
|
168
|
+
</DropdownMenuPrimitive.ItemIndicator>
|
|
169
|
+
</span>
|
|
170
|
+
{children}
|
|
171
|
+
</DropdownMenuPrimitive.CheckboxItem>
|
|
172
|
+
),
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
176
176
|
|
|
177
177
|
/* -----------------------------------------------------------------------------
|
|
178
178
|
* Component: DropdownMenuRadioItem
|
|
179
179
|
* -------------------------------------------------------------------------- */
|
|
180
180
|
|
|
181
|
-
type
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
</
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
)
|
|
181
|
+
type DropdownMenuRadioItemElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>;
|
|
182
|
+
type DropdownMenuRadioItemProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>;
|
|
183
|
+
|
|
184
|
+
const DropdownMenuRadioItem = React.forwardRef<DropdownMenuRadioItemElement, DropdownMenuRadioItemProps>(
|
|
185
|
+
({ className, children, ...props }, ref) => (
|
|
186
|
+
<DropdownMenuPrimitive.RadioItem
|
|
187
|
+
ref={ref}
|
|
188
|
+
className={cn(
|
|
189
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm transition-colors focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
190
|
+
className,
|
|
191
|
+
)}
|
|
192
|
+
{...props}
|
|
193
|
+
>
|
|
194
|
+
<span className="absolute left-2 flex size-3.5 items-center justify-center">
|
|
195
|
+
<DropdownMenuPrimitive.ItemIndicator>
|
|
196
|
+
<DotFilledIcon className="size-4 fill-current" />
|
|
197
|
+
</DropdownMenuPrimitive.ItemIndicator>
|
|
198
|
+
</span>
|
|
199
|
+
{children}
|
|
200
|
+
</DropdownMenuPrimitive.RadioItem>
|
|
201
|
+
),
|
|
202
|
+
);
|
|
203
|
+
|
|
203
204
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
204
205
|
|
|
205
206
|
/* -----------------------------------------------------------------------------
|
|
206
207
|
* Component: DropdownMenuLabel
|
|
207
208
|
* -------------------------------------------------------------------------- */
|
|
208
209
|
|
|
209
|
-
|
|
210
|
-
|
|
210
|
+
type DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.Label>;
|
|
211
|
+
|
|
212
|
+
interface DropdownMenuLabelProps extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> {
|
|
211
213
|
inset?: boolean;
|
|
212
214
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
{...props}
|
|
225
|
-
/>
|
|
226
|
-
));
|
|
215
|
+
|
|
216
|
+
const DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(
|
|
217
|
+
({ className, inset, ...props }, ref) => (
|
|
218
|
+
<DropdownMenuPrimitive.Label
|
|
219
|
+
ref={ref}
|
|
220
|
+
className={cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)}
|
|
221
|
+
{...props}
|
|
222
|
+
/>
|
|
223
|
+
),
|
|
224
|
+
);
|
|
225
|
+
|
|
227
226
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
228
227
|
|
|
229
228
|
/* -----------------------------------------------------------------------------
|
|
230
229
|
* Component: DropdownMenuSeparator
|
|
231
230
|
* -------------------------------------------------------------------------- */
|
|
232
231
|
|
|
233
|
-
type
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
{...props}
|
|
243
|
-
/>
|
|
244
|
-
));
|
|
232
|
+
type DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;
|
|
233
|
+
type DropdownMenuSeparatorProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>;
|
|
234
|
+
|
|
235
|
+
const DropdownMenuSeparator = React.forwardRef<DropdownMenuSeparatorElement, DropdownMenuSeparatorProps>(
|
|
236
|
+
({ className, ...props }, ref) => (
|
|
237
|
+
<DropdownMenuPrimitive.Separator ref={ref} className={cn("bg-muted -mx-1 my-1 h-px", className)} {...props} />
|
|
238
|
+
),
|
|
239
|
+
);
|
|
240
|
+
|
|
245
241
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
246
242
|
|
|
247
243
|
/* -----------------------------------------------------------------------------
|
|
@@ -249,16 +245,9 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
249
245
|
* -------------------------------------------------------------------------- */
|
|
250
246
|
|
|
251
247
|
type DropdownMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
...props
|
|
255
|
-
}: DropdownMenuShortcutProps): React.JSX.Element {
|
|
256
|
-
return (
|
|
257
|
-
<span
|
|
258
|
-
className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
|
|
259
|
-
{...props}
|
|
260
|
-
/>
|
|
261
|
-
);
|
|
248
|
+
|
|
249
|
+
function DropdownMenuShortcut({ className, ...props }: DropdownMenuShortcutProps): React.JSX.Element {
|
|
250
|
+
return <span className={cn("ml-auto text-xs tracking-widest opacity-60", className)} {...props} />;
|
|
262
251
|
}
|
|
263
252
|
|
|
264
253
|
/* -----------------------------------------------------------------------------
|
package/src/em.tsx
CHANGED
|
@@ -5,16 +5,18 @@ import { Slot } from "@radix-ui/react-slot";
|
|
|
5
5
|
* Component: Em
|
|
6
6
|
* -------------------------------------------------------------------------- */
|
|
7
7
|
|
|
8
|
+
type EmElement = HTMLElement;
|
|
9
|
+
|
|
8
10
|
interface EmProps extends React.HTMLAttributes<HTMLElement> {
|
|
9
11
|
asChild?: boolean;
|
|
10
12
|
}
|
|
11
|
-
const Em = React.forwardRef<HTMLElement, EmProps>(
|
|
12
|
-
({ asChild, ...props }, ref) => {
|
|
13
|
-
const Comp = asChild ? Slot : "em";
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const Em = React.forwardRef<EmElement, EmProps>(({ asChild, ...props }, ref) => {
|
|
15
|
+
const Component = asChild ? Slot : "em";
|
|
16
|
+
|
|
17
|
+
return <Component ref={ref} {...props} />;
|
|
18
|
+
});
|
|
19
|
+
|
|
18
20
|
Em.displayName = "Em";
|
|
19
21
|
|
|
20
22
|
/* -----------------------------------------------------------------------------
|
package/src/form.tsx
CHANGED
|
@@ -14,19 +14,7 @@ import { cn } from "./utils";
|
|
|
14
14
|
import { Label } from "./label";
|
|
15
15
|
|
|
16
16
|
/* -----------------------------------------------------------------------------
|
|
17
|
-
* Context:
|
|
18
|
-
* -------------------------------------------------------------------------- */
|
|
19
|
-
|
|
20
|
-
interface FormItemContextValue {
|
|
21
|
-
id: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const FormItemContext = React.createContext<FormItemContextValue>(
|
|
25
|
-
{} as FormItemContextValue,
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
/* -----------------------------------------------------------------------------
|
|
29
|
-
* Context: FormFieldContext
|
|
17
|
+
* Context: Form
|
|
30
18
|
* -------------------------------------------------------------------------- */
|
|
31
19
|
|
|
32
20
|
interface FormFieldContextValue<
|
|
@@ -36,9 +24,13 @@ interface FormFieldContextValue<
|
|
|
36
24
|
name: TName;
|
|
37
25
|
}
|
|
38
26
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
27
|
+
interface FormItemContextValue {
|
|
28
|
+
id: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const FormFieldContext = React.createContext<FormFieldContextValue | null>(null);
|
|
32
|
+
|
|
33
|
+
const FormItemContext = React.createContext<FormItemContextValue | null>(null);
|
|
42
34
|
|
|
43
35
|
const useFormField = (): {
|
|
44
36
|
invalid: boolean;
|
|
@@ -56,12 +48,12 @@ const useFormField = (): {
|
|
|
56
48
|
const itemContext = React.useContext(FormItemContext);
|
|
57
49
|
const { getFieldState, formState } = useFormContext();
|
|
58
50
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (!fieldContext) {
|
|
51
|
+
if (!fieldContext || !itemContext) {
|
|
62
52
|
throw new Error("useFormField should be used within <FormField>");
|
|
63
53
|
}
|
|
64
54
|
|
|
55
|
+
const fieldState = getFieldState(fieldContext.name, formState);
|
|
56
|
+
|
|
65
57
|
const { id } = itemContext;
|
|
66
58
|
|
|
67
59
|
return {
|
|
@@ -89,6 +81,7 @@ type FormFieldProps<
|
|
|
89
81
|
TFieldValues extends FieldValues = FieldValues,
|
|
90
82
|
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
|
|
91
83
|
> = ControllerProps<TFieldValues, TName>;
|
|
84
|
+
|
|
92
85
|
function FormField<
|
|
93
86
|
TFieldValues extends FieldValues = FieldValues,
|
|
94
87
|
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
|
|
@@ -104,118 +97,100 @@ function FormField<
|
|
|
104
97
|
* Component: FormItem
|
|
105
98
|
* -------------------------------------------------------------------------- */
|
|
106
99
|
|
|
100
|
+
type FormItemElement = HTMLDivElement;
|
|
107
101
|
type FormItemProps = React.HTMLAttributes<HTMLDivElement>;
|
|
108
|
-
const FormItem = React.forwardRef<HTMLDivElement, FormItemProps>(
|
|
109
|
-
({ className, ...props }, ref) => {
|
|
110
|
-
const id = React.useId();
|
|
111
102
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
103
|
+
const FormItem = React.forwardRef<FormItemElement, FormItemProps>(({ className, ...props }, ref) => {
|
|
104
|
+
const id = React.useId();
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<FormItemContext.Provider value={{ id }}>
|
|
108
|
+
<div ref={ref} className={cn("space-y-2", className)} {...props} />
|
|
109
|
+
</FormItemContext.Provider>
|
|
110
|
+
);
|
|
111
|
+
});
|
|
112
|
+
|
|
119
113
|
FormItem.displayName = "FormItem";
|
|
120
114
|
|
|
121
115
|
/* -----------------------------------------------------------------------------
|
|
122
116
|
* Component: FormLabel
|
|
123
117
|
* -------------------------------------------------------------------------- */
|
|
124
118
|
|
|
125
|
-
type
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const FormLabel = React.forwardRef<
|
|
129
|
-
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
130
|
-
FormLabelProps
|
|
131
|
-
>(({ className, ...props }, ref) => {
|
|
119
|
+
type FormFieldElement = React.ElementRef<typeof LabelPrimitive.Root>;
|
|
120
|
+
type FormLabelProps = React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>;
|
|
121
|
+
|
|
122
|
+
const FormLabel = React.forwardRef<FormFieldElement, FormLabelProps>(({ className, ...props }, ref) => {
|
|
132
123
|
const { error, formItemId } = useFormField();
|
|
133
124
|
|
|
134
|
-
return (
|
|
135
|
-
<Label
|
|
136
|
-
ref={ref}
|
|
137
|
-
className={cn(error && "text-destructive", className)}
|
|
138
|
-
htmlFor={formItemId}
|
|
139
|
-
{...props}
|
|
140
|
-
/>
|
|
141
|
-
);
|
|
125
|
+
return <Label ref={ref} className={cn(error && "text-destructive", className)} htmlFor={formItemId} {...props} />;
|
|
142
126
|
});
|
|
127
|
+
|
|
143
128
|
FormLabel.displayName = "FormLabel";
|
|
144
129
|
|
|
145
130
|
/* -----------------------------------------------------------------------------
|
|
146
131
|
* Component: FormControl
|
|
147
132
|
* -------------------------------------------------------------------------- */
|
|
148
133
|
|
|
134
|
+
type FormControlElement = React.ElementRef<typeof Slot>;
|
|
149
135
|
type FormControlProps = React.ComponentPropsWithoutRef<typeof Slot>;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
>(({ ...props }, ref) => {
|
|
154
|
-
const { error, formItemId, formDescriptionId, formMessageId } =
|
|
155
|
-
useFormField();
|
|
136
|
+
|
|
137
|
+
const FormControl = React.forwardRef<FormControlElement, FormControlProps>(({ ...props }, ref) => {
|
|
138
|
+
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
156
139
|
|
|
157
140
|
return (
|
|
158
141
|
<Slot
|
|
159
142
|
ref={ref}
|
|
160
143
|
id={formItemId}
|
|
161
|
-
aria-describedby={
|
|
162
|
-
!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`
|
|
163
|
-
}
|
|
144
|
+
aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}
|
|
164
145
|
aria-invalid={Boolean(error)}
|
|
165
146
|
{...props}
|
|
166
147
|
/>
|
|
167
148
|
);
|
|
168
149
|
});
|
|
150
|
+
|
|
169
151
|
FormControl.displayName = "FormControl";
|
|
170
152
|
|
|
171
153
|
/* -----------------------------------------------------------------------------
|
|
172
154
|
* Component: FormDescription
|
|
173
155
|
* -------------------------------------------------------------------------- */
|
|
174
156
|
|
|
157
|
+
type FormDescriptionElement = HTMLParagraphElement;
|
|
175
158
|
type FormDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;
|
|
176
|
-
const FormDescription = React.forwardRef<
|
|
177
|
-
HTMLParagraphElement,
|
|
178
|
-
FormDescriptionProps
|
|
179
|
-
>(({ className, ...props }, ref) => {
|
|
180
|
-
const { formDescriptionId } = useFormField();
|
|
181
159
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
{...props}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
160
|
+
const FormDescription = React.forwardRef<FormDescriptionElement, FormDescriptionProps>(
|
|
161
|
+
({ className, ...props }, ref) => {
|
|
162
|
+
const { formDescriptionId } = useFormField();
|
|
163
|
+
|
|
164
|
+
return (
|
|
165
|
+
<p ref={ref} id={formDescriptionId} className={cn("text-muted-foreground text-[0.8rem]", className)} {...props} />
|
|
166
|
+
);
|
|
167
|
+
},
|
|
168
|
+
);
|
|
169
|
+
|
|
191
170
|
FormDescription.displayName = "FormDescription";
|
|
192
171
|
|
|
193
172
|
/* -----------------------------------------------------------------------------
|
|
194
173
|
* Component: FormMessage
|
|
195
174
|
* -------------------------------------------------------------------------- */
|
|
196
175
|
|
|
176
|
+
type FormMessageElement = HTMLParagraphElement;
|
|
197
177
|
type FormMessageProps = React.HTMLAttributes<HTMLParagraphElement>;
|
|
198
|
-
const FormMessage = React.forwardRef<HTMLParagraphElement, FormMessageProps>(
|
|
199
|
-
({ className, children, ...props }, ref) => {
|
|
200
|
-
const { error, formMessageId } = useFormField();
|
|
201
|
-
const body = error ? String(error.message) : children;
|
|
202
178
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
179
|
+
const FormMessage = React.forwardRef<FormMessageElement, FormMessageProps>(({ className, children, ...props }, ref) => {
|
|
180
|
+
const { error, formMessageId } = useFormField();
|
|
181
|
+
const body = error ? String(error.message) : children;
|
|
182
|
+
|
|
183
|
+
if (!body) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return (
|
|
188
|
+
<p ref={ref} id={formMessageId} className={cn("text-destructive text-[0.8rem] font-medium", className)} {...props}>
|
|
189
|
+
{body}
|
|
190
|
+
</p>
|
|
191
|
+
);
|
|
192
|
+
});
|
|
206
193
|
|
|
207
|
-
return (
|
|
208
|
-
<p
|
|
209
|
-
ref={ref}
|
|
210
|
-
id={formMessageId}
|
|
211
|
-
className={cn("text-destructive text-[0.8rem] font-medium", className)}
|
|
212
|
-
{...props}
|
|
213
|
-
>
|
|
214
|
-
{body}
|
|
215
|
-
</p>
|
|
216
|
-
);
|
|
217
|
-
},
|
|
218
|
-
);
|
|
219
194
|
FormMessage.displayName = "FormMessage";
|
|
220
195
|
|
|
221
196
|
/* -----------------------------------------------------------------------------
|