@codefast/ui 0.0.7 → 0.0.9
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 +5 -1
- package/dist/accordion.d.ts +5 -1
- package/dist/accordion.js.map +1 -1
- package/dist/accordion.mjs.map +1 -1
- package/dist/alert-dialog.d.mts +12 -3
- package/dist/alert-dialog.d.ts +12 -3
- package/dist/alert-dialog.js +3 -3
- package/dist/alert-dialog.js.map +1 -1
- package/dist/alert-dialog.mjs +1 -1
- package/dist/alert-dialog.mjs.map +1 -1
- package/dist/alert.d.mts +10 -5
- package/dist/alert.d.ts +10 -5
- package/dist/alert.js +22 -18
- package/dist/alert.js.map +1 -1
- package/dist/alert.mjs +22 -18
- package/dist/alert.mjs.map +1 -1
- package/dist/aspect-ratio.d.mts +2 -1
- package/dist/aspect-ratio.d.ts +2 -1
- package/dist/aspect-ratio.js.map +1 -1
- package/dist/aspect-ratio.mjs.map +1 -1
- package/dist/avatar.d.mts +4 -1
- package/dist/avatar.d.ts +4 -1
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.mjs.map +1 -1
- package/dist/badge.d.mts +5 -2
- package/dist/badge.d.ts +5 -2
- package/dist/badge.js +4 -4
- package/dist/badge.js.map +1 -1
- package/dist/badge.mjs +4 -4
- package/dist/badge.mjs.map +1 -1
- package/dist/blockquote.d.mts +8 -0
- package/dist/blockquote.d.ts +8 -0
- package/dist/blockquote.js +15 -0
- package/dist/blockquote.js.map +1 -0
- package/dist/blockquote.mjs +15 -0
- package/dist/blockquote.mjs.map +1 -0
- package/dist/box.d.mts +14 -0
- package/dist/box.d.ts +14 -0
- package/dist/box.js +15 -0
- package/dist/box.js.map +1 -0
- package/dist/box.mjs +15 -0
- package/dist/box.mjs.map +1 -0
- package/dist/breadcrumb.d.mts +18 -11
- package/dist/breadcrumb.d.ts +18 -11
- package/dist/breadcrumb.js +49 -39
- package/dist/breadcrumb.js.map +1 -1
- package/dist/breadcrumb.mjs +49 -39
- package/dist/breadcrumb.mjs.map +1 -1
- package/dist/button.d.mts +4 -3
- package/dist/button.d.ts +4 -3
- package/dist/button.js +2 -2
- package/dist/button.mjs +1 -1
- package/dist/calendar.d.mts +3 -2
- package/dist/calendar.d.ts +3 -2
- package/dist/calendar.js +3 -3
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.mjs +1 -1
- package/dist/calendar.mjs.map +1 -1
- package/dist/card.d.mts +13 -7
- package/dist/card.d.ts +13 -7
- package/dist/card.js +47 -37
- package/dist/card.js.map +1 -1
- package/dist/card.mjs +47 -37
- package/dist/card.mjs.map +1 -1
- package/dist/carousel.d.mts +13 -8
- package/dist/carousel.d.ts +13 -8
- package/dist/carousel.js +63 -57
- package/dist/carousel.js.map +1 -1
- package/dist/carousel.mjs +62 -56
- package/dist/carousel.mjs.map +1 -1
- package/dist/checkbox.d.mts +2 -1
- package/dist/checkbox.d.ts +2 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.mjs.map +1 -1
- package/dist/{chunk-OCLLX7EY.js → chunk-3BDLWZ3W.js} +1 -1
- package/dist/chunk-3BDLWZ3W.js.map +1 -0
- package/dist/{chunk-2D7SRYKN.js → chunk-43YGVOCO.js} +1 -1
- package/dist/chunk-43YGVOCO.js.map +1 -0
- package/dist/{chunk-EIHWTXQ4.mjs → chunk-AJLEALVP.mjs} +1 -1
- package/dist/chunk-AJLEALVP.mjs.map +1 -0
- package/dist/{chunk-LDYBRDAY.js → chunk-D6NQEMTJ.js} +1 -1
- package/dist/chunk-D6NQEMTJ.js.map +1 -0
- package/dist/{chunk-KW5FJ62U.mjs → chunk-FATZHRHR.mjs} +1 -1
- package/dist/chunk-FATZHRHR.mjs.map +1 -0
- package/dist/{chunk-RTKEO347.js → chunk-GRKABVK4.js} +1 -1
- package/dist/chunk-GRKABVK4.js.map +1 -0
- package/dist/{chunk-U2WDUCW3.js → chunk-JOJW7BBY.js} +1 -1
- package/dist/{chunk-U2WDUCW3.js.map → chunk-JOJW7BBY.js.map} +1 -1
- package/dist/{chunk-ESWGFN3R.mjs → chunk-KV4VL2ZF.mjs} +1 -1
- package/dist/chunk-KV4VL2ZF.mjs.map +1 -0
- package/dist/{chunk-T52N6ZBP.mjs → chunk-MJDKD2K4.mjs} +1 -1
- package/dist/{chunk-T52N6ZBP.mjs.map → chunk-MJDKD2K4.mjs.map} +1 -1
- package/dist/{chunk-EDVCMWDT.mjs → chunk-NCEN3XBK.mjs} +1 -1
- package/dist/chunk-NCEN3XBK.mjs.map +1 -0
- package/dist/{chunk-PTD4AMHI.mjs → chunk-PIU627A3.mjs} +1 -1
- package/dist/chunk-PIU627A3.mjs.map +1 -0
- package/dist/{chunk-5GHZ6EXI.js → chunk-PKB2G726.js} +1 -1
- package/dist/{chunk-5GHZ6EXI.js.map → chunk-PKB2G726.js.map} +1 -1
- package/dist/code.d.mts +8 -0
- package/dist/code.d.ts +8 -0
- package/dist/code.js +15 -0
- package/dist/code.js.map +1 -0
- package/dist/code.mjs +15 -0
- package/dist/code.mjs.map +1 -0
- package/dist/collapsible.d.mts +4 -1
- package/dist/collapsible.d.ts +4 -1
- package/dist/collapsible.js.map +1 -1
- package/dist/collapsible.mjs.map +1 -1
- package/dist/command.d.mts +29 -18
- package/dist/command.d.ts +29 -18
- package/dist/command.js +6 -3
- package/dist/command.js.map +1 -1
- package/dist/command.mjs +5 -2
- package/dist/command.mjs.map +1 -1
- package/dist/container.d.mts +8 -0
- package/dist/container.d.ts +8 -0
- package/dist/container.js +19 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +19 -0
- package/dist/container.mjs.map +1 -0
- package/dist/context-menu.d.mts +26 -11
- package/dist/context-menu.d.ts +26 -11
- package/dist/context-menu.js.map +1 -1
- package/dist/context-menu.mjs.map +1 -1
- package/dist/data-table.d.mts +10 -7
- package/dist/data-table.d.ts +10 -7
- package/dist/data-table.js +25 -25
- package/dist/data-table.js.map +1 -1
- package/dist/data-table.mjs +3 -3
- package/dist/data-table.mjs.map +1 -1
- package/dist/dialog.d.mts +11 -3
- package/dist/dialog.d.ts +11 -3
- package/dist/dialog.js +2 -2
- package/dist/dialog.mjs +1 -1
- package/dist/drawer.d.mts +12 -4
- package/dist/drawer.d.ts +12 -4
- package/dist/drawer.js.map +1 -1
- package/dist/drawer.mjs.map +1 -1
- package/dist/dropdown-menu.d.mts +25 -11
- package/dist/dropdown-menu.d.ts +25 -11
- package/dist/dropdown-menu.js +2 -2
- package/dist/dropdown-menu.mjs +1 -1
- package/dist/em.d.mts +8 -0
- package/dist/em.d.ts +8 -0
- package/dist/em.js +15 -0
- package/dist/em.js.map +1 -0
- package/dist/em.mjs +15 -0
- package/dist/em.mjs.map +1 -0
- package/dist/form.d.mts +14 -6
- package/dist/form.d.ts +14 -6
- package/dist/form.js +26 -22
- package/dist/form.js.map +1 -1
- package/dist/form.mjs +25 -21
- package/dist/form.mjs.map +1 -1
- package/dist/heading.d.mts +9 -0
- package/dist/heading.d.ts +9 -0
- package/dist/heading.js +15 -0
- package/dist/heading.js.map +1 -0
- package/dist/heading.mjs +15 -0
- package/dist/heading.mjs.map +1 -0
- package/dist/hover-card.d.mts +4 -1
- package/dist/hover-card.d.ts +4 -1
- package/dist/hover-card.js.map +1 -1
- package/dist/hover-card.mjs.map +1 -1
- package/dist/input-otp.d.mts +12 -32
- package/dist/input-otp.d.ts +12 -32
- package/dist/input-otp.js +30 -22
- package/dist/input-otp.js.map +1 -1
- package/dist/input-otp.mjs +29 -21
- package/dist/input-otp.mjs.map +1 -1
- package/dist/input.d.mts +6 -3
- package/dist/input.d.ts +6 -3
- package/dist/input.js +13 -11
- package/dist/input.js.map +1 -1
- package/dist/input.mjs +13 -11
- package/dist/input.mjs.map +1 -1
- package/dist/kbd.d.mts +8 -0
- package/dist/kbd.d.ts +8 -0
- package/dist/kbd.js +29 -0
- package/dist/kbd.js.map +1 -0
- package/dist/kbd.mjs +29 -0
- package/dist/kbd.mjs.map +1 -0
- package/dist/label.d.mts +2 -1
- package/dist/label.d.ts +2 -1
- package/dist/label.js +2 -2
- package/dist/label.mjs +1 -1
- package/dist/menubar.d.mts +27 -12
- package/dist/menubar.d.ts +27 -12
- package/dist/menubar.js.map +1 -1
- package/dist/menubar.mjs.map +1 -1
- package/dist/navigation-menu.d.mts +9 -1
- package/dist/navigation-menu.d.ts +9 -1
- package/dist/navigation-menu.js.map +1 -1
- package/dist/navigation-menu.mjs.map +1 -1
- package/dist/pagination.d.mts +13 -7
- package/dist/pagination.d.ts +13 -7
- package/dist/pagination.js +5 -3
- package/dist/pagination.js.map +1 -1
- package/dist/pagination.mjs +4 -2
- package/dist/pagination.mjs.map +1 -1
- package/dist/popover.d.mts +6 -1
- package/dist/popover.d.ts +6 -1
- package/dist/popover.js.map +1 -1
- package/dist/popover.mjs.map +1 -1
- package/dist/pre.d.mts +8 -0
- package/dist/pre.d.ts +8 -0
- package/dist/pre.js +15 -0
- package/dist/pre.js.map +1 -0
- package/dist/pre.mjs +15 -0
- package/dist/pre.mjs.map +1 -0
- package/dist/progress.d.mts +2 -1
- package/dist/progress.d.ts +2 -1
- package/dist/progress.js +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/progress.mjs +1 -1
- package/dist/progress.mjs.map +1 -1
- package/dist/quote.d.mts +8 -0
- package/dist/quote.d.ts +8 -0
- package/dist/quote.js +15 -0
- package/dist/quote.js.map +1 -0
- package/dist/quote.mjs +15 -0
- package/dist/quote.mjs.map +1 -0
- package/dist/radio-group.d.mts +3 -1
- package/dist/radio-group.d.ts +3 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/radio-group.mjs.map +1 -1
- package/dist/resizable.d.mts +4 -4
- package/dist/resizable.d.ts +4 -4
- package/dist/resizable.js +1 -1
- package/dist/resizable.js.map +1 -1
- package/dist/resizable.mjs +1 -1
- package/dist/resizable.mjs.map +1 -1
- package/dist/scroll-area.d.mts +4 -2
- package/dist/scroll-area.d.ts +4 -2
- package/dist/scroll-area.js +6 -6
- package/dist/scroll-area.js.map +1 -1
- package/dist/scroll-area.mjs +6 -6
- package/dist/scroll-area.mjs.map +1 -1
- package/dist/section.d.mts +8 -0
- package/dist/section.d.ts +8 -0
- package/dist/section.js +15 -0
- package/dist/section.js.map +1 -0
- package/dist/section.mjs +15 -0
- package/dist/section.mjs.map +1 -0
- package/dist/select.d.mts +11 -1
- package/dist/select.d.ts +11 -1
- package/dist/select.js +2 -2
- package/dist/select.mjs +1 -1
- package/dist/separator.d.mts +2 -1
- package/dist/separator.d.ts +2 -1
- package/dist/separator.js.map +1 -1
- package/dist/separator.mjs.map +1 -1
- package/dist/sheet.d.mts +18 -8
- package/dist/sheet.d.ts +18 -8
- package/dist/sheet.js.map +1 -1
- package/dist/sheet.mjs.map +1 -1
- package/dist/skeleton.d.mts +3 -2
- package/dist/skeleton.d.ts +3 -2
- package/dist/skeleton.js +1 -4
- package/dist/skeleton.js.map +1 -1
- package/dist/skeleton.mjs +1 -4
- package/dist/skeleton.mjs.map +1 -1
- package/dist/slider.d.mts +2 -1
- package/dist/slider.d.ts +2 -1
- package/dist/slider.js.map +1 -1
- package/dist/slider.mjs.map +1 -1
- package/dist/sonner.d.mts +1 -1
- package/dist/sonner.d.ts +1 -1
- package/dist/sonner.js.map +1 -1
- package/dist/sonner.mjs.map +1 -1
- package/dist/strong.d.mts +8 -0
- package/dist/strong.d.ts +8 -0
- package/dist/strong.js +15 -0
- package/dist/strong.js.map +1 -0
- package/dist/strong.mjs +15 -0
- package/dist/strong.mjs.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/switch.d.mts +2 -1
- package/dist/switch.d.ts +2 -1
- package/dist/switch.js.map +1 -1
- package/dist/switch.mjs.map +1 -1
- package/dist/table.d.mts +17 -9
- package/dist/table.d.ts +17 -9
- package/dist/table.js +75 -58
- package/dist/table.js.map +1 -1
- package/dist/table.mjs +75 -58
- package/dist/table.mjs.map +1 -1
- package/dist/tabs.d.mts +5 -1
- package/dist/tabs.d.ts +5 -1
- package/dist/tabs.js.map +1 -1
- package/dist/tabs.mjs.map +1 -1
- package/dist/text.d.mts +14 -0
- package/dist/text.d.ts +14 -0
- package/dist/text.js +15 -0
- package/dist/text.js.map +1 -0
- package/dist/text.mjs +15 -0
- package/dist/text.mjs.map +1 -0
- package/dist/textarea.d.mts +3 -2
- package/dist/textarea.d.ts +3 -2
- package/dist/textarea.js +15 -13
- package/dist/textarea.js.map +1 -1
- package/dist/textarea.mjs +15 -13
- package/dist/textarea.mjs.map +1 -1
- package/dist/toggle-group.d.mts +4 -2
- package/dist/toggle-group.d.ts +4 -2
- package/dist/toggle-group.js +2 -2
- package/dist/toggle-group.js.map +1 -1
- package/dist/toggle-group.mjs +1 -1
- package/dist/toggle-group.mjs.map +1 -1
- package/dist/toggle.d.mts +2 -1
- package/dist/toggle.d.ts +2 -1
- package/dist/toggle.js +2 -2
- package/dist/toggle.mjs +1 -1
- package/dist/tooltip.d.mts +6 -1
- package/dist/tooltip.d.ts +6 -1
- package/dist/tooltip.js.map +1 -1
- package/dist/tooltip.mjs.map +1 -1
- package/package.json +67 -7
- package/src/accordion.tsx +17 -4
- package/src/alert-dialog.tsx +26 -7
- package/src/alert.tsx +35 -25
- package/src/aspect-ratio.tsx +2 -1
- package/src/avatar.tsx +13 -3
- package/src/badge.tsx +10 -9
- package/src/blockquote.tsx +25 -0
- package/src/box.tsx +33 -0
- package/src/breadcrumb.tsx +70 -60
- package/src/button.tsx +4 -2
- package/src/calendar.tsx +3 -2
- package/src/card.tsx +59 -52
- package/src/carousel.tsx +76 -72
- package/src/checkbox.tsx +3 -2
- package/src/code.tsx +24 -0
- package/src/collapsible.tsx +11 -1
- package/src/command.tsx +47 -10
- package/src/container.tsx +25 -0
- package/src/context-menu.tsx +52 -16
- package/src/data-table.tsx +23 -11
- package/src/dialog.tsx +21 -5
- package/src/drawer.tsx +28 -6
- package/src/dropdown-menu.tsx +51 -15
- package/src/em.tsx +24 -0
- package/src/form.tsx +55 -38
- package/src/heading.tsx +25 -0
- package/src/hover-card.tsx +12 -2
- package/src/input-otp.tsx +45 -33
- package/src/input.tsx +17 -15
- package/src/kbd.tsx +34 -0
- package/src/label.tsx +3 -2
- package/src/menubar.tsx +48 -17
- package/src/navigation-menu.tsx +25 -5
- package/src/pagination.tsx +21 -9
- package/src/popover.tsx +18 -2
- package/src/pre.tsx +24 -0
- package/src/progress.tsx +4 -3
- package/src/quote.tsx +24 -0
- package/src/radio-group.tsx +10 -3
- package/src/resizable.tsx +2 -1
- package/src/scroll-area.tsx +18 -11
- package/src/section.tsx +24 -0
- package/src/select.tsx +27 -7
- package/src/separator.tsx +3 -2
- package/src/sheet.tsx +23 -5
- package/src/skeleton.tsx +3 -5
- package/src/slider.tsx +3 -2
- package/src/sonner.tsx +1 -1
- package/src/strong.tsx +24 -0
- package/src/switch.tsx +3 -2
- package/src/table.tsx +90 -78
- package/src/tabs.tsx +17 -4
- package/src/text.tsx +34 -0
- package/src/textarea.tsx +16 -16
- package/src/toggle-group.tsx +14 -4
- package/src/toggle.tsx +3 -2
- package/src/tooltip.tsx +12 -2
- package/dist/chunk-2D7SRYKN.js.map +0 -1
- package/dist/chunk-EDVCMWDT.mjs.map +0 -1
- package/dist/chunk-EIHWTXQ4.mjs.map +0 -1
- package/dist/chunk-ESWGFN3R.mjs.map +0 -1
- package/dist/chunk-KW5FJ62U.mjs.map +0 -1
- package/dist/chunk-LDYBRDAY.js.map +0 -1
- package/dist/chunk-OCLLX7EY.js.map +0 -1
- package/dist/chunk-PTD4AMHI.mjs.map +0 -1
- package/dist/chunk-RTKEO347.js.map +0 -1
package/src/data-table.tsx
CHANGED
|
@@ -36,11 +36,12 @@ import { cn } from "./utils";
|
|
|
36
36
|
* Component: DataTableViewOptions
|
|
37
37
|
* -------------------------------------------------------------------------- */
|
|
38
38
|
|
|
39
|
+
interface DataTableViewOptionsProps<TData> {
|
|
40
|
+
table: ReactTable.Table<TData>;
|
|
41
|
+
}
|
|
39
42
|
function DataTableViewOptions<TData>({
|
|
40
43
|
table,
|
|
41
|
-
}: {
|
|
42
|
-
table: ReactTable.Table<TData>;
|
|
43
|
-
}): React.JSX.Element {
|
|
44
|
+
}: DataTableViewOptionsProps<TData>): React.JSX.Element {
|
|
44
45
|
return (
|
|
45
46
|
<DropdownMenu>
|
|
46
47
|
<DropdownMenuTrigger asChild>
|
|
@@ -85,13 +86,15 @@ function DataTableViewOptions<TData>({
|
|
|
85
86
|
* Component: DataTablePagination
|
|
86
87
|
* -------------------------------------------------------------------------- */
|
|
87
88
|
|
|
89
|
+
interface DataTablePaginationProps<TData>
|
|
90
|
+
extends React.HTMLAttributes<HTMLDivElement> {
|
|
91
|
+
table: ReactTable.Table<TData>;
|
|
92
|
+
}
|
|
88
93
|
function DataTablePagination<TData>({
|
|
89
94
|
table,
|
|
90
95
|
className,
|
|
91
96
|
...props
|
|
92
|
-
}:
|
|
93
|
-
table: ReactTable.Table<TData>;
|
|
94
|
-
}): React.JSX.Element {
|
|
97
|
+
}: DataTablePaginationProps<TData>): React.JSX.Element {
|
|
95
98
|
return (
|
|
96
99
|
<div
|
|
97
100
|
className={cn("flex items-center justify-between px-2", className)}
|
|
@@ -183,14 +186,16 @@ function DataTablePagination<TData>({
|
|
|
183
186
|
* Component: DataTableColumnHeader
|
|
184
187
|
* -------------------------------------------------------------------------- */
|
|
185
188
|
|
|
189
|
+
interface DataTableColumnHeaderProps<TData, TValue>
|
|
190
|
+
extends React.HTMLAttributes<HTMLDivElement> {
|
|
191
|
+
column: ReactTable.Column<TData, TValue>;
|
|
192
|
+
title: string;
|
|
193
|
+
}
|
|
186
194
|
function DataTableColumnHeader<TData, TValue>({
|
|
187
195
|
column,
|
|
188
196
|
title,
|
|
189
197
|
className,
|
|
190
|
-
}:
|
|
191
|
-
column: ReactTable.Column<TData, TValue>;
|
|
192
|
-
title: string;
|
|
193
|
-
}): React.JSX.Element {
|
|
198
|
+
}: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element {
|
|
194
199
|
if (!column.getCanSort()) {
|
|
195
200
|
return <div className={cn(className)}>{title}</div>;
|
|
196
201
|
}
|
|
@@ -250,6 +255,13 @@ function DataTableColumnHeader<TData, TValue>({
|
|
|
250
255
|
* Exports
|
|
251
256
|
* -------------------------------------------------------------------------- */
|
|
252
257
|
|
|
253
|
-
export {
|
|
258
|
+
export {
|
|
259
|
+
DataTableViewOptions,
|
|
260
|
+
DataTablePagination,
|
|
261
|
+
DataTableColumnHeader,
|
|
262
|
+
type DataTableViewOptionsProps,
|
|
263
|
+
type DataTablePaginationProps,
|
|
264
|
+
type DataTableColumnHeaderProps,
|
|
265
|
+
};
|
|
254
266
|
|
|
255
267
|
export * from "@tanstack/react-table";
|
package/src/dialog.tsx
CHANGED
|
@@ -9,27 +9,31 @@ import { cn } from "./utils";
|
|
|
9
9
|
* Component: Dialog
|
|
10
10
|
* -------------------------------------------------------------------------- */
|
|
11
11
|
|
|
12
|
+
type DialogProps = DialogPrimitive.DialogProps;
|
|
12
13
|
const Dialog = DialogPrimitive.Root;
|
|
13
14
|
|
|
14
15
|
/* -----------------------------------------------------------------------------
|
|
15
16
|
* Component: DialogTrigger
|
|
16
17
|
* -------------------------------------------------------------------------- */
|
|
17
18
|
|
|
19
|
+
type DialogTriggerProps = DialogPrimitive.DialogTriggerProps;
|
|
18
20
|
const DialogTrigger = DialogPrimitive.Trigger;
|
|
19
21
|
|
|
20
22
|
/* -----------------------------------------------------------------------------
|
|
21
23
|
* Component: DialogClose
|
|
22
24
|
* -------------------------------------------------------------------------- */
|
|
23
25
|
|
|
26
|
+
type DialogCloseProps = DialogPrimitive.DialogCloseProps;
|
|
24
27
|
const DialogClose = DialogPrimitive.Close;
|
|
25
28
|
|
|
26
29
|
/* -----------------------------------------------------------------------------
|
|
27
30
|
* Component: DialogContent
|
|
28
31
|
* -------------------------------------------------------------------------- */
|
|
29
32
|
|
|
33
|
+
type DialogContentProps = DialogPrimitive.DialogContentProps;
|
|
30
34
|
const DialogContent = React.forwardRef<
|
|
31
35
|
React.ElementRef<typeof DialogPrimitive.Content>,
|
|
32
|
-
|
|
36
|
+
DialogContentProps
|
|
33
37
|
>(({ className, children, ...props }, ref) => (
|
|
34
38
|
<DialogPrimitive.Portal>
|
|
35
39
|
<DialogPrimitive.Overlay
|
|
@@ -63,10 +67,11 @@ DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
|
63
67
|
* Component: DialogHeader
|
|
64
68
|
* -------------------------------------------------------------------------- */
|
|
65
69
|
|
|
70
|
+
type DialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;
|
|
66
71
|
function DialogHeader({
|
|
67
72
|
className,
|
|
68
73
|
...props
|
|
69
|
-
}:
|
|
74
|
+
}: DialogHeaderProps): React.JSX.Element {
|
|
70
75
|
return (
|
|
71
76
|
<div
|
|
72
77
|
className={cn(
|
|
@@ -82,10 +87,11 @@ function DialogHeader({
|
|
|
82
87
|
* Component: DialogFooter
|
|
83
88
|
* -------------------------------------------------------------------------- */
|
|
84
89
|
|
|
90
|
+
type DialogFooterProps = React.HTMLAttributes<HTMLDivElement>;
|
|
85
91
|
function DialogFooter({
|
|
86
92
|
className,
|
|
87
93
|
...props
|
|
88
|
-
}:
|
|
94
|
+
}: DialogFooterProps): React.JSX.Element {
|
|
89
95
|
return (
|
|
90
96
|
<div
|
|
91
97
|
className={cn(
|
|
@@ -101,9 +107,10 @@ function DialogFooter({
|
|
|
101
107
|
* Component: DialogTitle
|
|
102
108
|
* -------------------------------------------------------------------------- */
|
|
103
109
|
|
|
110
|
+
type DialogTitleProps = DialogPrimitive.DialogTitleProps;
|
|
104
111
|
const DialogTitle = React.forwardRef<
|
|
105
112
|
React.ElementRef<typeof DialogPrimitive.Title>,
|
|
106
|
-
|
|
113
|
+
DialogTitleProps
|
|
107
114
|
>(({ className, ...props }, ref) => (
|
|
108
115
|
<DialogPrimitive.Title
|
|
109
116
|
ref={ref}
|
|
@@ -120,9 +127,10 @@ DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
|
120
127
|
* Component: DialogDescription
|
|
121
128
|
* -------------------------------------------------------------------------- */
|
|
122
129
|
|
|
130
|
+
type DialogDescriptionProps = DialogPrimitive.DialogDescriptionProps;
|
|
123
131
|
const DialogDescription = React.forwardRef<
|
|
124
132
|
React.ElementRef<typeof DialogPrimitive.Description>,
|
|
125
|
-
|
|
133
|
+
DialogDescriptionProps
|
|
126
134
|
>(({ className, ...props }, ref) => (
|
|
127
135
|
<DialogPrimitive.Description
|
|
128
136
|
ref={ref}
|
|
@@ -145,4 +153,12 @@ export {
|
|
|
145
153
|
DialogFooter,
|
|
146
154
|
DialogTitle,
|
|
147
155
|
DialogDescription,
|
|
156
|
+
type DialogProps,
|
|
157
|
+
type DialogTriggerProps,
|
|
158
|
+
type DialogCloseProps,
|
|
159
|
+
type DialogContentProps,
|
|
160
|
+
type DialogHeaderProps,
|
|
161
|
+
type DialogFooterProps,
|
|
162
|
+
type DialogTitleProps,
|
|
163
|
+
type DialogDescriptionProps,
|
|
148
164
|
};
|
package/src/drawer.tsx
CHANGED
|
@@ -8,10 +8,11 @@ import { cn } from "./utils";
|
|
|
8
8
|
* Component: Drawer
|
|
9
9
|
* -------------------------------------------------------------------------- */
|
|
10
10
|
|
|
11
|
+
type DrawerProps = React.ComponentProps<typeof DrawerPrimitive.Root>;
|
|
11
12
|
function Drawer({
|
|
12
13
|
shouldScaleBackground = true,
|
|
13
14
|
...props
|
|
14
|
-
}:
|
|
15
|
+
}: DrawerProps): React.JSX.Element {
|
|
15
16
|
return (
|
|
16
17
|
<DrawerPrimitive.Root
|
|
17
18
|
shouldScaleBackground={shouldScaleBackground}
|
|
@@ -24,21 +25,26 @@ function Drawer({
|
|
|
24
25
|
* Component: DrawerTrigger
|
|
25
26
|
* -------------------------------------------------------------------------- */
|
|
26
27
|
|
|
28
|
+
type DrawerTriggerProps = React.ComponentProps<typeof DrawerPrimitive.Trigger>;
|
|
27
29
|
const DrawerTrigger = DrawerPrimitive.Trigger;
|
|
28
30
|
|
|
29
31
|
/* -----------------------------------------------------------------------------
|
|
30
32
|
* Component: DrawerClose
|
|
31
33
|
* -------------------------------------------------------------------------- */
|
|
32
34
|
|
|
35
|
+
type DrawerCloseProps = React.ComponentProps<typeof DrawerPrimitive.Close>;
|
|
33
36
|
const DrawerClose = DrawerPrimitive.Close;
|
|
34
37
|
|
|
35
38
|
/* -----------------------------------------------------------------------------
|
|
36
39
|
* Component: DrawerContent
|
|
37
40
|
* -------------------------------------------------------------------------- */
|
|
38
41
|
|
|
42
|
+
type DrawerContentProps = React.ComponentPropsWithoutRef<
|
|
43
|
+
typeof DrawerPrimitive.Content
|
|
44
|
+
>;
|
|
39
45
|
const DrawerContent = React.forwardRef<
|
|
40
46
|
React.ElementRef<typeof DrawerPrimitive.Content>,
|
|
41
|
-
|
|
47
|
+
DrawerContentProps
|
|
42
48
|
>(({ className, children, ...props }, ref) => (
|
|
43
49
|
<DrawerPrimitive.Portal>
|
|
44
50
|
<DrawerPrimitive.Overlay className="fixed inset-0 z-50 bg-black/80" />
|
|
@@ -61,10 +67,11 @@ DrawerContent.displayName = "DrawerContent";
|
|
|
61
67
|
* Component: DrawerHeader
|
|
62
68
|
* -------------------------------------------------------------------------- */
|
|
63
69
|
|
|
70
|
+
type DrawerHeaderProps = React.HTMLAttributes<HTMLDivElement>;
|
|
64
71
|
function DrawerHeader({
|
|
65
72
|
className,
|
|
66
73
|
...props
|
|
67
|
-
}:
|
|
74
|
+
}: DrawerHeaderProps): React.JSX.Element {
|
|
68
75
|
return (
|
|
69
76
|
<div
|
|
70
77
|
className={cn("grid gap-1.5 p-4 text-center sm:text-left", className)}
|
|
@@ -77,10 +84,11 @@ function DrawerHeader({
|
|
|
77
84
|
* Component: DrawerFooter
|
|
78
85
|
* -------------------------------------------------------------------------- */
|
|
79
86
|
|
|
87
|
+
type DrawerFooterProps = React.HTMLAttributes<HTMLDivElement>;
|
|
80
88
|
function DrawerFooter({
|
|
81
89
|
className,
|
|
82
90
|
...props
|
|
83
|
-
}:
|
|
91
|
+
}: DrawerFooterProps): React.JSX.Element {
|
|
84
92
|
return (
|
|
85
93
|
<div
|
|
86
94
|
className={cn("mt-auto flex flex-col gap-2 p-4", className)}
|
|
@@ -93,9 +101,12 @@ function DrawerFooter({
|
|
|
93
101
|
* Component: DrawerTitle
|
|
94
102
|
* -------------------------------------------------------------------------- */
|
|
95
103
|
|
|
104
|
+
type DrawerTitleProps = React.ComponentPropsWithoutRef<
|
|
105
|
+
typeof DrawerPrimitive.Title
|
|
106
|
+
>;
|
|
96
107
|
const DrawerTitle = React.forwardRef<
|
|
97
108
|
React.ElementRef<typeof DrawerPrimitive.Title>,
|
|
98
|
-
|
|
109
|
+
DrawerTitleProps
|
|
99
110
|
>(({ className, ...props }, ref) => (
|
|
100
111
|
<DrawerPrimitive.Title
|
|
101
112
|
ref={ref}
|
|
@@ -112,9 +123,12 @@ DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
|
112
123
|
* Component: DrawerDescription
|
|
113
124
|
* -------------------------------------------------------------------------- */
|
|
114
125
|
|
|
126
|
+
type DrawerDescriptionProps = React.ComponentPropsWithoutRef<
|
|
127
|
+
typeof DrawerPrimitive.Description
|
|
128
|
+
>;
|
|
115
129
|
const DrawerDescription = React.forwardRef<
|
|
116
130
|
React.ElementRef<typeof DrawerPrimitive.Description>,
|
|
117
|
-
|
|
131
|
+
DrawerDescriptionProps
|
|
118
132
|
>(({ className, ...props }, ref) => (
|
|
119
133
|
<DrawerPrimitive.Description
|
|
120
134
|
ref={ref}
|
|
@@ -137,4 +151,12 @@ export {
|
|
|
137
151
|
DrawerFooter,
|
|
138
152
|
DrawerTitle,
|
|
139
153
|
DrawerDescription,
|
|
154
|
+
type DrawerProps,
|
|
155
|
+
type DrawerTriggerProps,
|
|
156
|
+
type DrawerCloseProps,
|
|
157
|
+
type DrawerContentProps,
|
|
158
|
+
type DrawerHeaderProps,
|
|
159
|
+
type DrawerFooterProps,
|
|
160
|
+
type DrawerTitleProps,
|
|
161
|
+
type DrawerDescriptionProps,
|
|
140
162
|
};
|
package/src/dropdown-menu.tsx
CHANGED
|
@@ -13,41 +13,49 @@ import { cn } from "./utils";
|
|
|
13
13
|
* Component: DropdownMenu
|
|
14
14
|
* -------------------------------------------------------------------------- */
|
|
15
15
|
|
|
16
|
+
type DropdownMenuProps = DropdownMenuPrimitive.DropdownMenuProps;
|
|
16
17
|
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
17
18
|
|
|
18
19
|
/* -----------------------------------------------------------------------------
|
|
19
20
|
* Component: DropdownMenuTrigger
|
|
20
21
|
* -------------------------------------------------------------------------- */
|
|
21
22
|
|
|
23
|
+
type DropdownMenuTriggerProps = DropdownMenuPrimitive.DropdownMenuTriggerProps;
|
|
22
24
|
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
23
25
|
|
|
24
26
|
/* -----------------------------------------------------------------------------
|
|
25
27
|
* Component: DropdownMenuGroup
|
|
26
28
|
* -------------------------------------------------------------------------- */
|
|
27
29
|
|
|
30
|
+
type DropdownMenuGroupProps = DropdownMenuPrimitive.DropdownMenuGroupProps;
|
|
28
31
|
const DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
29
32
|
|
|
30
33
|
/* -----------------------------------------------------------------------------
|
|
31
34
|
* Component: DropdownMenuSub
|
|
32
35
|
* -------------------------------------------------------------------------- */
|
|
33
36
|
|
|
37
|
+
type DropdownMenuSubProps = DropdownMenuPrimitive.DropdownMenuSubProps;
|
|
34
38
|
const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
35
39
|
|
|
36
40
|
/* -----------------------------------------------------------------------------
|
|
37
41
|
* Component: DropdownMenuSubTrigger
|
|
38
42
|
* -------------------------------------------------------------------------- */
|
|
39
43
|
|
|
44
|
+
type DropdownMenuRadioGroupProps =
|
|
45
|
+
DropdownMenuPrimitive.DropdownMenuRadioGroupProps;
|
|
40
46
|
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
41
47
|
|
|
42
48
|
/* -----------------------------------------------------------------------------
|
|
43
49
|
* Component: DropdownMenuSubTrigger
|
|
44
50
|
* -------------------------------------------------------------------------- */
|
|
45
51
|
|
|
52
|
+
interface DropdownMenuSubTriggerProps
|
|
53
|
+
extends DropdownMenuPrimitive.DropdownMenuSubTriggerProps {
|
|
54
|
+
inset?: boolean;
|
|
55
|
+
}
|
|
46
56
|
const DropdownMenuSubTrigger = React.forwardRef<
|
|
47
57
|
React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
|
|
48
|
-
|
|
49
|
-
inset?: boolean;
|
|
50
|
-
}
|
|
58
|
+
DropdownMenuSubTriggerProps
|
|
51
59
|
>(({ className, inset, children, ...props }, ref) => (
|
|
52
60
|
<DropdownMenuPrimitive.SubTrigger
|
|
53
61
|
ref={ref}
|
|
@@ -69,9 +77,11 @@ DropdownMenuSubTrigger.displayName =
|
|
|
69
77
|
* Component: DropdownMenuSubContent
|
|
70
78
|
* -------------------------------------------------------------------------- */
|
|
71
79
|
|
|
80
|
+
type DropdownMenuSubContentProps =
|
|
81
|
+
DropdownMenuPrimitive.DropdownMenuSubContentProps;
|
|
72
82
|
const DropdownMenuSubContent = React.forwardRef<
|
|
73
83
|
React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
|
|
74
|
-
|
|
84
|
+
DropdownMenuSubContentProps
|
|
75
85
|
>(({ className, ...props }, ref) => (
|
|
76
86
|
<DropdownMenuPrimitive.Portal>
|
|
77
87
|
<DropdownMenuPrimitive.SubContent
|
|
@@ -91,9 +101,10 @@ DropdownMenuSubContent.displayName =
|
|
|
91
101
|
* Component: DropdownMenuContent
|
|
92
102
|
* -------------------------------------------------------------------------- */
|
|
93
103
|
|
|
104
|
+
type DropdownMenuContentProps = DropdownMenuPrimitive.DropdownMenuContentProps;
|
|
94
105
|
const DropdownMenuContent = React.forwardRef<
|
|
95
106
|
React.ElementRef<typeof DropdownMenuPrimitive.Content>,
|
|
96
|
-
|
|
107
|
+
DropdownMenuContentProps
|
|
97
108
|
>(({ className, sideOffset = 4, ...props }, ref) => (
|
|
98
109
|
<DropdownMenuPrimitive.Portal>
|
|
99
110
|
<DropdownMenuPrimitive.Content
|
|
@@ -113,11 +124,13 @@ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
|
113
124
|
* Component: DropdownMenuItem
|
|
114
125
|
* -------------------------------------------------------------------------- */
|
|
115
126
|
|
|
127
|
+
interface DropdownMenuItemProps
|
|
128
|
+
extends DropdownMenuPrimitive.DropdownMenuItemProps {
|
|
129
|
+
inset?: boolean;
|
|
130
|
+
}
|
|
116
131
|
const DropdownMenuItem = React.forwardRef<
|
|
117
132
|
React.ElementRef<typeof DropdownMenuPrimitive.Item>,
|
|
118
|
-
|
|
119
|
-
inset?: boolean;
|
|
120
|
-
}
|
|
133
|
+
DropdownMenuItemProps
|
|
121
134
|
>(({ className, inset, ...props }, ref) => (
|
|
122
135
|
<DropdownMenuPrimitive.Item
|
|
123
136
|
ref={ref}
|
|
@@ -135,9 +148,11 @@ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
|
135
148
|
* Component: DropdownMenuCheckboxItem
|
|
136
149
|
* -------------------------------------------------------------------------- */
|
|
137
150
|
|
|
151
|
+
type DropdownMenuCheckboxItemProps =
|
|
152
|
+
DropdownMenuPrimitive.DropdownMenuCheckboxItemProps;
|
|
138
153
|
const DropdownMenuCheckboxItem = React.forwardRef<
|
|
139
154
|
React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
|
|
140
|
-
|
|
155
|
+
DropdownMenuCheckboxItemProps
|
|
141
156
|
>(({ className, children, checked, ...props }, ref) => (
|
|
142
157
|
<DropdownMenuPrimitive.CheckboxItem
|
|
143
158
|
ref={ref}
|
|
@@ -163,9 +178,11 @@ DropdownMenuCheckboxItem.displayName =
|
|
|
163
178
|
* Component: DropdownMenuRadioItem
|
|
164
179
|
* -------------------------------------------------------------------------- */
|
|
165
180
|
|
|
181
|
+
type DropdownMenuRadioItemProps =
|
|
182
|
+
DropdownMenuPrimitive.DropdownMenuRadioItemProps;
|
|
166
183
|
const DropdownMenuRadioItem = React.forwardRef<
|
|
167
184
|
React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
|
|
168
|
-
|
|
185
|
+
DropdownMenuRadioItemProps
|
|
169
186
|
>(({ className, children, ...props }, ref) => (
|
|
170
187
|
<DropdownMenuPrimitive.RadioItem
|
|
171
188
|
ref={ref}
|
|
@@ -189,11 +206,13 @@ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
|
189
206
|
* Component: DropdownMenuLabel
|
|
190
207
|
* -------------------------------------------------------------------------- */
|
|
191
208
|
|
|
209
|
+
interface DropdownMenuLabelProps
|
|
210
|
+
extends DropdownMenuPrimitive.DropdownMenuLabelProps {
|
|
211
|
+
inset?: boolean;
|
|
212
|
+
}
|
|
192
213
|
const DropdownMenuLabel = React.forwardRef<
|
|
193
214
|
React.ElementRef<typeof DropdownMenuPrimitive.Label>,
|
|
194
|
-
|
|
195
|
-
inset?: boolean;
|
|
196
|
-
}
|
|
215
|
+
DropdownMenuLabelProps
|
|
197
216
|
>(({ className, inset, ...props }, ref) => (
|
|
198
217
|
<DropdownMenuPrimitive.Label
|
|
199
218
|
ref={ref}
|
|
@@ -211,9 +230,11 @@ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
|
211
230
|
* Component: DropdownMenuSeparator
|
|
212
231
|
* -------------------------------------------------------------------------- */
|
|
213
232
|
|
|
233
|
+
type DropdownMenuSeparatorProps =
|
|
234
|
+
DropdownMenuPrimitive.DropdownMenuSeparatorProps;
|
|
214
235
|
const DropdownMenuSeparator = React.forwardRef<
|
|
215
236
|
React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
|
|
216
|
-
|
|
237
|
+
DropdownMenuSeparatorProps
|
|
217
238
|
>(({ className, ...props }, ref) => (
|
|
218
239
|
<DropdownMenuPrimitive.Separator
|
|
219
240
|
ref={ref}
|
|
@@ -227,10 +248,11 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
227
248
|
* Component: DropdownMenuShortcut
|
|
228
249
|
* -------------------------------------------------------------------------- */
|
|
229
250
|
|
|
251
|
+
type DropdownMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
230
252
|
function DropdownMenuShortcut({
|
|
231
253
|
className,
|
|
232
254
|
...props
|
|
233
|
-
}:
|
|
255
|
+
}: DropdownMenuShortcutProps): React.JSX.Element {
|
|
234
256
|
return (
|
|
235
257
|
<span
|
|
236
258
|
className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
|
|
@@ -258,4 +280,18 @@ export {
|
|
|
258
280
|
DropdownMenuSubContent,
|
|
259
281
|
DropdownMenuSubTrigger,
|
|
260
282
|
DropdownMenuRadioGroup,
|
|
283
|
+
type DropdownMenuProps,
|
|
284
|
+
type DropdownMenuTriggerProps,
|
|
285
|
+
type DropdownMenuContentProps,
|
|
286
|
+
type DropdownMenuItemProps,
|
|
287
|
+
type DropdownMenuCheckboxItemProps,
|
|
288
|
+
type DropdownMenuRadioItemProps,
|
|
289
|
+
type DropdownMenuLabelProps,
|
|
290
|
+
type DropdownMenuSeparatorProps,
|
|
291
|
+
type DropdownMenuShortcutProps,
|
|
292
|
+
type DropdownMenuGroupProps,
|
|
293
|
+
type DropdownMenuSubProps,
|
|
294
|
+
type DropdownMenuSubContentProps,
|
|
295
|
+
type DropdownMenuSubTriggerProps,
|
|
296
|
+
type DropdownMenuRadioGroupProps,
|
|
261
297
|
};
|
package/src/em.tsx
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
|
|
4
|
+
/* -----------------------------------------------------------------------------
|
|
5
|
+
* Component: Em
|
|
6
|
+
* -------------------------------------------------------------------------- */
|
|
7
|
+
|
|
8
|
+
interface EmProps extends React.HTMLAttributes<HTMLElement> {
|
|
9
|
+
asChild?: boolean;
|
|
10
|
+
}
|
|
11
|
+
const Em = React.forwardRef<HTMLElement, EmProps>(
|
|
12
|
+
({ asChild, ...props }, ref) => {
|
|
13
|
+
const Comp = asChild ? Slot : "em";
|
|
14
|
+
|
|
15
|
+
return <Comp ref={ref} {...props} />;
|
|
16
|
+
},
|
|
17
|
+
);
|
|
18
|
+
Em.displayName = "Em";
|
|
19
|
+
|
|
20
|
+
/* -----------------------------------------------------------------------------
|
|
21
|
+
* Exports
|
|
22
|
+
* -------------------------------------------------------------------------- */
|
|
23
|
+
|
|
24
|
+
export { Em, type EmProps };
|
package/src/form.tsx
CHANGED
|
@@ -78,16 +78,21 @@ const useFormField = (): {
|
|
|
78
78
|
* Component: Form
|
|
79
79
|
* -------------------------------------------------------------------------- */
|
|
80
80
|
|
|
81
|
+
type FormProps = React.ComponentProps<typeof FormProvider>;
|
|
81
82
|
const Form = FormProvider;
|
|
82
83
|
|
|
83
84
|
/* -----------------------------------------------------------------------------
|
|
84
85
|
* Component: FormField
|
|
85
86
|
* -------------------------------------------------------------------------- */
|
|
86
87
|
|
|
88
|
+
type FormFieldProps<
|
|
89
|
+
TFieldValues extends FieldValues = FieldValues,
|
|
90
|
+
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
|
|
91
|
+
> = ControllerProps<TFieldValues, TName>;
|
|
87
92
|
function FormField<
|
|
88
93
|
TFieldValues extends FieldValues = FieldValues,
|
|
89
94
|
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
|
|
90
|
-
>({ ...props }:
|
|
95
|
+
>({ ...props }: FormFieldProps<TFieldValues, TName>): React.JSX.Element {
|
|
91
96
|
return (
|
|
92
97
|
<FormFieldContext.Provider value={{ name: props.name }}>
|
|
93
98
|
<Controller {...props} />
|
|
@@ -99,27 +104,30 @@ function FormField<
|
|
|
99
104
|
* Component: FormItem
|
|
100
105
|
* -------------------------------------------------------------------------- */
|
|
101
106
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
type FormItemProps = React.HTMLAttributes<HTMLDivElement>;
|
|
108
|
+
const FormItem = React.forwardRef<HTMLDivElement, FormItemProps>(
|
|
109
|
+
({ className, ...props }, ref) => {
|
|
110
|
+
const id = React.useId();
|
|
111
|
+
|
|
112
|
+
return (
|
|
113
|
+
<FormItemContext.Provider value={{ id }}>
|
|
114
|
+
<div ref={ref} className={cn("space-y-2", className)} {...props} />
|
|
115
|
+
</FormItemContext.Provider>
|
|
116
|
+
);
|
|
117
|
+
},
|
|
118
|
+
);
|
|
114
119
|
FormItem.displayName = "FormItem";
|
|
115
120
|
|
|
116
121
|
/* -----------------------------------------------------------------------------
|
|
117
122
|
* Component: FormLabel
|
|
118
123
|
* -------------------------------------------------------------------------- */
|
|
119
124
|
|
|
125
|
+
type FormLabelProps = React.ComponentPropsWithoutRef<
|
|
126
|
+
typeof LabelPrimitive.Root
|
|
127
|
+
>;
|
|
120
128
|
const FormLabel = React.forwardRef<
|
|
121
129
|
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
122
|
-
|
|
130
|
+
FormLabelProps
|
|
123
131
|
>(({ className, ...props }, ref) => {
|
|
124
132
|
const { error, formItemId } = useFormField();
|
|
125
133
|
|
|
@@ -138,9 +146,10 @@ FormLabel.displayName = "FormLabel";
|
|
|
138
146
|
* Component: FormControl
|
|
139
147
|
* -------------------------------------------------------------------------- */
|
|
140
148
|
|
|
149
|
+
type FormControlProps = React.ComponentPropsWithoutRef<typeof Slot>;
|
|
141
150
|
const FormControl = React.forwardRef<
|
|
142
151
|
React.ElementRef<typeof Slot>,
|
|
143
|
-
|
|
152
|
+
FormControlProps
|
|
144
153
|
>(({ ...props }, ref) => {
|
|
145
154
|
const { error, formItemId, formDescriptionId, formMessageId } =
|
|
146
155
|
useFormField();
|
|
@@ -163,9 +172,10 @@ FormControl.displayName = "FormControl";
|
|
|
163
172
|
* Component: FormDescription
|
|
164
173
|
* -------------------------------------------------------------------------- */
|
|
165
174
|
|
|
175
|
+
type FormDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;
|
|
166
176
|
const FormDescription = React.forwardRef<
|
|
167
177
|
HTMLParagraphElement,
|
|
168
|
-
|
|
178
|
+
FormDescriptionProps
|
|
169
179
|
>(({ className, ...props }, ref) => {
|
|
170
180
|
const { formDescriptionId } = useFormField();
|
|
171
181
|
|
|
@@ -184,28 +194,28 @@ FormDescription.displayName = "FormDescription";
|
|
|
184
194
|
* Component: FormMessage
|
|
185
195
|
* -------------------------------------------------------------------------- */
|
|
186
196
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
197
|
+
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
|
+
|
|
203
|
+
if (!body) {
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
|
|
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
|
+
);
|
|
209
219
|
FormMessage.displayName = "FormMessage";
|
|
210
220
|
|
|
211
221
|
/* -----------------------------------------------------------------------------
|
|
@@ -221,4 +231,11 @@ export {
|
|
|
221
231
|
FormDescription,
|
|
222
232
|
FormMessage,
|
|
223
233
|
FormField,
|
|
234
|
+
type FormProps,
|
|
235
|
+
type FormItemProps,
|
|
236
|
+
type FormLabelProps,
|
|
237
|
+
type FormControlProps,
|
|
238
|
+
type FormDescriptionProps,
|
|
239
|
+
type FormMessageProps,
|
|
240
|
+
type FormFieldProps,
|
|
224
241
|
};
|
package/src/heading.tsx
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
|
|
4
|
+
/* -----------------------------------------------------------------------------
|
|
5
|
+
* Component: Heading
|
|
6
|
+
* -------------------------------------------------------------------------- */
|
|
7
|
+
|
|
8
|
+
interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
9
|
+
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
}
|
|
12
|
+
const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(
|
|
13
|
+
({ asChild, as: Tag = "h1", ...props }, ref) => {
|
|
14
|
+
const Com = asChild ? Slot : Tag;
|
|
15
|
+
|
|
16
|
+
return <Com ref={ref} {...props} />;
|
|
17
|
+
},
|
|
18
|
+
);
|
|
19
|
+
Heading.displayName = "Heading";
|
|
20
|
+
|
|
21
|
+
/* -----------------------------------------------------------------------------
|
|
22
|
+
* Exports
|
|
23
|
+
* -------------------------------------------------------------------------- */
|
|
24
|
+
|
|
25
|
+
export { Heading, type HeadingProps };
|