@uselets/ui 1.8.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/{chart-DHS2QeM8.d.ts → chart-lqgodZYQ.d.ts} +11 -7
- package/dist/cli/uselets.mjs.map +1 -1
- package/dist/components/accordion.d.ts +5 -5
- package/dist/components/accordion.js +1 -1
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.d.ts +13 -13
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.d.ts +5 -5
- package/dist/components/alert.js +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/anchor.d.ts +2 -2
- package/dist/components/anchor.js +1 -1
- package/dist/components/anchor.js.map +1 -1
- package/dist/components/area-chart.d.ts +9 -3
- package/dist/components/area-chart.js +1 -1
- package/dist/components/area-chart.js.map +1 -1
- package/dist/components/avatar.d.ts +7 -7
- package/dist/components/avatar.js +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.d.ts +2 -2
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/bar-chart.d.ts +15 -5
- package/dist/components/bar-chart.js +1 -1
- package/dist/components/bar-chart.js.map +1 -1
- package/dist/components/breadcrumb.d.ts +8 -8
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button-group.d.ts +4 -4
- package/dist/components/button-group.js +1 -1
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.d.ts +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.d.ts +3 -3
- package/dist/components/calendar.js +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.d.ts +8 -8
- package/dist/components/card.js +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/carousel.d.ts +7 -7
- package/dist/components/carousel.js +1 -1
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/carousel.spec.js +1 -1
- package/dist/components/carousel.spec.js.map +1 -1
- package/dist/components/center.d.ts +2 -2
- package/dist/components/center.js +1 -1
- package/dist/components/center.js.map +1 -1
- package/dist/components/chart.d.ts +2 -2
- package/dist/components/chart.js +2 -2
- package/dist/components/chart.js.map +1 -1
- package/dist/components/checkbox.d.ts +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/code.d.ts +2 -2
- package/dist/components/code.js +1 -1
- package/dist/components/code.js.map +1 -1
- package/dist/components/collapsible.d.ts +4 -4
- package/dist/components/collapsible.js +1 -1
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/combobox.d.ts +16 -16
- package/dist/components/combobox.js +1 -1
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/command.d.ts +10 -10
- package/dist/components/command.js +1 -1
- package/dist/components/command.js.map +1 -1
- package/dist/components/container.d.ts +2 -2
- package/dist/components/container.js +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/data-table.d.ts +9 -9
- package/dist/components/data-table.js +1 -1
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-range-picker.d.ts +12 -12
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/date-range-picker.js.map +1 -1
- package/dist/components/dialog.d.ts +12 -12
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/donut-chart.d.ts +2 -2
- package/dist/components/donut-chart.js +1 -1
- package/dist/components/donut-chart.js.map +1 -1
- package/dist/components/drawer.d.ts +12 -12
- package/dist/components/drawer.js +1 -1
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown-menu.d.ts +16 -16
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/dropzone.d.ts +2 -2
- package/dist/components/dropzone.js +1 -1
- package/dist/components/dropzone.js.map +1 -1
- package/dist/components/empty.d.ts +7 -7
- package/dist/components/empty.js +1 -1
- package/dist/components/empty.js.map +1 -1
- package/dist/components/field.d.ts +11 -11
- package/dist/components/field.js +1 -1
- package/dist/components/field.js.map +1 -1
- package/dist/components/field.spec.js +1 -1
- package/dist/components/field.spec.js.map +1 -1
- package/dist/components/flex.d.ts +2 -2
- package/dist/components/flex.js +1 -1
- package/dist/components/flex.js.map +1 -1
- package/dist/components/grid.d.ts +3 -3
- package/dist/components/grid.js +1 -1
- package/dist/components/grid.js.map +1 -1
- package/dist/components/group.d.ts +2 -2
- package/dist/components/group.js +1 -1
- package/dist/components/group.js.map +1 -1
- package/dist/components/heading.d.ts +2 -2
- package/dist/components/heading.js +1 -1
- package/dist/components/heading.js.map +1 -1
- package/dist/components/hover-card.d.ts +4 -4
- package/dist/components/hover-card.js +1 -1
- package/dist/components/hover-card.js.map +1 -1
- package/dist/components/input-group.d.ts +7 -7
- package/dist/components/input-group.js +1 -1
- package/dist/components/input-group.js.map +1 -1
- package/dist/components/input-otp.d.ts +5 -5
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input-otp.js.map +1 -1
- package/dist/components/input.d.ts +2 -2
- package/dist/components/input.js +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/kbd.d.ts +3 -3
- package/dist/components/kbd.js +1 -1
- package/dist/components/kbd.js.map +1 -1
- package/dist/components/label.d.ts +2 -2
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/components/list.d.ts +4 -4
- package/dist/components/list.js +1 -1
- package/dist/components/list.js.map +1 -1
- package/dist/components/mask-input.d.ts +2 -2
- package/dist/components/mask-input.js +1 -1
- package/dist/components/mask-input.js.map +1 -1
- package/dist/components/native-select.d.ts +4 -4
- package/dist/components/native-select.js +1 -1
- package/dist/components/native-select.js.map +1 -1
- package/dist/components/navigation-menu.d.ts +9 -9
- package/dist/components/navigation-menu.js +1 -1
- package/dist/components/navigation-menu.js.map +1 -1
- package/dist/components/pagination.d.ts +8 -8
- package/dist/components/pagination.js +1 -1
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/pie-chart.d.ts +10 -4
- package/dist/components/pie-chart.js +1 -1
- package/dist/components/pie-chart.js.map +1 -1
- package/dist/components/popover.d.ts +8 -8
- package/dist/components/popover.js +1 -1
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress.d.ts +2 -2
- package/dist/components/progress.js +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-group.d.ts +3 -3
- package/dist/components/radio-group.js +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable.d.ts +4 -4
- package/dist/components/resizable.js +1 -1
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scroll-area.d.ts +3 -3
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/select.d.ts +11 -11
- package/dist/components/select.js +1 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/separator.d.ts +2 -2
- package/dist/components/separator.js +1 -1
- package/dist/components/separator.js.map +1 -1
- package/dist/components/sidebar.d.ts +24 -24
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/simple-grid.d.ts +2 -2
- package/dist/components/simple-grid.js +1 -1
- package/dist/components/simple-grid.js.map +1 -1
- package/dist/components/skeleton.d.ts +2 -2
- package/dist/components/skeleton.js +1 -1
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/skeleton.spec.js +1 -1
- package/dist/components/skeleton.spec.js.map +1 -1
- package/dist/components/slider.d.ts +2 -2
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/sonner.d.ts +2 -2
- package/dist/components/sonner.js +1 -1
- package/dist/components/sonner.js.map +1 -1
- package/dist/components/spinner.d.ts +2 -2
- package/dist/components/spinner.js +1 -1
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/stack.d.ts +2 -2
- package/dist/components/stack.js +1 -1
- package/dist/components/stack.js.map +1 -1
- package/dist/components/switch.d.ts +2 -2
- package/dist/components/switch.js +1 -1
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.d.ts +10 -10
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.d.ts +5 -5
- package/dist/components/tabs.js +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text.d.ts +2 -2
- package/dist/components/text.js +1 -1
- package/dist/components/text.js.map +1 -1
- package/dist/components/textarea.d.ts +2 -2
- package/dist/components/textarea.js +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/theme.d.ts +3 -3
- package/dist/components/theme.js +1 -1
- package/dist/components/theme.js.map +1 -1
- package/dist/components/timeline.d.ts +1 -1
- package/dist/components/timeline.js +1 -1
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toggle-group.d.ts +3 -3
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.d.ts +2 -2
- package/dist/components/toggle.js +1 -1
- package/dist/components/toggle.js.map +1 -1
- package/dist/components/tooltip.d.ts +6 -6
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/unstyled-button.d.ts +2 -2
- package/dist/components/unstyled-button.js +1 -1
- package/dist/components/unstyled-button.js.map +1 -1
- package/dist/components/visibility.d.ts +3 -3
- package/dist/components/visibility.js +1 -1
- package/dist/components/visibility.js.map +1 -1
- package/dist/{dist-C35vdEt2.js → dist-B-hwiqYg.js} +13 -13
- package/dist/dist-B-hwiqYg.js.map +1 -0
- package/dist/hooks/use-breakpoint-value.d.ts +1 -1
- package/dist/hooks/use-breakpoint-value.js +1 -1
- package/dist/hooks/use-breakpoint-value.js.map +1 -1
- package/dist/hooks/use-breakpoint-value.spec.js +1 -1
- package/dist/hooks/use-breakpoint-value.spec.js.map +1 -1
- package/dist/hooks/use-breakpoint.d.ts +1 -1
- package/dist/hooks/use-breakpoint.js +1 -1
- package/dist/hooks/use-breakpoint.js.map +1 -1
- package/dist/hooks/use-breakpoint.spec.js +1 -1
- package/dist/hooks/use-breakpoint.spec.js.map +1 -1
- package/dist/hooks/use-disclosure.d.ts +1 -1
- package/dist/hooks/use-disclosure.js +1 -1
- package/dist/hooks/use-disclosure.js.map +1 -1
- package/dist/hooks/use-disclosure.spec.js +1 -1
- package/dist/hooks/use-disclosure.spec.js.map +1 -1
- package/dist/hooks/use-document-visibility.d.ts +1 -1
- package/dist/hooks/use-document-visibility.js +1 -1
- package/dist/hooks/use-document-visibility.js.map +1 -1
- package/dist/hooks/use-document-visibility.spec.js +1 -1
- package/dist/hooks/use-document-visibility.spec.js.map +1 -1
- package/dist/hooks/use-idle.d.ts +1 -1
- package/dist/hooks/use-idle.js +1 -1
- package/dist/hooks/use-idle.js.map +1 -1
- package/dist/hooks/use-idle.spec.js +1 -1
- package/dist/hooks/use-idle.spec.js.map +1 -1
- package/dist/hooks/use-interval.d.ts +1 -1
- package/dist/hooks/use-interval.js +1 -1
- package/dist/hooks/use-interval.js.map +1 -1
- package/dist/hooks/use-interval.spec.js +1 -1
- package/dist/hooks/use-interval.spec.js.map +1 -1
- package/dist/hooks/use-local-storage.d.ts +1 -1
- package/dist/hooks/use-local-storage.js +1 -1
- package/dist/hooks/use-local-storage.js.map +1 -1
- package/dist/hooks/use-local-storage.spec.js +1 -1
- package/dist/hooks/use-local-storage.spec.js.map +1 -1
- package/dist/hooks/use-mask.d.ts +1 -1
- package/dist/hooks/use-mask.js +1 -1
- package/dist/hooks/use-mask.js.map +1 -1
- package/dist/hooks/use-mobile.d.ts +1 -1
- package/dist/hooks/use-mobile.js +1 -1
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/hooks/use-mobile.spec.js +1 -1
- package/dist/hooks/use-mobile.spec.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/lib/badge.d.ts +1 -1
- package/dist/lib/button.d.ts +1 -1
- package/dist/lib/color.d.ts +1 -1
- package/dist/lib/compose-refs.d.ts +1 -1
- package/dist/lib/compose-refs.js +1 -1
- package/dist/lib/compose-refs.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/{magic-string.es-C-uSEkg2.js → magic-string.es-DbBO8R0S.js} +2 -2
- package/dist/{magic-string.es-C-uSEkg2.js.map → magic-string.es-DbBO8R0S.js.map} +1 -1
- package/dist/{react.esm-BagSCtI3.js → react.esm-D88qr0ij.js} +12 -12
- package/dist/{react.esm-BagSCtI3.js.map → react.esm-D88qr0ij.js.map} +1 -1
- package/dist/skills/uselets-ui/references/component-catalog.md +7 -7
- package/package.json +17 -14
- package/skills/uselets-ui/references/component-catalog.md +7 -7
- package/dist/dist-C35vdEt2.js.map +0 -1
- /package/dist/{chunk-CHh1Zzun.js → rolldown-runtime-Bdj-bS2b.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import { Label } from "./label.js";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
|
|
@@ -24,16 +24,16 @@ declare function useFieldControlId(id?: string): string | undefined;
|
|
|
24
24
|
declare function FieldSet({
|
|
25
25
|
className,
|
|
26
26
|
...props
|
|
27
|
-
}: FieldSetProps): import("react
|
|
27
|
+
}: FieldSetProps): import("react").JSX.Element;
|
|
28
28
|
declare function FieldLegend({
|
|
29
29
|
className,
|
|
30
30
|
variant,
|
|
31
31
|
...props
|
|
32
|
-
}: FieldLegendProps): import("react
|
|
32
|
+
}: FieldLegendProps): import("react").JSX.Element;
|
|
33
33
|
declare function FieldGroup({
|
|
34
34
|
className,
|
|
35
35
|
...props
|
|
36
|
-
}: FieldGroupProps): import("react
|
|
36
|
+
}: FieldGroupProps): import("react").JSX.Element;
|
|
37
37
|
declare const fieldVariants: (props?: ({
|
|
38
38
|
orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
|
|
39
39
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -42,35 +42,35 @@ declare function Field({
|
|
|
42
42
|
className,
|
|
43
43
|
orientation,
|
|
44
44
|
...props
|
|
45
|
-
}: FieldProps): import("react
|
|
45
|
+
}: FieldProps): import("react").JSX.Element;
|
|
46
46
|
declare function FieldContent({
|
|
47
47
|
className,
|
|
48
48
|
...props
|
|
49
|
-
}: FieldContentProps): import("react
|
|
49
|
+
}: FieldContentProps): import("react").JSX.Element;
|
|
50
50
|
declare function FieldLabel({
|
|
51
51
|
className,
|
|
52
52
|
htmlFor,
|
|
53
53
|
...props
|
|
54
|
-
}: FieldLabelProps): import("react
|
|
54
|
+
}: FieldLabelProps): import("react").JSX.Element;
|
|
55
55
|
declare function FieldTitle({
|
|
56
56
|
className,
|
|
57
57
|
...props
|
|
58
|
-
}: FieldTitleProps): import("react
|
|
58
|
+
}: FieldTitleProps): import("react").JSX.Element;
|
|
59
59
|
declare function FieldDescription({
|
|
60
60
|
className,
|
|
61
61
|
...props
|
|
62
|
-
}: FieldDescriptionProps): import("react
|
|
62
|
+
}: FieldDescriptionProps): import("react").JSX.Element;
|
|
63
63
|
declare function FieldSeparator({
|
|
64
64
|
children,
|
|
65
65
|
className,
|
|
66
66
|
...props
|
|
67
|
-
}: FieldSeparatorProps): import("react
|
|
67
|
+
}: FieldSeparatorProps): import("react").JSX.Element;
|
|
68
68
|
declare function FieldError({
|
|
69
69
|
className,
|
|
70
70
|
children,
|
|
71
71
|
errors,
|
|
72
72
|
...props
|
|
73
|
-
}: FieldErrorProps): import("react
|
|
73
|
+
}: FieldErrorProps): import("react").JSX.Element | null;
|
|
74
74
|
//#endregion
|
|
75
75
|
export { Field, FieldContent, FieldContentProps, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorProps, FieldGroup, FieldGroupProps, FieldLabel, FieldLabelProps, FieldLegend, FieldLegendProps, FieldProps, FieldSeparator, FieldSeparatorProps, FieldSet, FieldSetProps, FieldTitle, FieldTitleProps, useFieldControlId };
|
|
76
76
|
//# sourceMappingURL=field.d.ts.map
|
package/dist/components/field.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Separator as t}from"./separator.js";import{Label as n}from"./label.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";import{cva as a}from"class-variance-authority";import{createContext as o,useContext as s,useId as c,useMemo as l}from"react";const u=o(null);function useFieldControlId(e){let t=s(u);return e??t?.controlId}function FieldSet({className:t,...n}){return r(`fieldset`,{"data-slot":`field-set`,className:e(`flex flex-col gap-4`,`has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,t),...n})}function FieldLegend({className:t,variant:n=`legend`,...i}){return r(`legend`,{"data-slot":`field-legend`,"data-variant":n,className:e(`mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base`,t),...i})}function FieldGroup({className:t,...n}){return r(`div`,{"data-slot":`field-group`,className:e(`group/field-group @container/field-group flex w-full flex-col gap-5`,`data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,t),...n})}const d=a(`data-[invalid=true]:text-destructive gap-1 group/field flex w-full`,{variants:{orientation:{vertical:`flex-col *:w-full [&>.sr-only]:w-auto`,horizontal:`flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`,responsive:`flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`}},defaultVariants:{orientation:`vertical`}});function Field({className:t,orientation:n=`vertical`,...i}){let a=c(),o=l(()=>({controlId:a}),[a]);return r(u.Provider,{value:o,children:r(`div`,{"data-slot":`field`,"data-orientation":n,className:e(d({orientation:n}),t),...i})})}function FieldContent({className:t,...n}){return r(`div`,{"data-slot":`field-content`,className:e(`gap-0.5 group/field-content flex flex-1 flex-col leading-snug`,t),...n})}function FieldLabel({className:t,htmlFor:i,...a}){return r(n,{"data-slot":`field-label`,htmlFor:useFieldControlId(i),className:e(`group/field-label peer/field-label flex w-fit gap-2 leading-snug`,`has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10`,`has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5`,`group-data-[disabled=true]/field:opacity-50`,t),...a})}function FieldTitle({className:t,...n}){return r(`div`,{"data-slot":`field-label`,className:e(`gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug`,t),...n})}function FieldDescription({className:t,...n}){return r(`p`,{"data-slot":`field-description`,className:e(`text-muted-foreground text-left text-xs leading-normal font-normal`,`[[data-variant=legend]+&]:-mt-1.5 group-has-data-horizontal/field:text-balance last:mt-0 nth-last-2:-mt-1`,`[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary`,t),...n})}function FieldSeparator({children:n,className:a,...o}){return i(`div`,{"data-slot":`field-separator`,"data-content":!!n,className:e(`-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative`,a),...o,children:[r(t,{className:`absolute inset-0 top-1/2`}),n&&r(`span`,{className:`text-muted-foreground px-2 bg-background relative mx-auto block w-fit`,"data-slot":`field-separator-content`,children:n})]})}function FieldError({className:t,children:n,errors:i,...a}){let o=l(()=>{if(n)return n;if(!i?.length)return null;let e=[...new Map(i.map(e=>[e?.message,e])).values()];return e?.length===1?e[0]?.message:r(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:e.map(e=>e?.message&&r(`li`,{children:e.message},e.message))})},[n,i]);return o?r(`div`,{role:`alert`,"data-slot":`field-error`,className:e(`text-destructive text-sm font-normal`,t),...a,children:o}):null}export{Field,FieldContent,FieldDescription,FieldError,FieldGroup,FieldLabel,FieldLegend,FieldSeparator,FieldSet,FieldTitle,useFieldControlId};
|
|
2
2
|
//# sourceMappingURL=field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","names":[],"sources":["../../src/components/field.tsx"],"sourcesContent":["import { createContext, useContext, useId, useMemo } from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\nimport { Label } from './label'\nimport { Separator } from './separator'\n\nexport type FieldSetProps = React.ComponentProps<'fieldset'>\n\nexport type FieldLegendProps = React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }\n\nexport type FieldGroupProps = React.ComponentProps<'div'>\n\nexport type FieldContentProps = React.ComponentProps<'div'>\n\nexport type FieldLabelProps = React.ComponentProps<typeof Label>\n\nexport type FieldTitleProps = React.ComponentProps<'div'>\n\nexport type FieldDescriptionProps = React.ComponentProps<'p'>\n\nexport type FieldSeparatorProps = React.ComponentProps<'div'> & {\n children?: React.ReactNode\n}\n\nexport type FieldErrorProps = React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>\n}\n\ntype FieldContextValue = {\n controlId: string\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null)\n\nfunction useFieldControlId(id?: string) {\n const context = useContext(FieldContext)\n\n return id ?? context?.controlId\n}\n\nfunction FieldSet({ className, ...props }: FieldSetProps) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4',\n 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({ className, variant = 'legend', ...props }: FieldLegendProps) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base', className)}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: FieldGroupProps) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-5',\n 'data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva('data-[invalid=true]:text-destructive gap-1 group/field flex w-full', {\n variants: {\n orientation: {\n vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n 'flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px'\n }\n },\n defaultVariants: {\n orientation: 'vertical'\n }\n})\n\nexport type FieldProps = React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>\n\nfunction Field({ className, orientation = 'vertical', ...props }: FieldProps) {\n const controlId = useId()\n const contextValue = useMemo(() => ({ controlId }), [controlId])\n\n return (\n <FieldContext.Provider value={contextValue}>\n <div\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n </FieldContext.Provider>\n )\n}\n\nfunction FieldContent({ className, ...props }: FieldContentProps) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('gap-0.5 group/field-content flex flex-1 flex-col leading-snug', className)}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({ className, htmlFor, ...props }: FieldLabelProps) {\n const fieldControlId = useFieldControlId(htmlFor)\n\n return (\n <Label\n data-slot=\"field-label\"\n htmlFor={fieldControlId}\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug',\n 'has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5',\n 'group-data-[disabled=true]/field:opacity-50',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: FieldTitleProps) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: FieldDescriptionProps) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-muted-foreground text-left text-xs leading-normal font-normal',\n '[[data-variant=legend]+&]:-mt-1.5 group-has-data-horizontal/field:text-balance last:mt-0 nth-last-2:-mt-1',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({ children, className, ...props }: FieldSeparatorProps) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"text-muted-foreground px-2 bg-background relative mx-auto block w-fit\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({ className, children, errors, ...props }: FieldErrorProps) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors?.length) {\n return null\n }\n\n const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()]\n\n if (uniqueErrors?.length === 1) {\n return uniqueErrors[0]?.message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map((error) => error?.message && <li key={error.message}>{error.message}</li>)}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-destructive text-sm font-normal', className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n useFieldControlId\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"field.js","names":[],"sources":["../../src/components/field.tsx"],"sourcesContent":["import { createContext, useContext, useId, useMemo } from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\nimport { Label } from './label'\nimport { Separator } from './separator'\n\nexport type FieldSetProps = React.ComponentProps<'fieldset'>\n\nexport type FieldLegendProps = React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }\n\nexport type FieldGroupProps = React.ComponentProps<'div'>\n\nexport type FieldContentProps = React.ComponentProps<'div'>\n\nexport type FieldLabelProps = React.ComponentProps<typeof Label>\n\nexport type FieldTitleProps = React.ComponentProps<'div'>\n\nexport type FieldDescriptionProps = React.ComponentProps<'p'>\n\nexport type FieldSeparatorProps = React.ComponentProps<'div'> & {\n children?: React.ReactNode\n}\n\nexport type FieldErrorProps = React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>\n}\n\ntype FieldContextValue = {\n controlId: string\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null)\n\nfunction useFieldControlId(id?: string) {\n const context = useContext(FieldContext)\n\n return id ?? context?.controlId\n}\n\nfunction FieldSet({ className, ...props }: FieldSetProps) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4',\n 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({ className, variant = 'legend', ...props }: FieldLegendProps) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base', className)}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: FieldGroupProps) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-5',\n 'data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva('data-[invalid=true]:text-destructive gap-1 group/field flex w-full', {\n variants: {\n orientation: {\n vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n 'flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px'\n }\n },\n defaultVariants: {\n orientation: 'vertical'\n }\n})\n\nexport type FieldProps = React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>\n\nfunction Field({ className, orientation = 'vertical', ...props }: FieldProps) {\n const controlId = useId()\n const contextValue = useMemo(() => ({ controlId }), [controlId])\n\n return (\n <FieldContext.Provider value={contextValue}>\n <div\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n </FieldContext.Provider>\n )\n}\n\nfunction FieldContent({ className, ...props }: FieldContentProps) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('gap-0.5 group/field-content flex flex-1 flex-col leading-snug', className)}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({ className, htmlFor, ...props }: FieldLabelProps) {\n const fieldControlId = useFieldControlId(htmlFor)\n\n return (\n <Label\n data-slot=\"field-label\"\n htmlFor={fieldControlId}\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug',\n 'has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5',\n 'group-data-[disabled=true]/field:opacity-50',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: FieldTitleProps) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: FieldDescriptionProps) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-muted-foreground text-left text-xs leading-normal font-normal',\n '[[data-variant=legend]+&]:-mt-1.5 group-has-data-horizontal/field:text-balance last:mt-0 nth-last-2:-mt-1',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({ children, className, ...props }: FieldSeparatorProps) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"text-muted-foreground px-2 bg-background relative mx-auto block w-fit\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({ className, children, errors, ...props }: FieldErrorProps) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors?.length) {\n return null\n }\n\n const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()]\n\n if (uniqueErrors?.length === 1) {\n return uniqueErrors[0]?.message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map((error) => error?.message && <li key={error.message}>{error.message}</li>)}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-destructive text-sm font-normal', className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n useFieldControlId\n}\n"],"mappings":"0UAkCA,MAAM,EAAe,EAAwC,IAAI,EAEjE,SAAS,kBAAkB,EAAa,CACtC,IAAM,EAAU,EAAW,CAAY,EAEvC,OAAO,GAAM,GAAS,SACxB,CAEA,SAAS,SAAS,CAAE,YAAW,GAAG,GAAwB,CACxD,OACE,EAAC,WAAD,CACE,YAAU,YACV,UAAW,EACT,sBACA,+EACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,YAAY,CAAE,YAAW,UAAU,SAAU,GAAG,GAA2B,CAClF,OACE,EAAC,SAAD,CACE,YAAU,eACV,eAAc,EACd,UAAW,EAAG,kFAAmF,CAAS,EAC1G,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,WAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OACE,EAAC,MAAD,CACE,YAAU,cACV,UAAW,EACT,sEACA,mEACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,MAAM,EAAgB,EAAI,qEAAsE,CAC9F,SAAU,CACR,YAAa,CACX,SAAU,wCACV,WACE,iLACF,WACE,+TACJ,CACF,EACA,gBAAiB,CACf,YAAa,UACf,CACF,CAAC,EAID,SAAS,MAAM,CAAE,YAAW,cAAc,WAAY,GAAG,GAAqB,CAC5E,IAAM,EAAY,EAAM,EAClB,EAAe,OAAe,CAAE,WAAU,GAAI,CAAC,CAAS,CAAC,EAE/D,OACE,EAAC,EAAa,SAAd,CAAuB,MAAO,WAC5B,EAAC,MAAD,CACE,YAAU,QACV,mBAAkB,EAClB,UAAW,EAAG,EAAc,CAAE,aAAY,CAAC,EAAG,CAAS,EACvD,GAAI,CACL,CAAA,CACoB,CAAA,CAE3B,CAEA,SAAS,aAAa,CAAE,YAAW,GAAG,GAA4B,CAChE,OACE,EAAC,MAAD,CACE,YAAU,gBACV,UAAW,EAAG,gEAAiE,CAAS,EACxF,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,WAAW,CAAE,YAAW,UAAS,GAAG,GAA0B,CAGrE,OACE,EAAC,EAAD,CACE,YAAU,cACV,QALmB,kBAAkB,CAKf,EACtB,UAAW,EACT,mEACA,+IACA,kKACA,8CACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,WAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OACE,EAAC,MAAD,CACE,YAAU,cACV,UAAW,EACT,6GACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,iBAAiB,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAAC,IAAD,CACE,YAAU,oBACV,UAAW,EACT,qEACA,4GACA,oEACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,eAAe,CAAE,WAAU,YAAW,GAAG,GAA8B,CAC9E,OACE,EAAC,MAAD,CACE,YAAU,kBACV,eAAc,CAAC,CAAC,EAChB,UAAW,EAAG,4EAA6E,CAAS,EACpG,GAAI,WAJN,CAME,EAAC,EAAD,CAAW,UAAU,0BAA4B,CAAA,EAChD,GACC,EAAC,OAAD,CACE,UAAU,wEACV,YAAU,0BAET,UACG,CAAA,CAEL,GAET,CAEA,SAAS,WAAW,CAAE,YAAW,WAAU,SAAQ,GAAG,GAA0B,CAC9E,IAAM,EAAU,MAAc,CAC5B,GAAI,EACF,OAAO,EAGT,GAAI,CAAC,GAAQ,OACX,OAAO,KAGT,IAAM,EAAe,CAAC,GAAG,IAAI,IAAI,EAAO,IAAK,GAAU,CAAC,GAAO,QAAS,CAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAMzF,OAJI,GAAc,SAAW,EACpB,EAAa,EAAE,EAAE,QAIxB,EAAC,KAAD,CAAI,UAAU,8CACX,EAAa,IAAK,GAAU,GAAO,SAAW,EAAC,KAAD,CAAA,SAAyB,EAAM,OAAY,EAAlC,EAAM,OAA4B,CAAC,CACzF,CAAA,CAER,EAAG,CAAC,EAAU,CAAM,CAAC,EAMrB,OAJK,EAKH,EAAC,MAAD,CACE,KAAK,QACL,YAAU,cACV,UAAW,EAAG,uCAAwC,CAAS,EAC/D,GAAI,WAEH,CACE,CAAA,EAXE,IAaX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{Field as e,FieldLabel as t}from"./field.js";import{Checkbox as n}from"./checkbox.js";import{Input as r}from"./input.js";import{Textarea as i}from"./textarea.js";import{Select as a,SelectTrigger as o,SelectValue as s}from"./select.js";import{NativeSelect as c,NativeSelectOption as l}from"./native-select.js";import{a as u,r as d}from"../react.esm-D88qr0ij.js";import{Fragment as f,jsx as p,jsxs as m}from"react/jsx-runtime";describe(`Field automatic control ids`,()=>{it(`wires FieldLabel and Input with a generated id when ids are omitted`,()=>{d(m(e,{children:[p(t,{children:`Email`}),p(r,{})]}));let n=u.getByLabelText(`Email`),i=u.getByText(`Email`);expect(n.getAttribute(`id`)).toBeTruthy(),expect(i.getAttribute(`for`)).toBe(n.getAttribute(`id`))}),it(`preserves explicit input ids and label htmlFor values`,()=>{d(m(e,{children:[p(t,{htmlFor:`explicit-label-target`,children:`Email`}),p(r,{id:`explicit-input`})]})),expect(u.getByText(`Email`).getAttribute(`for`)).toBe(`explicit-label-target`),expect(document.getElementById(`explicit-input`)).not.toBeNull()}),it(`does not assign ids or throw outside Field`,()=>{let{container:e}=d(m(f,{children:[p(t,{children:`Email`}),p(r,{})]}));expect(e.querySelector(`[data-slot="field-label"]`)?.getAttribute(`for`)).toBeNull(),expect(e.querySelector(`[data-slot="input"]`)?.getAttribute(`id`)).toBeNull()}),it(`wires representative controls to the generated Field id`,()=>{d(m(f,{children:[m(e,{children:[p(t,{children:`Message`}),p(i,{})]}),m(e,{children:[p(t,{children:`Framework`}),p(c,{children:p(l,{value:`react`,children:`React`})})]}),m(e,{children:[p(t,{children:`Category`}),p(a,{children:p(o,{children:p(s,{placeholder:`Select a category`})})})]}),m(e,{children:[p(t,{children:`Terms`}),p(n,{})]})]}));for(let e of[`Message`,`Framework`,`Category`,`Terms`]){let t=u.getByText(e).getAttribute(`for`);expect(t).toBeTruthy(),expect(document.getElementById(t??``)).not.toBeNull()}})});
|
|
2
2
|
//# sourceMappingURL=field.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.spec.js","names":[],"sources":["../../src/components/field.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Checkbox } from './checkbox'\nimport { Field, FieldLabel } from './field'\nimport { Input } from './input'\nimport { NativeSelect, NativeSelectOption } from './native-select'\nimport { Select, SelectTrigger, SelectValue } from './select'\nimport { Textarea } from './textarea'\n\ndescribe('Field automatic control ids', () => {\n it('wires FieldLabel and Input with a generated id when ids are omitted', () => {\n render(\n <Field>\n <FieldLabel>Email</FieldLabel>\n <Input />\n </Field>\n )\n\n const input = screen.getByLabelText('Email')\n const label = screen.getByText('Email')\n\n expect(input.getAttribute('id')).toBeTruthy()\n expect(label.getAttribute('for')).toBe(input.getAttribute('id'))\n })\n\n it('preserves explicit input ids and label htmlFor values', () => {\n render(\n <Field>\n <FieldLabel htmlFor=\"explicit-label-target\">Email</FieldLabel>\n <Input id=\"explicit-input\" />\n </Field>\n )\n\n expect(screen.getByText('Email').getAttribute('for')).toBe('explicit-label-target')\n expect(document.getElementById('explicit-input')).not.toBeNull()\n })\n\n it('does not assign ids or throw outside Field', () => {\n const { container } = render(\n <>\n <FieldLabel>Email</FieldLabel>\n <Input />\n </>\n )\n\n expect(container.querySelector('[data-slot=\"field-label\"]')?.getAttribute('for')).toBeNull()\n expect(container.querySelector('[data-slot=\"input\"]')?.getAttribute('id')).toBeNull()\n })\n\n it('wires representative controls to the generated Field id', () => {\n render(\n <>\n <Field>\n <FieldLabel>Message</FieldLabel>\n <Textarea />\n </Field>\n\n <Field>\n <FieldLabel>Framework</FieldLabel>\n <NativeSelect>\n <NativeSelectOption value=\"react\">React</NativeSelectOption>\n </NativeSelect>\n </Field>\n\n <Field>\n <FieldLabel>Category</FieldLabel>\n <Select>\n <SelectTrigger>\n <SelectValue placeholder=\"Select a category\" />\n </SelectTrigger>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>Terms</FieldLabel>\n <Checkbox />\n </Field>\n </>\n )\n\n for (const label of ['Message', 'Framework', 'Category', 'Terms']) {\n const labelElement = screen.getByText(label)\n const controlId = labelElement.getAttribute('for')\n\n expect(controlId).toBeTruthy()\n expect(document.getElementById(controlId ?? '')).not.toBeNull()\n }\n })\n})\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"field.spec.js","names":[],"sources":["../../src/components/field.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Checkbox } from './checkbox'\nimport { Field, FieldLabel } from './field'\nimport { Input } from './input'\nimport { NativeSelect, NativeSelectOption } from './native-select'\nimport { Select, SelectTrigger, SelectValue } from './select'\nimport { Textarea } from './textarea'\n\ndescribe('Field automatic control ids', () => {\n it('wires FieldLabel and Input with a generated id when ids are omitted', () => {\n render(\n <Field>\n <FieldLabel>Email</FieldLabel>\n <Input />\n </Field>\n )\n\n const input = screen.getByLabelText('Email')\n const label = screen.getByText('Email')\n\n expect(input.getAttribute('id')).toBeTruthy()\n expect(label.getAttribute('for')).toBe(input.getAttribute('id'))\n })\n\n it('preserves explicit input ids and label htmlFor values', () => {\n render(\n <Field>\n <FieldLabel htmlFor=\"explicit-label-target\">Email</FieldLabel>\n <Input id=\"explicit-input\" />\n </Field>\n )\n\n expect(screen.getByText('Email').getAttribute('for')).toBe('explicit-label-target')\n expect(document.getElementById('explicit-input')).not.toBeNull()\n })\n\n it('does not assign ids or throw outside Field', () => {\n const { container } = render(\n <>\n <FieldLabel>Email</FieldLabel>\n <Input />\n </>\n )\n\n expect(container.querySelector('[data-slot=\"field-label\"]')?.getAttribute('for')).toBeNull()\n expect(container.querySelector('[data-slot=\"input\"]')?.getAttribute('id')).toBeNull()\n })\n\n it('wires representative controls to the generated Field id', () => {\n render(\n <>\n <Field>\n <FieldLabel>Message</FieldLabel>\n <Textarea />\n </Field>\n\n <Field>\n <FieldLabel>Framework</FieldLabel>\n <NativeSelect>\n <NativeSelectOption value=\"react\">React</NativeSelectOption>\n </NativeSelect>\n </Field>\n\n <Field>\n <FieldLabel>Category</FieldLabel>\n <Select>\n <SelectTrigger>\n <SelectValue placeholder=\"Select a category\" />\n </SelectTrigger>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>Terms</FieldLabel>\n <Checkbox />\n </Field>\n </>\n )\n\n for (const label of ['Message', 'Framework', 'Category', 'Terms']) {\n const labelElement = screen.getByText(label)\n const controlId = labelElement.getAttribute('for')\n\n expect(controlId).toBeTruthy()\n expect(document.getElementById(controlId ?? '')).not.toBeNull()\n }\n })\n})\n"],"mappings":"udASA,SAAS,kCAAqC,CAC5C,GAAG,0EAA6E,CAC9E,EACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,OAAiB,CAAA,EAC7B,EAAC,EAAD,CAAQ,CAAA,CACH,CAAA,CAAA,CACT,EAEA,IAAM,EAAQ,EAAO,eAAe,OAAO,EACrC,EAAQ,EAAO,UAAU,OAAO,EAEtC,OAAO,EAAM,aAAa,IAAI,CAAC,CAAC,CAAC,WAAW,EAC5C,OAAO,EAAM,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,EAAM,aAAa,IAAI,CAAC,CACjE,CAAC,EAED,GAAG,4DAA+D,CAChE,EACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAY,QAAQ,iCAAwB,OAAiB,CAAA,EAC7D,EAAC,EAAD,CAAO,GAAG,gBAAkB,CAAA,CACvB,CAAA,CAAA,CACT,EAEA,OAAO,EAAO,UAAU,OAAO,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,uBAAuB,EAClF,OAAO,SAAS,eAAe,gBAAgB,CAAC,CAAC,CAAC,IAAI,SAAS,CACjE,CAAC,EAED,GAAG,iDAAoD,CACrD,GAAM,CAAE,aAAc,EACpB,EAAA,EAAA,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,OAAiB,CAAA,EAC7B,EAAC,EAAD,CAAQ,CAAA,CACR,CAAA,CAAA,CACJ,EAEA,OAAO,EAAU,cAAc,2BAA2B,CAAC,EAAE,aAAa,KAAK,CAAC,CAAC,CAAC,SAAS,EAC3F,OAAO,EAAU,cAAc,qBAAqB,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC,SAAS,CACtF,CAAC,EAED,GAAG,8DAAiE,CAClE,EACE,EAAA,EAAA,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,SAAmB,CAAA,EAC/B,EAAC,EAAD,CAAW,CAAA,CACN,CAAA,CAAA,EAEP,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,WAAqB,CAAA,EACjC,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAoB,MAAM,iBAAQ,OAAyB,CAAA,CAC/C,CAAA,CACT,CAAA,CAAA,EAEP,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,UAAoB,CAAA,EAChC,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAa,YAAY,mBAAqB,CAAA,CACjC,CAAA,CACT,CAAA,CACH,CAAA,CAAA,EAEP,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,OAAiB,CAAA,EAC7B,EAAC,EAAD,CAAW,CAAA,CACN,CAAA,CAAA,CACP,CAAA,CAAA,CACJ,EAEA,IAAK,IAAM,IAAS,CAAC,UAAW,YAAa,WAAY,OAAO,EAAG,CAEjE,IAAM,EADe,EAAO,UAAU,CACT,CAAC,CAAC,aAAa,KAAK,EAEjD,OAAO,CAAS,CAAC,CAAC,WAAW,EAC7B,OAAO,SAAS,eAAe,GAAa,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAChE,CACF,CAAC,CACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
@@ -19,7 +19,7 @@ declare function Flex({
|
|
|
19
19
|
wrap,
|
|
20
20
|
gap,
|
|
21
21
|
...props
|
|
22
|
-
}: FlexProps):
|
|
22
|
+
}: FlexProps): React.JSX.Element;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { Flex, FlexProps, flexVariants };
|
|
25
25
|
//# sourceMappingURL=flex.d.ts.map
|
package/dist/components/flex.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`flex min-w-0`,{variants:{direction:{row:`flex-row`,"row-reverse":`flex-row-reverse`,column:`flex-col`,"column-reverse":`flex-col-reverse`},align:{start:`items-start`,end:`items-end`,center:`items-center`,baseline:`items-baseline`,stretch:`items-stretch`},justify:{start:`justify-start`,end:`justify-end`,center:`justify-center`,between:`justify-between`,around:`justify-around`,evenly:`justify-evenly`},wrap:{true:`flex-wrap`,false:`flex-nowrap`},gap:{xs:`gap-1`,sm:`gap-2`,md:`gap-4`,lg:`gap-6`,xl:`gap-8`}},defaultVariants:{direction:`row`,wrap:!1}});function Flex({className:n,direction:i=`row`,align:a,justify:o,wrap:s=!1,gap:c,...l}){return t(`div`,{"data-slot":`flex`,"data-direction":i,"data-align":a,"data-justify":o,"data-wrap":s?`true`:`false`,"data-gap":c,className:e(r({direction:i,align:a,justify:o,wrap:s,gap:c}),n),...l})}export{Flex,r as flexVariants};
|
|
2
2
|
//# sourceMappingURL=flex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flex.js","names":[],"sources":["../../src/components/flex.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst flexVariants = cva('flex min-w-0', {\n variants: {\n direction: {\n row: 'flex-row',\n 'row-reverse': 'flex-row-reverse',\n column: 'flex-col',\n 'column-reverse': 'flex-col-reverse'\n },\n align: {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch'\n },\n justify: {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly'\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap'\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8'\n }\n },\n defaultVariants: {\n direction: 'row',\n wrap: false\n }\n})\n\nexport type FlexProps = React.ComponentProps<'div'> & VariantProps<typeof flexVariants>\n\nfunction Flex({ className, direction = 'row', align, justify, wrap = false, gap, ...props }: FlexProps) {\n return (\n <div\n data-slot=\"flex\"\n data-direction={direction}\n data-align={align}\n data-justify={justify}\n data-wrap={wrap ? 'true' : 'false'}\n data-gap={gap}\n className={cn(flexVariants({ direction, align, justify, wrap, gap }), className)}\n {...props}\n />\n )\n}\n\nexport { Flex, flexVariants }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"flex.js","names":[],"sources":["../../src/components/flex.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst flexVariants = cva('flex min-w-0', {\n variants: {\n direction: {\n row: 'flex-row',\n 'row-reverse': 'flex-row-reverse',\n column: 'flex-col',\n 'column-reverse': 'flex-col-reverse'\n },\n align: {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch'\n },\n justify: {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly'\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap'\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8'\n }\n },\n defaultVariants: {\n direction: 'row',\n wrap: false\n }\n})\n\nexport type FlexProps = React.ComponentProps<'div'> & VariantProps<typeof flexVariants>\n\nfunction Flex({ className, direction = 'row', align, justify, wrap = false, gap, ...props }: FlexProps) {\n return (\n <div\n data-slot=\"flex\"\n data-direction={direction}\n data-align={align}\n data-justify={justify}\n data-wrap={wrap ? 'true' : 'false'}\n data-gap={gap}\n className={cn(flexVariants({ direction, align, justify, wrap, gap }), className)}\n {...props}\n />\n )\n}\n\nexport { Flex, flexVariants }\n"],"mappings":"oKAMA,MAAM,EAAe,EAAI,eAAgB,CACvC,SAAU,CACR,UAAW,CACT,IAAK,WACL,cAAe,mBACf,OAAQ,WACR,iBAAkB,kBACpB,EACA,MAAO,CACL,MAAO,cACP,IAAK,YACL,OAAQ,eACR,SAAU,iBACV,QAAS,eACX,EACA,QAAS,CACP,MAAO,gBACP,IAAK,cACL,OAAQ,iBACR,QAAS,kBACT,OAAQ,iBACR,OAAQ,gBACV,EACA,KAAM,CACJ,KAAM,YACN,MAAO,aACT,EACA,IAAK,CACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACN,CACF,EACA,gBAAiB,CACf,UAAW,MACX,KAAM,EACR,CACF,CAAC,EAID,SAAS,KAAK,CAAE,YAAW,YAAY,MAAO,QAAO,UAAS,OAAO,GAAO,MAAK,GAAG,GAAoB,CACtG,OACE,EAAC,MAAD,CACE,YAAU,OACV,iBAAgB,EAChB,aAAY,EACZ,eAAc,EACd,YAAW,EAAO,OAAS,QAC3B,WAAU,EACV,UAAW,EAAG,EAAa,CAAE,YAAW,QAAO,UAAS,OAAM,KAAI,CAAC,EAAG,CAAS,EAC/E,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/grid.d.ts
|
|
@@ -19,7 +19,7 @@ declare function Grid({
|
|
|
19
19
|
templateColumns,
|
|
20
20
|
style,
|
|
21
21
|
...props
|
|
22
|
-
}: GridProps):
|
|
22
|
+
}: GridProps): React.JSX.Element;
|
|
23
23
|
type GridItemProps = React.ComponentProps<'div'> & {
|
|
24
24
|
rowSpan?: number;
|
|
25
25
|
colSpan?: number;
|
|
@@ -30,7 +30,7 @@ declare function GridItem({
|
|
|
30
30
|
colSpan,
|
|
31
31
|
style,
|
|
32
32
|
...props
|
|
33
|
-
}: GridItemProps):
|
|
33
|
+
}: GridItemProps): React.JSX.Element;
|
|
34
34
|
//#endregion
|
|
35
35
|
export { Grid, GridItem, GridItemProps, GridProps };
|
|
36
36
|
//# sourceMappingURL=grid.d.ts.map
|
package/dist/components/grid.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";const n={xs:1,sm:2,md:4,lg:6,xl:8};function toSpacingValue(e){return`calc(var(--spacing) * ${n[e]})`}function Grid({className:n,gap:r,rowGap:i,columnGap:a,templateRows:o,templateColumns:s=`repeat(12, minmax(0, 1fr))`,style:c,...l}){return t(`div`,{"data-slot":`grid`,className:e(`grid min-w-0`,`grid-cols-(--grid-template-columns) grid-rows-(--grid-template-rows)`,`gap-(--grid-gap) gap-y-(--grid-row-gap) gap-x-(--grid-column-gap)`,n),style:{"--grid-template-columns":s,"--grid-template-rows":o,"--grid-gap":r?toSpacingValue(r):`0px`,"--grid-row-gap":i?toSpacingValue(i):`var(--grid-gap)`,"--grid-column-gap":a?toSpacingValue(a):`var(--grid-gap)`,...c},...l})}function GridItem({className:n,rowSpan:r,colSpan:i=12,style:a,...o}){return t(`div`,{"data-slot":`grid-item`,className:e(`min-w-0`,`col-[span_var(--grid-item-col-span)/span_var(--grid-item-col-span)]`,`row-[span_var(--grid-item-row-span)/span_var(--grid-item-row-span)]`,n),style:{"--grid-item-col-span":i,"--grid-item-row-span":r,...a},...o})}export{Grid,GridItem};
|
|
2
2
|
//# sourceMappingURL=grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","names":[],"sources":["../../src/components/grid.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cn } from '../lib/utils'\n\ntype GridSpacing = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nconst spacingScale: Record<GridSpacing, number> = {\n xs: 1,\n sm: 2,\n md: 4,\n lg: 6,\n xl: 8\n}\n\nfunction toSpacingValue(spacing: GridSpacing) {\n return `calc(var(--spacing) * ${spacingScale[spacing]})`\n}\n\nexport type GridProps = React.ComponentProps<'div'> & {\n gap?: GridSpacing\n rowGap?: GridSpacing\n columnGap?: GridSpacing\n templateRows?: string\n templateColumns?: string\n}\n\nfunction Grid({\n className,\n gap,\n rowGap,\n columnGap,\n templateRows,\n templateColumns = 'repeat(12, minmax(0, 1fr))',\n style,\n ...props\n}: GridProps) {\n return (\n <div\n data-slot=\"grid\"\n className={cn(\n 'grid min-w-0',\n 'grid-cols-(--grid-template-columns) grid-rows-(--grid-template-rows)',\n 'gap-(--grid-gap) gap-y-(--grid-row-gap) gap-x-(--grid-column-gap)',\n className\n )}\n style={\n {\n '--grid-template-columns': templateColumns,\n '--grid-template-rows': templateRows,\n '--grid-gap': gap ? toSpacingValue(gap) : '0px',\n '--grid-row-gap': rowGap ? toSpacingValue(rowGap) : 'var(--grid-gap)',\n '--grid-column-gap': columnGap ? toSpacingValue(columnGap) : 'var(--grid-gap)',\n ...style\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\nexport type GridItemProps = React.ComponentProps<'div'> & {\n rowSpan?: number\n colSpan?: number\n}\n\nfunction GridItem({ className, rowSpan, colSpan = 12, style, ...props }: GridItemProps) {\n return (\n <div\n data-slot=\"grid-item\"\n className={cn(\n 'min-w-0',\n 'col-[span_var(--grid-item-col-span)/span_var(--grid-item-col-span)]',\n 'row-[span_var(--grid-item-row-span)/span_var(--grid-item-row-span)]',\n className\n )}\n style={\n {\n '--grid-item-col-span': colSpan,\n '--grid-item-row-span': rowSpan,\n ...style\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\nexport { Grid, GridItem }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"grid.js","names":[],"sources":["../../src/components/grid.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cn } from '../lib/utils'\n\ntype GridSpacing = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nconst spacingScale: Record<GridSpacing, number> = {\n xs: 1,\n sm: 2,\n md: 4,\n lg: 6,\n xl: 8\n}\n\nfunction toSpacingValue(spacing: GridSpacing) {\n return `calc(var(--spacing) * ${spacingScale[spacing]})`\n}\n\nexport type GridProps = React.ComponentProps<'div'> & {\n gap?: GridSpacing\n rowGap?: GridSpacing\n columnGap?: GridSpacing\n templateRows?: string\n templateColumns?: string\n}\n\nfunction Grid({\n className,\n gap,\n rowGap,\n columnGap,\n templateRows,\n templateColumns = 'repeat(12, minmax(0, 1fr))',\n style,\n ...props\n}: GridProps) {\n return (\n <div\n data-slot=\"grid\"\n className={cn(\n 'grid min-w-0',\n 'grid-cols-(--grid-template-columns) grid-rows-(--grid-template-rows)',\n 'gap-(--grid-gap) gap-y-(--grid-row-gap) gap-x-(--grid-column-gap)',\n className\n )}\n style={\n {\n '--grid-template-columns': templateColumns,\n '--grid-template-rows': templateRows,\n '--grid-gap': gap ? toSpacingValue(gap) : '0px',\n '--grid-row-gap': rowGap ? toSpacingValue(rowGap) : 'var(--grid-gap)',\n '--grid-column-gap': columnGap ? toSpacingValue(columnGap) : 'var(--grid-gap)',\n ...style\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\nexport type GridItemProps = React.ComponentProps<'div'> & {\n rowSpan?: number\n colSpan?: number\n}\n\nfunction GridItem({ className, rowSpan, colSpan = 12, style, ...props }: GridItemProps) {\n return (\n <div\n data-slot=\"grid-item\"\n className={cn(\n 'min-w-0',\n 'col-[span_var(--grid-item-col-span)/span_var(--grid-item-col-span)]',\n 'row-[span_var(--grid-item-row-span)/span_var(--grid-item-row-span)]',\n className\n )}\n style={\n {\n '--grid-item-col-span': colSpan,\n '--grid-item-row-span': rowSpan,\n ...style\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\nexport { Grid, GridItem }\n"],"mappings":"qHAMA,MAAM,EAA4C,CAChD,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,CACN,EAEA,SAAS,eAAe,EAAsB,CAC5C,MAAO,yBAAyB,EAAa,GAAS,EACxD,CAUA,SAAS,KAAK,CACZ,YACA,MACA,SACA,YACA,eACA,kBAAkB,6BAClB,QACA,GAAG,GACS,CACZ,OACE,EAAC,MAAD,CACE,YAAU,OACV,UAAW,EACT,eACA,uEACA,oEACA,CACF,EACA,MACE,CACE,0BAA2B,EAC3B,uBAAwB,EACxB,aAAc,EAAM,eAAe,CAAG,EAAI,MAC1C,iBAAkB,EAAS,eAAe,CAAM,EAAI,kBACpD,oBAAqB,EAAY,eAAe,CAAS,EAAI,kBAC7D,GAAG,CACL,EAEF,GAAI,CACL,CAAA,CAEL,CAOA,SAAS,SAAS,CAAE,YAAW,UAAS,UAAU,GAAI,QAAO,GAAG,GAAwB,CACtF,OACE,EAAC,MAAD,CACE,YAAU,YACV,UAAW,EACT,UACA,sEACA,sEACA,CACF,EACA,MACE,CACE,uBAAwB,EACxB,uBAAwB,EACxB,GAAG,CACL,EAEF,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ declare function Group({
|
|
|
17
17
|
gap,
|
|
18
18
|
wrap,
|
|
19
19
|
...props
|
|
20
|
-
}: GroupProps):
|
|
20
|
+
}: GroupProps): React.JSX.Element;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { Group, GroupProps, groupVariants };
|
|
23
23
|
//# sourceMappingURL=group.d.ts.map
|
package/dist/components/group.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`flex flex-row`,{variants:{align:{start:`items-start`,end:`items-end`,center:`items-center`,baseline:`items-baseline`,stretch:`items-stretch`},justify:{start:`justify-start`,end:`justify-end`,center:`justify-center`,between:`justify-between`,around:`justify-around`,evenly:`justify-evenly`},gap:{xs:`gap-1`,sm:`gap-2`,md:`gap-4`,lg:`gap-6`,xl:`gap-8`},wrap:{true:`flex-wrap`,false:`flex-nowrap`}},defaultVariants:{align:`center`,gap:`md`,wrap:!1}});function Group({className:n,align:i=`center`,justify:a,gap:o=`md`,wrap:s=!0,...c}){return t(`div`,{"data-slot":`group`,"data-align":i,"data-justify":a,"data-gap":o,"data-wrap":s?`true`:`false`,className:e(r({align:i,justify:a,gap:o,wrap:s}),n),...c})}export{Group,r as groupVariants};
|
|
2
2
|
//# sourceMappingURL=group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","names":[],"sources":["../../src/components/group.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst groupVariants = cva('flex flex-row', {\n variants: {\n align: {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch'\n },\n justify: {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly'\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8'\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap'\n }\n },\n defaultVariants: {\n align: 'center',\n gap: 'md',\n wrap: false\n }\n})\n\nexport type GroupProps = React.ComponentProps<'div'> & VariantProps<typeof groupVariants>\n\nfunction Group({ className, align = 'center', justify, gap = 'md', wrap = true, ...props }: GroupProps) {\n return (\n <div\n data-slot=\"group\"\n data-align={align}\n data-justify={justify}\n data-gap={gap}\n data-wrap={wrap ? 'true' : 'false'}\n className={cn(groupVariants({ align, justify, gap, wrap }), className)}\n {...props}\n />\n )\n}\n\nexport { Group, groupVariants }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"group.js","names":[],"sources":["../../src/components/group.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst groupVariants = cva('flex flex-row', {\n variants: {\n align: {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch'\n },\n justify: {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly'\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8'\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap'\n }\n },\n defaultVariants: {\n align: 'center',\n gap: 'md',\n wrap: false\n }\n})\n\nexport type GroupProps = React.ComponentProps<'div'> & VariantProps<typeof groupVariants>\n\nfunction Group({ className, align = 'center', justify, gap = 'md', wrap = true, ...props }: GroupProps) {\n return (\n <div\n data-slot=\"group\"\n data-align={align}\n data-justify={justify}\n data-gap={gap}\n data-wrap={wrap ? 'true' : 'false'}\n className={cn(groupVariants({ align, justify, gap, wrap }), className)}\n {...props}\n />\n )\n}\n\nexport { Group, groupVariants }\n"],"mappings":"oKAMA,MAAM,EAAgB,EAAI,gBAAiB,CACzC,SAAU,CACR,MAAO,CACL,MAAO,cACP,IAAK,YACL,OAAQ,eACR,SAAU,iBACV,QAAS,eACX,EACA,QAAS,CACP,MAAO,gBACP,IAAK,cACL,OAAQ,iBACR,QAAS,kBACT,OAAQ,iBACR,OAAQ,gBACV,EACA,IAAK,CACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACN,EACA,KAAM,CACJ,KAAM,YACN,MAAO,aACT,CACF,EACA,gBAAiB,CACf,MAAO,SACP,IAAK,KACL,KAAM,EACR,CACF,CAAC,EAID,SAAS,MAAM,CAAE,YAAW,QAAQ,SAAU,UAAS,MAAM,KAAM,OAAO,GAAM,GAAG,GAAqB,CACtG,OACE,EAAC,MAAD,CACE,YAAU,QACV,aAAY,EACZ,eAAc,EACd,WAAU,EACV,YAAW,EAAO,OAAS,QAC3B,UAAW,EAAG,EAAc,CAAE,QAAO,UAAS,MAAK,MAAK,CAAC,EAAG,CAAS,EACrE,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
@@ -14,7 +14,7 @@ declare function Heading({
|
|
|
14
14
|
size,
|
|
15
15
|
asChild,
|
|
16
16
|
...props
|
|
17
|
-
}: HeadingProps):
|
|
17
|
+
}: HeadingProps): React.JSX.Element;
|
|
18
18
|
//#endregion
|
|
19
19
|
export { Heading, HeadingProps, headingVariants };
|
|
20
20
|
//# sourceMappingURL=heading.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Slot as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";const i=r(`text-foreground font-semibold tracking-tight`,{variants:{size:{xs:`text-lg`,sm:`text-xl`,md:`text-2xl`,lg:`text-3xl`,xl:`text-4xl`}},defaultVariants:{size:`md`}});function Heading({className:r,size:a=`md`,asChild:o=!1,...s}){return n(o?t.Root:`h2`,{"data-slot":`heading`,"data-size":a,className:e(i({size:a}),r),...s})}export{Heading,i as headingVariants};
|
|
2
2
|
//# sourceMappingURL=heading.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heading.js","names":[],"sources":["../../src/components/heading.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\n\nconst headingVariants = cva('text-foreground font-semibold tracking-tight', {\n variants: {\n size: {\n xs: 'text-lg',\n sm: 'text-xl',\n md: 'text-2xl',\n lg: 'text-3xl',\n xl: 'text-4xl'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nexport type HeadingProps = React.ComponentProps<'h2'> &\n VariantProps<typeof headingVariants> & {\n asChild?: boolean\n }\n\nfunction Heading({ className, size = 'md', asChild = false, ...props }: HeadingProps) {\n const Comp = asChild ? Slot.Root : 'h2'\n\n return <Comp data-slot=\"heading\" data-size={size} className={cn(headingVariants({ size }), className)} {...props} />\n}\n\nexport { Heading, headingVariants }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"heading.js","names":[],"sources":["../../src/components/heading.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\n\nconst headingVariants = cva('text-foreground font-semibold tracking-tight', {\n variants: {\n size: {\n xs: 'text-lg',\n sm: 'text-xl',\n md: 'text-2xl',\n lg: 'text-3xl',\n xl: 'text-4xl'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nexport type HeadingProps = React.ComponentProps<'h2'> &\n VariantProps<typeof headingVariants> & {\n asChild?: boolean\n }\n\nfunction Heading({ className, size = 'md', asChild = false, ...props }: HeadingProps) {\n const Comp = asChild ? Slot.Root : 'h2'\n\n return <Comp data-slot=\"heading\" data-size={size} className={cn(headingVariants({ size }), className)} {...props} />\n}\n\nexport { Heading, headingVariants }\n"],"mappings":"oMAOA,MAAM,EAAkB,EAAI,+CAAgD,CAC1E,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,WACJ,GAAI,WACJ,GAAI,UACN,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAOD,SAAS,QAAQ,CAAE,YAAW,OAAO,KAAM,UAAU,GAAO,GAAG,GAAuB,CAGpF,OAAO,EAFM,EAAU,EAAK,KAAO,KAE5B,CAAM,YAAU,UAAU,YAAW,EAAM,UAAW,EAAG,EAAgB,CAAE,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CACrH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import { HoverCard as HoverCard$1 } from "radix-ui";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
@@ -8,16 +8,16 @@ type HoverCardTriggerProps = React.ComponentProps<typeof HoverCard$1.Trigger>;
|
|
|
8
8
|
type HoverCardContentProps = React.ComponentProps<typeof HoverCard$1.Content>;
|
|
9
9
|
declare function HoverCard({
|
|
10
10
|
...props
|
|
11
|
-
}: HoverCardProps):
|
|
11
|
+
}: HoverCardProps): React.JSX.Element;
|
|
12
12
|
declare function HoverCardTrigger({
|
|
13
13
|
...props
|
|
14
|
-
}: HoverCardTriggerProps):
|
|
14
|
+
}: HoverCardTriggerProps): React.JSX.Element;
|
|
15
15
|
declare function HoverCardContent({
|
|
16
16
|
className,
|
|
17
17
|
align,
|
|
18
18
|
sideOffset,
|
|
19
19
|
...props
|
|
20
|
-
}: HoverCardContentProps):
|
|
20
|
+
}: HoverCardContentProps): React.JSX.Element;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger, HoverCardTriggerProps };
|
|
23
23
|
//# sourceMappingURL=hover-card.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{HoverCard as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function HoverCard({...e}){return n(t.Root,{"data-slot":`hover-card`,...e})}function HoverCardTrigger({...e}){return n(t.Trigger,{"data-slot":`hover-card-trigger`,...e})}function HoverCardContent({className:r,align:i=`center`,sideOffset:a=4,...o}){return n(t.Portal,{"data-slot":`hover-card-portal`,children:n(t.Content,{"data-slot":`hover-card-content`,align:i,sideOffset:a,className:e(`z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,r),...o})})}export{HoverCard,HoverCardContent,HoverCardTrigger};
|
|
2
2
|
//# sourceMappingURL=hover-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card.js","names":["HoverCardPrimitive"],"sources":["../../src/components/hover-card.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\n\nexport type HoverCardProps = React.ComponentProps<typeof HoverCardPrimitive.Root>\n\nexport type HoverCardTriggerProps = React.ComponentProps<typeof HoverCardPrimitive.Trigger>\n\nexport type HoverCardContentProps = React.ComponentProps<typeof HoverCardPrimitive.Content>\n\nfunction HoverCard({ ...props }: HoverCardProps) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: HoverCardTriggerProps) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n}\n\nfunction HoverCardContent({ className, align = 'center', sideOffset = 4, ...props }: HoverCardContentProps) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"hover-card.js","names":["HoverCardPrimitive"],"sources":["../../src/components/hover-card.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\n\nexport type HoverCardProps = React.ComponentProps<typeof HoverCardPrimitive.Root>\n\nexport type HoverCardTriggerProps = React.ComponentProps<typeof HoverCardPrimitive.Trigger>\n\nexport type HoverCardContentProps = React.ComponentProps<typeof HoverCardPrimitive.Content>\n\nfunction HoverCard({ ...props }: HoverCardProps) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: HoverCardTriggerProps) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n}\n\nfunction HoverCardContent({ className, align = 'center', sideOffset = 4, ...props }: HoverCardContentProps) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger }\n"],"mappings":"0JAYA,SAAS,UAAU,CAAE,GAAG,GAAyB,CAC/C,OAAO,EAACA,EAAmB,KAApB,CAAyB,YAAU,aAAa,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAS,iBAAiB,CAAE,GAAG,GAAgC,CAC7D,OAAO,EAACA,EAAmB,QAApB,CAA4B,YAAU,qBAAqB,GAAI,CAAQ,CAAA,CAChF,CAEA,SAAS,iBAAiB,CAAE,YAAW,QAAQ,SAAU,aAAa,EAAG,GAAG,GAAgC,CAC1G,OACE,EAACA,EAAmB,OAApB,CAA2B,YAAU,6BACnC,EAACA,EAAmB,QAApB,CACE,YAAU,qBACH,QACK,aACZ,UAAW,EACT,8dACA,CACF,EACA,GAAI,CACL,CAAA,CACwB,CAAA,CAE/B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import { Button } from "./button.js";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import * as React from "react";
|
|
@@ -13,7 +13,7 @@ type InputGroupTextareaProps = React.ComponentProps<'textarea'>;
|
|
|
13
13
|
declare function InputGroup({
|
|
14
14
|
className,
|
|
15
15
|
...props
|
|
16
|
-
}: InputGroupProps):
|
|
16
|
+
}: InputGroupProps): React.JSX.Element;
|
|
17
17
|
declare const inputGroupAddonVariants: (props?: ({
|
|
18
18
|
align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
|
|
19
19
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -21,7 +21,7 @@ declare function InputGroupAddon({
|
|
|
21
21
|
className,
|
|
22
22
|
align,
|
|
23
23
|
...props
|
|
24
|
-
}: InputGroupAddonProps):
|
|
24
|
+
}: InputGroupAddonProps): React.JSX.Element;
|
|
25
25
|
declare const inputGroupButtonVariants: (props?: ({
|
|
26
26
|
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
27
27
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -32,19 +32,19 @@ declare function InputGroupButton({
|
|
|
32
32
|
size,
|
|
33
33
|
color,
|
|
34
34
|
...props
|
|
35
|
-
}: InputGroupButtonProps):
|
|
35
|
+
}: InputGroupButtonProps): React.JSX.Element;
|
|
36
36
|
declare function InputGroupText({
|
|
37
37
|
className,
|
|
38
38
|
...props
|
|
39
|
-
}: InputGroupTextProps):
|
|
39
|
+
}: InputGroupTextProps): React.JSX.Element;
|
|
40
40
|
declare function InputGroupInput({
|
|
41
41
|
className,
|
|
42
42
|
...props
|
|
43
|
-
}: InputGroupInputProps):
|
|
43
|
+
}: InputGroupInputProps): React.JSX.Element;
|
|
44
44
|
declare function InputGroupTextarea({
|
|
45
45
|
className,
|
|
46
46
|
...props
|
|
47
|
-
}: InputGroupTextareaProps):
|
|
47
|
+
}: InputGroupTextareaProps): React.JSX.Element;
|
|
48
48
|
//#endregion
|
|
49
49
|
export { InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupButton, InputGroupButtonProps, InputGroupInput, InputGroupInputProps, InputGroupProps, InputGroupText, InputGroupTextProps, InputGroupTextarea, InputGroupTextareaProps };
|
|
50
50
|
//# sourceMappingURL=input-group.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{Input as n}from"./input.js";import{Textarea as r}from"./textarea.js";import{jsx as i}from"react/jsx-runtime";import{cva as a}from"class-variance-authority";function InputGroup({className:t,...n}){return i(`div`,{"data-slot":`input-group`,className:e(`group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5`,t),...n})}const o=a(`flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4`,{variants:{align:{"inline-start":`order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]`,"inline-end":`order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]`,"block-start":`order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2`,"block-end":`order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2`}},defaultVariants:{align:`inline-start`}});function InputGroupAddon({className:t,align:n=`inline-start`,...r}){return i(`div`,{"data-slot":`input-group-addon`,"data-align":n,className:e(o({align:n}),t),...r})}const s=a(`flex items-center gap-2 text-sm shadow-none`,{variants:{size:{xs:`h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5`,sm:``,"icon-xs":`size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0`,"icon-sm":`size-8 p-0 has-[>svg]:p-0`}},defaultVariants:{size:`xs`}});function InputGroupButton({className:n,type:r=`button`,variant:a=`ghost`,size:o=`xs`,color:c=`zinc`,...l}){return i(t,{type:r,"data-size":o,variant:a,color:c,className:e(s({size:o}),n),...l})}function InputGroupText({className:t,...n}){return i(`span`,{className:e(`flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4`,t),...n})}function InputGroupInput({className:t,...r}){return i(n,{"data-slot":`input-group-control`,className:e(`flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent`,t),...r})}function InputGroupTextarea({className:t,...n}){return i(r,{"data-slot":`input-group-control`,className:e(`flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent`,t),...n})}export{InputGroup,InputGroupAddon,InputGroupButton,InputGroupInput,InputGroupText,InputGroupTextarea};
|
|
2
2
|
//# sourceMappingURL=input-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-group.js","names":[],"sources":["../../src/components/input-group.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Input } from './input'\nimport { Textarea } from './textarea'\n\nexport type InputGroupProps = React.ComponentProps<'div'>\n\nexport type InputGroupAddonProps = React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>\n\nexport type InputGroupButtonProps = Omit<React.ComponentProps<typeof Button>, 'size'> &\n VariantProps<typeof inputGroupButtonVariants>\n\nexport type InputGroupTextProps = React.ComponentProps<'span'>\n\nexport type InputGroupInputProps = React.ComponentProps<'input'>\n\nexport type InputGroupTextareaProps = React.ComponentProps<'textarea'>\n\nfunction InputGroup({ className, ...props }: InputGroupProps) {\n return (\n <div\n data-slot=\"input-group\"\n className={cn(\n 'group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',\n 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',\n 'block-start':\n 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',\n 'block-end': 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2'\n }\n },\n defaultVariants: {\n align: 'inline-start'\n }\n }\n)\n\nfunction InputGroupAddon({ className, align = 'inline-start', ...props }: InputGroupAddonProps) {\n return (\n <div\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0'\n }\n },\n defaultVariants: {\n size: 'xs'\n }\n})\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n color = 'zinc',\n ...props\n}: InputGroupButtonProps) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n color={color}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({ className, ...props }: InputGroupInputProps) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({ className, ...props }: InputGroupTextareaProps) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-group.js","names":[],"sources":["../../src/components/input-group.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Input } from './input'\nimport { Textarea } from './textarea'\n\nexport type InputGroupProps = React.ComponentProps<'div'>\n\nexport type InputGroupAddonProps = React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>\n\nexport type InputGroupButtonProps = Omit<React.ComponentProps<typeof Button>, 'size'> &\n VariantProps<typeof inputGroupButtonVariants>\n\nexport type InputGroupTextProps = React.ComponentProps<'span'>\n\nexport type InputGroupInputProps = React.ComponentProps<'input'>\n\nexport type InputGroupTextareaProps = React.ComponentProps<'textarea'>\n\nfunction InputGroup({ className, ...props }: InputGroupProps) {\n return (\n <div\n data-slot=\"input-group\"\n className={cn(\n 'group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',\n 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',\n 'block-start':\n 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',\n 'block-end': 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2'\n }\n },\n defaultVariants: {\n align: 'inline-start'\n }\n }\n)\n\nfunction InputGroupAddon({ className, align = 'inline-start', ...props }: InputGroupAddonProps) {\n return (\n <div\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0'\n }\n },\n defaultVariants: {\n size: 'xs'\n }\n})\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n color = 'zinc',\n ...props\n}: InputGroupButtonProps) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n color={color}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({ className, ...props }: InputGroupInputProps) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({ className, ...props }: InputGroupTextareaProps) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea }\n"],"mappings":"qRAsBA,SAAS,WAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OACE,EAAC,MAAD,CACE,YAAU,cACV,UAAW,EACT,wlCACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,MAAM,EAA0B,EAC9B,0PACA,CACE,SAAU,CACR,MAAO,CACL,eAAgB,uEAChB,aAAc,sEACd,cACE,oGACF,YAAa,kGACf,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAEA,SAAS,gBAAgB,CAAE,YAAW,QAAQ,eAAgB,GAAG,GAA+B,CAC9F,OACE,EAAC,MAAD,CACE,YAAU,oBACV,aAAY,EACZ,UAAW,EAAG,EAAwB,CAAE,OAAM,CAAC,EAAG,CAAS,EAC3D,GAAI,CACL,CAAA,CAEL,CAEA,MAAM,EAA2B,EAAI,8CAA+C,CAClF,SAAU,CACR,KAAM,CACJ,GAAI,4FACJ,GAAI,GACJ,UAAW,8DACX,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAED,SAAS,iBAAiB,CACxB,YACA,OAAO,SACP,UAAU,QACV,OAAO,KACP,QAAQ,OACR,GAAG,GACqB,CACxB,OACE,EAAC,EAAD,CACQ,OACN,YAAW,EACF,UACF,QACP,UAAW,EAAG,EAAyB,CAAE,MAAK,CAAC,EAAG,CAAS,EAC3D,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,eAAe,CAAE,YAAW,GAAG,GAA8B,CACpE,OACE,EAAC,OAAD,CACE,UAAW,EACT,yHACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,gBAAgB,CAAE,YAAW,GAAG,GAA+B,CACtE,OACE,EAAC,EAAD,CACE,YAAU,sBACV,UAAW,EACT,mLACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,mBAAmB,CAAE,YAAW,GAAG,GAAkC,CAC5E,OACE,EAAC,EAAD,CACE,YAAU,sBACV,UAAW,EACT,oMACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { OTPInput, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp";
|
|
4
4
|
|
|
@@ -16,19 +16,19 @@ declare function InputOTP({
|
|
|
16
16
|
containerClassName,
|
|
17
17
|
id,
|
|
18
18
|
...props
|
|
19
|
-
}: InputOTPProps):
|
|
19
|
+
}: InputOTPProps): React.JSX.Element;
|
|
20
20
|
declare function InputOTPGroup({
|
|
21
21
|
className,
|
|
22
22
|
...props
|
|
23
|
-
}: InputOTPGroupProps):
|
|
23
|
+
}: InputOTPGroupProps): React.JSX.Element;
|
|
24
24
|
declare function InputOTPSlot({
|
|
25
25
|
index,
|
|
26
26
|
className,
|
|
27
27
|
...props
|
|
28
|
-
}: InputOTPSlotProps):
|
|
28
|
+
}: InputOTPSlotProps): React.JSX.Element;
|
|
29
29
|
declare function InputOTPSeparator({
|
|
30
30
|
...props
|
|
31
|
-
}: InputOTPSeparatorProps):
|
|
31
|
+
}: InputOTPSeparatorProps): React.JSX.Element;
|
|
32
32
|
//#endregion
|
|
33
33
|
export { InputOTP, InputOTPGroup, InputOTPGroupProps, InputOTPProps, InputOTPSeparator, InputOTPSeparatorProps, InputOTPSlot, InputOTPSlotProps, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS };
|
|
34
34
|
//# sourceMappingURL=input-otp.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{useFieldControlId as t}from"./field.js";import{IconMinus as n}from"@tabler/icons-react";import{jsx as r,jsxs as i}from"react/jsx-runtime";import*as a from"react";import{OTPInput as o,OTPInputContext as s,REGEXP_ONLY_CHARS as c,REGEXP_ONLY_DIGITS as l,REGEXP_ONLY_DIGITS_AND_CHARS as u}from"input-otp";function InputOTP({className:n,containerClassName:i,id:a,...s}){return r(o,{id:t(a),"data-slot":`input-otp`,containerClassName:e(`cn-input-otp flex items-center has-disabled:opacity-50`,i),spellCheck:!1,className:e(`disabled:cursor-not-allowed`,n),...s})}function InputOTPGroup({className:t,...n}){return r(`div`,{"data-slot":`input-otp-group`,className:e(`flex items-center rounded-lg`,`has-aria-invalid:border-destructive has-aria-invalid:ring-destructive/20 has-aria-invalid:ring-3 dark:has-aria-invalid:ring-destructive/40`,t),...n})}function InputOTPSlot({index:t,className:n,...o}){let{char:c,hasFakeCaret:l,isActive:u}=a.useContext(s)?.slots[t]??{};return i(`div`,{"data-slot":`input-otp-slot`,"data-active":u,className:e(`dark:bg-input/30 border-input relative flex size-8 items-center justify-center border-y border-r text-sm transition-all outline-none`,`first:rounded-l-lg first:border-l last:rounded-r-lg`,`aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive`,`data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:ring-3 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40`,n),...o,children:[c,l&&r(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:r(`div`,{className:`animate-caret-blink bg-foreground h-4 w-px duration-1000`})})]})}function InputOTPSeparator({...e}){return r(`div`,{"data-slot":`input-otp-separator`,className:`[&_svg:not([class*='size-'])]:size-4 flex items-center`,...e,children:r(n,{})})}export{InputOTP,InputOTPGroup,InputOTPSeparator,InputOTPSlot,c as REGEXP_ONLY_CHARS,l as REGEXP_ONLY_DIGITS,u as REGEXP_ONLY_DIGITS_AND_CHARS};
|
|
2
2
|
//# sourceMappingURL=input-otp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-otp.js","names":[],"sources":["../../src/components/input-otp.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconMinus } from '@tabler/icons-react'\nimport {\n OTPInput,\n OTPInputContext,\n REGEXP_ONLY_CHARS,\n REGEXP_ONLY_DIGITS,\n REGEXP_ONLY_DIGITS_AND_CHARS\n} from 'input-otp'\n\nimport { cn } from '../lib/utils'\nimport { useFieldControlId } from './field'\n\nexport type InputOTPProps = React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string\n}\n\nexport type InputOTPGroupProps = React.ComponentProps<'div'>\n\nexport type InputOTPSlotProps = React.ComponentProps<'div'> & {\n index: number\n}\n\nexport type InputOTPSeparatorProps = React.ComponentProps<'div'>\n\nfunction InputOTP({ className, containerClassName, id, ...props }: InputOTPProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <OTPInput\n id={fieldControlId}\n data-slot=\"input-otp\"\n containerClassName={cn('cn-input-otp flex items-center has-disabled:opacity-50', containerClassName)}\n spellCheck={false}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n )\n}\n\nfunction InputOTPGroup({ className, ...props }: InputOTPGroupProps) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\n 'flex items-center rounded-lg',\n 'has-aria-invalid:border-destructive has-aria-invalid:ring-destructive/20 has-aria-invalid:ring-3 dark:has-aria-invalid:ring-destructive/40',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputOTPSlot({ index, className, ...props }: InputOTPSlotProps) {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {}\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n 'dark:bg-input/30 border-input relative flex size-8 items-center justify-center border-y border-r text-sm transition-all outline-none',\n 'first:rounded-l-lg first:border-l last:rounded-r-lg',\n 'aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive',\n 'data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:ring-3 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n )\n}\n\nfunction InputOTPSeparator({ ...props }: InputOTPSeparatorProps) {\n return (\n <div data-slot=\"input-otp-separator\" className=\"[&_svg:not([class*='size-'])]:size-4 flex items-center\" {...props}>\n <IconMinus />\n </div>\n )\n}\n\nexport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n REGEXP_ONLY_CHARS,\n REGEXP_ONLY_DIGITS,\n REGEXP_ONLY_DIGITS_AND_CHARS\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-otp.js","names":[],"sources":["../../src/components/input-otp.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconMinus } from '@tabler/icons-react'\nimport {\n OTPInput,\n OTPInputContext,\n REGEXP_ONLY_CHARS,\n REGEXP_ONLY_DIGITS,\n REGEXP_ONLY_DIGITS_AND_CHARS\n} from 'input-otp'\n\nimport { cn } from '../lib/utils'\nimport { useFieldControlId } from './field'\n\nexport type InputOTPProps = React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string\n}\n\nexport type InputOTPGroupProps = React.ComponentProps<'div'>\n\nexport type InputOTPSlotProps = React.ComponentProps<'div'> & {\n index: number\n}\n\nexport type InputOTPSeparatorProps = React.ComponentProps<'div'>\n\nfunction InputOTP({ className, containerClassName, id, ...props }: InputOTPProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <OTPInput\n id={fieldControlId}\n data-slot=\"input-otp\"\n containerClassName={cn('cn-input-otp flex items-center has-disabled:opacity-50', containerClassName)}\n spellCheck={false}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n )\n}\n\nfunction InputOTPGroup({ className, ...props }: InputOTPGroupProps) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\n 'flex items-center rounded-lg',\n 'has-aria-invalid:border-destructive has-aria-invalid:ring-destructive/20 has-aria-invalid:ring-3 dark:has-aria-invalid:ring-destructive/40',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputOTPSlot({ index, className, ...props }: InputOTPSlotProps) {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {}\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n 'dark:bg-input/30 border-input relative flex size-8 items-center justify-center border-y border-r text-sm transition-all outline-none',\n 'first:rounded-l-lg first:border-l last:rounded-r-lg',\n 'aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive',\n 'data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:ring-3 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n )\n}\n\nfunction InputOTPSeparator({ ...props }: InputOTPSeparatorProps) {\n return (\n <div data-slot=\"input-otp-separator\" className=\"[&_svg:not([class*='size-'])]:size-4 flex items-center\" {...props}>\n <IconMinus />\n </div>\n )\n}\n\nexport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n REGEXP_ONLY_CHARS,\n REGEXP_ONLY_DIGITS,\n REGEXP_ONLY_DIGITS_AND_CHARS\n}\n"],"mappings":"iYA0BA,SAAS,SAAS,CAAE,YAAW,qBAAoB,KAAI,GAAG,GAAwB,CAGhF,OACE,EAAC,EAAD,CACE,GAJmB,EAAkB,CAIpB,EACjB,YAAU,YACV,mBAAoB,EAAG,yDAA0D,CAAkB,EACnG,WAAY,GACZ,UAAW,EAAG,8BAA+B,CAAS,EACtD,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,cAAc,CAAE,YAAW,GAAG,GAA6B,CAClE,OACE,EAAC,MAAD,CACE,YAAU,kBACV,UAAW,EACT,+BACA,6IACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,aAAa,CAAE,QAAO,YAAW,GAAG,GAA4B,CAEvE,GAAM,CAAE,OAAM,eAAc,YADJ,EAAM,WAAW,CACc,CAAC,EAAE,MAAM,IAAU,CAAC,EAE3E,OACE,EAAC,MAAD,CACE,YAAU,iBACV,cAAa,EACb,UAAW,EACT,uIACA,sDACA,qFACA,gOACA,CACF,EACA,GAAI,WAVN,CAYG,EACA,GACC,EAAC,MAAD,CAAK,UAAU,iFACb,EAAC,MAAD,CAAK,UAAU,0DAA4D,CAAA,CACxE,CAAA,CAEJ,GAET,CAEA,SAAS,kBAAkB,CAAE,GAAG,GAAiC,CAC/D,OACE,EAAC,MAAD,CAAK,YAAU,sBAAsB,UAAU,yDAAyD,GAAI,WAC1G,EAAC,EAAD,CAAY,CAAA,CACT,CAAA,CAET"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as __name } from "../
|
|
1
|
+
import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/input.d.ts
|
|
@@ -8,7 +8,7 @@ declare function Input({
|
|
|
8
8
|
id,
|
|
9
9
|
type,
|
|
10
10
|
...props
|
|
11
|
-
}: InputProps):
|
|
11
|
+
}: InputProps): React.JSX.Element;
|
|
12
12
|
//#endregion
|
|
13
13
|
export { Input, InputProps };
|
|
14
14
|
//# sourceMappingURL=input.d.ts.map
|