react-shadcn-kit 0.1.0 → 0.2.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 +59 -75
- package/dist/assets/global.css +1 -1
- package/dist/components/composites/action-button.d.ts +16 -0
- package/dist/components/composites/action-button.js +71 -0
- package/dist/components/composites/action-button.js.map +1 -0
- package/dist/components/composites/index.d.ts +8 -0
- package/dist/components/composites/sidebar-wrapper.d.ts +27 -0
- package/dist/components/composites/sidebar-wrapper.js +21 -0
- package/dist/components/composites/sidebar-wrapper.js.map +1 -0
- package/dist/{molecules → components/composites}/theme-toggle.js +3 -3
- package/dist/components/composites/theme-toggle.js.map +1 -0
- package/dist/components/composites/user-menu.js +29 -0
- package/dist/components/composites/user-menu.js.map +1 -0
- package/dist/components/marketing/hero.d.ts +12 -0
- package/dist/components/marketing/hero.js +87 -0
- package/dist/components/marketing/hero.js.map +1 -0
- package/dist/components/marketing/index.d.ts +6 -0
- package/dist/components/marketing/social-proof.d.ts +10 -0
- package/dist/components/marketing/social-proof.js +21 -0
- package/dist/components/marketing/social-proof.js.map +1 -0
- package/dist/components/marketing/value-props.d.ts +14 -0
- package/dist/components/marketing/value-props.js +25 -0
- package/dist/components/marketing/value-props.js.map +1 -0
- package/dist/{atoms → components/primitives}/accordion.js +1 -1
- package/dist/components/primitives/accordion.js.map +1 -0
- package/dist/{atoms → components/primitives}/alert-dialog.js +2 -2
- package/dist/components/primitives/alert-dialog.js.map +1 -0
- package/dist/{atoms → components/primitives}/alert.js +1 -1
- package/dist/components/primitives/alert.js.map +1 -0
- package/dist/components/primitives/aspect-ratio.js.map +1 -0
- package/dist/{atoms → components/primitives}/avatar.js +1 -1
- package/dist/components/primitives/avatar.js.map +1 -0
- package/dist/components/primitives/badge-variants.d.ts +3 -0
- package/dist/{atoms/badge.js → components/primitives/badge-variants.js} +7 -19
- package/dist/components/primitives/badge-variants.js.map +1 -0
- package/dist/components/primitives/badge.d.ts +9 -0
- package/dist/components/primitives/badge.js +21 -0
- package/dist/components/primitives/badge.js.map +1 -0
- package/dist/{atoms → components/primitives}/breadcrumb.js +1 -1
- package/dist/components/primitives/breadcrumb.js.map +1 -0
- package/dist/components/primitives/button-group-variants.d.ts +3 -0
- package/dist/components/primitives/button-group-variants.js +19 -0
- package/dist/components/primitives/button-group-variants.js.map +1 -0
- package/dist/components/primitives/button-group.d.ts +13 -0
- package/dist/components/primitives/button-group.js +52 -0
- package/dist/components/primitives/button-group.js.map +1 -0
- package/dist/components/primitives/button-variants.d.ts +4 -0
- package/dist/{atoms/button.js → components/primitives/button-variants.js} +8 -28
- package/dist/components/primitives/button-variants.js.map +1 -0
- package/dist/components/primitives/button.d.ts +9 -0
- package/dist/components/primitives/button.js +21 -0
- package/dist/components/primitives/button.js.map +1 -0
- package/dist/{atoms → components/primitives}/calendar.d.ts +1 -1
- package/dist/{atoms → components/primitives}/calendar.js +5 -4
- package/dist/components/primitives/calendar.js.map +1 -0
- package/dist/{atoms → components/primitives}/card.js +1 -1
- package/dist/components/primitives/card.js.map +1 -0
- package/dist/{atoms → components/primitives}/carousel.d.ts +1 -1
- package/dist/{atoms → components/primitives}/carousel.js +1 -1
- package/dist/components/primitives/carousel.js.map +1 -0
- package/dist/{atoms → components/primitives}/chart.js +1 -1
- package/dist/components/primitives/chart.js.map +1 -0
- package/dist/{atoms → components/primitives}/checkbox.js +1 -1
- package/dist/components/primitives/checkbox.js.map +1 -0
- package/dist/components/primitives/collapsible.js.map +1 -0
- package/dist/{atoms → components/primitives}/command.d.ts +1 -1
- package/dist/{atoms → components/primitives}/command.js +1 -1
- package/dist/components/primitives/command.js.map +1 -0
- package/dist/{atoms → components/primitives}/context-menu.js +1 -1
- package/dist/components/primitives/context-menu.js.map +1 -0
- package/dist/components/primitives/custom-button-variants.d.ts +5 -0
- package/dist/components/primitives/custom-button-variants.js +38 -0
- package/dist/components/primitives/custom-button-variants.js.map +1 -0
- package/dist/components/primitives/custom-button.d.ts +22 -0
- package/dist/components/primitives/custom-button.js +64 -0
- package/dist/components/primitives/custom-button.js.map +1 -0
- package/dist/{atoms → components/primitives}/dialog.js +8 -8
- package/dist/components/primitives/dialog.js.map +1 -0
- package/dist/{atoms → components/primitives}/drawer.js +1 -1
- package/dist/components/primitives/drawer.js.map +1 -0
- package/dist/{atoms → components/primitives}/dropdown-menu.js +1 -1
- package/dist/components/primitives/dropdown-menu.js.map +1 -0
- package/dist/{atoms → components/primitives}/empty.js +1 -1
- package/dist/components/primitives/empty.js.map +1 -0
- package/dist/{atoms → components/primitives}/field.d.ts +1 -1
- package/dist/{atoms → components/primitives}/field.js +1 -1
- package/dist/components/primitives/field.js.map +1 -0
- package/dist/components/primitives/form-context.d.ts +23 -0
- package/dist/components/primitives/form-context.js +26 -0
- package/dist/components/primitives/form-context.js.map +1 -0
- package/dist/components/primitives/form.d.ts +11 -0
- package/dist/components/primitives/form.js +85 -0
- package/dist/components/primitives/form.js.map +1 -0
- package/dist/{atoms → components/primitives}/hover-card.js +1 -1
- package/dist/components/primitives/hover-card.js.map +1 -0
- package/dist/components/primitives/index.d.ts +116 -0
- package/dist/{atoms → components/primitives}/input-group.d.ts +2 -2
- package/dist/{atoms → components/primitives}/input-group.js +1 -1
- package/dist/components/primitives/input-group.js.map +1 -0
- package/dist/{atoms → components/primitives}/input-otp.js +1 -1
- package/dist/components/primitives/input-otp.js.map +1 -0
- package/dist/{atoms → components/primitives}/input.js +1 -1
- package/dist/components/primitives/input.js.map +1 -0
- package/dist/{atoms → components/primitives}/item.d.ts +2 -2
- package/dist/{atoms → components/primitives}/item.js +1 -1
- package/dist/components/primitives/item.js.map +1 -0
- package/dist/{atoms → components/primitives}/kbd.js +1 -1
- package/dist/components/primitives/kbd.js.map +1 -0
- package/dist/{atoms → components/primitives}/label.js +1 -1
- package/dist/components/primitives/label.js.map +1 -0
- package/dist/components/primitives/loading-swap.d.ts +8 -0
- package/dist/components/primitives/loading-swap.js +25 -0
- package/dist/components/primitives/loading-swap.js.map +1 -0
- package/dist/{atoms → components/primitives}/menubar.js +1 -1
- package/dist/components/primitives/menubar.js.map +1 -0
- package/dist/components/primitives/navigation-menu-variants.d.ts +1 -0
- package/dist/components/primitives/navigation-menu-variants.js +8 -0
- package/dist/components/primitives/navigation-menu-variants.js.map +1 -0
- package/dist/components/primitives/navigation-menu.d.ts +13 -0
- package/dist/components/primitives/navigation-menu.js +102 -0
- package/dist/components/primitives/navigation-menu.js.map +1 -0
- package/dist/{atoms → components/primitives}/pagination.d.ts +1 -1
- package/dist/{atoms → components/primitives}/pagination.js +2 -2
- package/dist/components/primitives/pagination.js.map +1 -0
- package/dist/{atoms → components/primitives}/popover.js +1 -1
- package/dist/components/primitives/popover.js.map +1 -0
- package/dist/{atoms → components/primitives}/progress.js +1 -1
- package/dist/components/primitives/progress.js.map +1 -0
- package/dist/{atoms → components/primitives}/radio-group.js +1 -1
- package/dist/components/primitives/radio-group.js.map +1 -0
- package/dist/{atoms → components/primitives}/resizable.js +1 -1
- package/dist/components/primitives/resizable.js.map +1 -0
- package/dist/{atoms → components/primitives}/scroll-area.js +1 -1
- package/dist/components/primitives/scroll-area.js.map +1 -0
- package/dist/{atoms → components/primitives}/select.js +1 -1
- package/dist/components/primitives/select.js.map +1 -0
- package/dist/{atoms → components/primitives}/separator.js +1 -1
- package/dist/components/primitives/separator.js.map +1 -0
- package/dist/{atoms → components/primitives}/sheet.js +5 -5
- package/dist/components/primitives/sheet.js.map +1 -0
- package/dist/components/primitives/sidebar-context.d.ts +12 -0
- package/dist/components/primitives/sidebar-context.js +13 -0
- package/dist/components/primitives/sidebar-context.js.map +1 -0
- package/dist/components/primitives/sidebar-variants.d.ts +4 -0
- package/dist/components/primitives/sidebar-variants.js +25 -0
- package/dist/components/primitives/sidebar-variants.js.map +1 -0
- package/dist/components/primitives/sidebar.d.ts +56 -0
- package/dist/components/primitives/sidebar.js +542 -0
- package/dist/components/primitives/sidebar.js.map +1 -0
- package/dist/{atoms → components/primitives}/skeleton.js +1 -1
- package/dist/components/primitives/skeleton.js.map +1 -0
- package/dist/{atoms → components/primitives}/slider.js +1 -1
- package/dist/components/primitives/slider.js.map +1 -0
- package/dist/components/primitives/sonner.js.map +1 -0
- package/dist/{atoms → components/primitives}/spinner.js +1 -1
- package/dist/components/primitives/spinner.js.map +1 -0
- package/dist/{atoms → components/primitives}/switch.js +1 -1
- package/dist/components/primitives/switch.js.map +1 -0
- package/dist/{atoms → components/primitives}/table.js +1 -1
- package/dist/components/primitives/table.js.map +1 -0
- package/dist/{atoms → components/primitives}/tabs.js +1 -1
- package/dist/components/primitives/tabs.js.map +1 -0
- package/dist/{atoms → components/primitives}/textarea.js +1 -1
- package/dist/components/primitives/textarea.js.map +1 -0
- package/dist/components/primitives/theme-provider.js.map +1 -0
- package/dist/{atoms → components/primitives}/toggle-group.d.ts +1 -1
- package/dist/{atoms → components/primitives}/toggle-group.js +2 -2
- package/dist/components/primitives/toggle-group.js.map +1 -0
- package/dist/components/primitives/toggle-variants.d.ts +4 -0
- package/dist/{atoms/toggle.js → components/primitives/toggle-variants.js} +5 -24
- package/dist/components/primitives/toggle-variants.js.map +1 -0
- package/dist/components/primitives/toggle.d.ts +9 -0
- package/dist/components/primitives/toggle.js +21 -0
- package/dist/components/primitives/toggle.js.map +1 -0
- package/dist/{atoms → components/primitives}/tooltip.js +1 -1
- package/dist/components/primitives/tooltip.js.map +1 -0
- package/dist/composites/index.js +11 -0
- package/dist/{organisms → composites}/index.js.map +1 -1
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.js +8 -2
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-aria-live.d.ts +22 -0
- package/dist/hooks/use-aria-live.js +18 -0
- package/dist/hooks/use-aria-live.js.map +1 -0
- package/dist/hooks/use-focus-visible.d.ts +15 -0
- package/dist/hooks/use-focus-visible.js +16 -0
- package/dist/hooks/use-focus-visible.js.map +1 -0
- package/dist/hooks/use-screen-reader-only.d.ts +14 -0
- package/dist/hooks/use-screen-reader-only.js +10 -0
- package/dist/hooks/use-screen-reader-only.js.map +1 -0
- package/dist/index.d.ts +10 -58
- package/dist/index.js +371 -344
- package/dist/index.js.map +1 -1
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.js +8 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/utils-enhanced.d.ts +27 -0
- package/dist/lib/utils-enhanced.js +28 -0
- package/dist/lib/utils-enhanced.js.map +1 -0
- package/dist/lib/utils-enhanced.test.d.ts +1 -0
- package/dist/marketing/index.js +9 -0
- package/dist/primitives/index.js +345 -0
- package/dist/{atoms → primitives}/index.js.map +1 -1
- package/package.json +18 -26
- package/dist/atoms/accordion.js.map +0 -1
- package/dist/atoms/alert-dialog.js.map +0 -1
- package/dist/atoms/alert.js.map +0 -1
- package/dist/atoms/aspect-ratio.js.map +0 -1
- package/dist/atoms/avatar.js.map +0 -1
- package/dist/atoms/badge.d.ts +0 -9
- package/dist/atoms/badge.js.map +0 -1
- package/dist/atoms/breadcrumb.js.map +0 -1
- package/dist/atoms/button-group.d.ts +0 -11
- package/dist/atoms/button-group.js +0 -76
- package/dist/atoms/button-group.js.map +0 -1
- package/dist/atoms/button.d.ts +0 -10
- package/dist/atoms/button.js.map +0 -1
- package/dist/atoms/calendar.js.map +0 -1
- package/dist/atoms/card.js.map +0 -1
- package/dist/atoms/carousel.js.map +0 -1
- package/dist/atoms/chart.js.map +0 -1
- package/dist/atoms/checkbox.js.map +0 -1
- package/dist/atoms/collapsible.js.map +0 -1
- package/dist/atoms/command.js.map +0 -1
- package/dist/atoms/context-menu.js.map +0 -1
- package/dist/atoms/dialog.js.map +0 -1
- package/dist/atoms/drawer.js.map +0 -1
- package/dist/atoms/dropdown-menu.js.map +0 -1
- package/dist/atoms/empty.js.map +0 -1
- package/dist/atoms/field.js.map +0 -1
- package/dist/atoms/form.d.ts +0 -24
- package/dist/atoms/form.js +0 -88
- package/dist/atoms/form.js.map +0 -1
- package/dist/atoms/hover-card.js.map +0 -1
- package/dist/atoms/index.d.ts +0 -54
- package/dist/atoms/index.js +0 -342
- package/dist/atoms/input-group.js.map +0 -1
- package/dist/atoms/input-otp.js.map +0 -1
- package/dist/atoms/input.js.map +0 -1
- package/dist/atoms/item.js.map +0 -1
- package/dist/atoms/kbd.js.map +0 -1
- package/dist/atoms/label.js.map +0 -1
- package/dist/atoms/menubar.js.map +0 -1
- package/dist/atoms/navigation-menu.d.ts +0 -14
- package/dist/atoms/navigation-menu.js +0 -160
- package/dist/atoms/navigation-menu.js.map +0 -1
- package/dist/atoms/pagination.js.map +0 -1
- package/dist/atoms/popover.js.map +0 -1
- package/dist/atoms/progress.js.map +0 -1
- package/dist/atoms/radio-group.js.map +0 -1
- package/dist/atoms/resizable.js.map +0 -1
- package/dist/atoms/scroll-area.js.map +0 -1
- package/dist/atoms/select.js.map +0 -1
- package/dist/atoms/separator.js.map +0 -1
- package/dist/atoms/sheet.js.map +0 -1
- package/dist/atoms/sidebar.d.ts +0 -70
- package/dist/atoms/sidebar.js +0 -573
- package/dist/atoms/sidebar.js.map +0 -1
- package/dist/atoms/skeleton.js.map +0 -1
- package/dist/atoms/slider.js.map +0 -1
- package/dist/atoms/sonner.js.map +0 -1
- package/dist/atoms/spinner.js.map +0 -1
- package/dist/atoms/switch.js.map +0 -1
- package/dist/atoms/table.js.map +0 -1
- package/dist/atoms/tabs.js.map +0 -1
- package/dist/atoms/textarea.js.map +0 -1
- package/dist/atoms/theme-provider.js.map +0 -1
- package/dist/atoms/toggle-group.js.map +0 -1
- package/dist/atoms/toggle.d.ts +0 -9
- package/dist/atoms/toggle.js.map +0 -1
- package/dist/atoms/tooltip.js.map +0 -1
- package/dist/default-layout.js +0 -81
- package/dist/default-layout.js.map +0 -1
- package/dist/molecules/index.d.ts +0 -3
- package/dist/molecules/index.js +0 -9
- package/dist/molecules/sidebar-theme-toggle.d.ts +0 -5
- package/dist/molecules/sidebar-theme-toggle.js +0 -39
- package/dist/molecules/sidebar-theme-toggle.js.map +0 -1
- package/dist/molecules/theme-toggle.js.map +0 -1
- package/dist/molecules/user-menu.js +0 -30
- package/dist/molecules/user-menu.js.map +0 -1
- package/dist/organisms/app-navbar.d.ts +0 -37
- package/dist/organisms/app-navbar.js +0 -111
- package/dist/organisms/app-navbar.js.map +0 -1
- package/dist/organisms/app-sidebar.d.ts +0 -37
- package/dist/organisms/app-sidebar.js +0 -159
- package/dist/organisms/app-sidebar.js.map +0 -1
- package/dist/organisms/index.d.ts +0 -2
- package/dist/organisms/index.js +0 -7
- /package/dist/{molecules → components/composites}/theme-toggle.d.ts +0 -0
- /package/dist/{molecules → components/composites}/user-menu.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/accordion.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/alert-dialog.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/alert.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/aspect-ratio.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/aspect-ratio.js +0 -0
- /package/dist/{atoms → components/primitives}/avatar.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/breadcrumb.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/card.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/chart.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/checkbox.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/collapsible.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/collapsible.js +0 -0
- /package/dist/{atoms → components/primitives}/context-menu.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/dialog.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/drawer.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/dropdown-menu.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/empty.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/hover-card.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/input-otp.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/input.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/kbd.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/label.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/menubar.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/popover.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/progress.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/radio-group.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/resizable.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/scroll-area.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/select.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/separator.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/sheet.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/skeleton.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/slider.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/sonner.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/sonner.js +0 -0
- /package/dist/{atoms → components/primitives}/spinner.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/switch.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/table.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/tabs.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/textarea.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/theme-provider.d.ts +0 -0
- /package/dist/{atoms → components/primitives}/theme-provider.js +0 -0
- /package/dist/{atoms → components/primitives}/tooltip.d.ts +0 -0
- /package/dist/{molecules → marketing}/index.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-button.js","sources":["../../../src/components/primitives/custom-button.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot, Slottable } from \"@radix-ui/react-slot\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { Spinner } from \"./spinner\";\nimport { cn } from \"@/lib/utils\";\nimport { customButtonVariants } from \"./custom-button-variants\";\n\ninterface CustomButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof customButtonVariants> {\n asChild?: boolean;\n loading?: boolean;\n loadingText?: string;\n loadingIcon?: React.ElementType;\n loadingIconPlacement?: \"left\" | \"right\";\n icon?: React.ElementType;\n iconPlacement?: \"left\" | \"right\";\n}\n\n/**\n * CustomButton\n *\n * An enhanced button component with premium animations, loading states,\n * and accessibility baked in. Supports icons with flexible placement\n * and various visual effects like expansion and ring hovers.\n */\nconst CustomButton = React.forwardRef<HTMLButtonElement, CustomButtonProps>(\n (\n {\n className,\n variant,\n effect,\n size,\n asChild = false,\n loading,\n loadingText,\n loadingIcon: LoadingIcon = Spinner,\n loadingIconPlacement = \"left\",\n icon: Icon,\n iconPlacement = \"left\",\n children,\n disabled,\n \"aria-label\": ariaLabel,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const isDisabled = loading || disabled;\n\n // Accessibility: Automatic label if children is empty (icon-only button)\n const effectiveAriaLabel =\n ariaLabel || (typeof children === \"string\" ? undefined : loading ? loadingText : undefined);\n\n const renderIcon = (placement: \"left\" | \"right\") => {\n const ActiveIcon = loading ? LoadingIcon : Icon;\n if (!ActiveIcon) return null;\n\n // Logic to determine if this icon should be displayed based on placement\n if (loading && loadingIconPlacement !== placement) return null;\n if (!loading && iconPlacement !== placement) return null;\n\n const iconContent = (\n <ActiveIcon aria-hidden=\"true\" className={cn(loading && !loadingText && \"animate-spin\")} />\n );\n\n if (effect === \"expandIcon\") {\n return (\n <span\n className={cn(\n \"transition-all duration-200 opacity-0 w-0 overflow-hidden inline-flex items-center justify-center\",\n placement === \"left\"\n ? \"group-hover:opacity-100 group-hover:w-5 group-hover:pr-1\"\n : \"group-hover:opacity-100 group-hover:w-5 group-hover:pl-1\",\n )}\n >\n {iconContent}\n </span>\n );\n }\n\n return iconContent;\n };\n\n return (\n <Comp\n ref={ref}\n className={cn(customButtonVariants({ variant, effect, size, className }))}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-disabled={isDisabled || undefined}\n aria-label={effectiveAriaLabel}\n {...props}\n >\n {renderIcon(\"left\")}\n <Slottable>\n {loading && loadingText ? (\n <span className=\"inline-flex items-center gap-2\">{loadingText}</span>\n ) : (\n children\n )}\n </Slottable>\n {renderIcon(\"right\")}\n\n {/* Screen Reader Announcements */}\n {loading && (\n <span className=\"sr-only\" aria-live=\"polite\">\n {loadingText || \"Loading...\"}\n </span>\n )}\n </Comp>\n );\n },\n);\n\nCustomButton.displayName = \"CustomButton\";\n\nexport { CustomButton };\nexport type { CustomButtonProps };\n"],"names":["jsxs","jsx","React","Slot","Slottable","Spinner","cn","customButtonVariants","CustomButton","className","variant","effect","size","asChild","loading","loadingText","LoadingIcon","loadingIconPlacement","Icon","iconPlacement","children","disabled","ariaLabel","props","ref","Comp","isDisabled","effectiveAriaLabel","renderIcon","placement","ActiveIcon","iconContent"],"mappings":"AA4BA,SAAA,QAAAA,GAAA,OAAAC,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,QAAAC,GAAA,aAAAC,SAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAAA,wBAAAC,SAAA;AAAA,MAAMC,IAAeN,EAAM;AAAA,EACzB,CACE;AAAA,IACE,WAAAO;AAAA,IACA,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,aAAaC,IAAcX;AAAA,IAC3B,sBAAAY,IAAuB;AAAA,IACvB,MAAMC;AAAA,IACN,eAAAC,IAAgB;AAAA,IAChB,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAcC;AAAA,IACd,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAOZ,IAAUV,IAAO,UACxBuB,IAAaZ,KAAWO,GAGxBM,IACJL,MAAc,OAAOF,KAAa,WAAW,SAAYN,IAAUC,IAAc,SAE7Ea,IAAa,CAACC,MAAgC;AAClD,YAAMC,IAAahB,IAAUE,IAAcE;AAK3C,UAJI,CAACY,KAGDhB,KAAWG,MAAyBY,KACpC,CAACf,KAAWK,MAAkBU,EAAW,QAAO;AAEpD,YAAME,IACJ,gBAAA9B,EAAC6B,GAAA,EAAW,eAAY,QAAO,WAAWxB,EAAGQ,KAAW,CAACC,KAAe,cAAc,EAAA,CAAG;AAG3F,aAAIJ,MAAW,eAEX,gBAAAV;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWK;AAAA,YACT;AAAA,YACAuB,MAAc,SACV,6DACA;AAAA,UAAA;AAAA,UAGL,UAAAE;AAAA,QAAA;AAAA,MAAA,IAKAA;AAAA,IACT;AAEA,WACE,gBAAA/B;AAAA,MAACyB;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,WAAWlB,EAAGC,EAAqB,EAAE,SAAAG,GAAS,QAAAC,GAAQ,MAAAC,GAAM,WAAAH,EAAA,CAAW,CAAC;AAAA,QACxE,UAAUiB;AAAA,QACV,aAAWZ,KAAW;AAAA,QACtB,iBAAeY,KAAc;AAAA,QAC7B,cAAYC;AAAA,QACX,GAAGJ;AAAA,QAEH,UAAA;AAAA,UAAAK,EAAW,MAAM;AAAA,UAClB,gBAAA3B,EAACG,GAAA,EACE,UAAAU,KAAWC,IACV,gBAAAd,EAAC,UAAK,WAAU,kCAAkC,UAAAc,EAAA,CAAY,IAE9DK,EAAA,CAEJ;AAAA,UACCQ,EAAW,OAAO;AAAA,UAGlBd,uBACE,QAAA,EAAK,WAAU,WAAU,aAAU,UACjC,eAAe,aAAA,CAClB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEAN,EAAa,cAAc;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as a, jsxs as i } from "react/jsx-runtime";
|
|
2
2
|
import * as o from "@radix-ui/react-dialog";
|
|
3
3
|
import { XIcon as r } from "lucide-react";
|
|
4
|
-
import { cn as n } from "
|
|
4
|
+
import { cn as n } from "../../lib/utils.js";
|
|
5
5
|
function m({ ...t }) {
|
|
6
6
|
return /* @__PURE__ */ a(o.Root, { "data-slot": "dialog", ...t });
|
|
7
7
|
}
|
|
@@ -14,7 +14,7 @@ function d({ ...t }) {
|
|
|
14
14
|
function x({ ...t }) {
|
|
15
15
|
return /* @__PURE__ */ a(o.Close, { "data-slot": "dialog-close", ...t });
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function g({
|
|
18
18
|
className: t,
|
|
19
19
|
...e
|
|
20
20
|
}) {
|
|
@@ -37,7 +37,7 @@ function v({
|
|
|
37
37
|
...s
|
|
38
38
|
}) {
|
|
39
39
|
return /* @__PURE__ */ i(d, { "data-slot": "dialog-portal", children: [
|
|
40
|
-
/* @__PURE__ */ a(
|
|
40
|
+
/* @__PURE__ */ a(g, {}),
|
|
41
41
|
/* @__PURE__ */ i(
|
|
42
42
|
o.Content,
|
|
43
43
|
{
|
|
@@ -75,7 +75,7 @@ function D({ className: t, ...e }) {
|
|
|
75
75
|
}
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
|
-
function
|
|
78
|
+
function b({ className: t, ...e }) {
|
|
79
79
|
return /* @__PURE__ */ a(
|
|
80
80
|
"div",
|
|
81
81
|
{
|
|
@@ -85,7 +85,7 @@ function h({ className: t, ...e }) {
|
|
|
85
85
|
}
|
|
86
86
|
);
|
|
87
87
|
}
|
|
88
|
-
function
|
|
88
|
+
function h({ className: t, ...e }) {
|
|
89
89
|
return /* @__PURE__ */ a(
|
|
90
90
|
o.Title,
|
|
91
91
|
{
|
|
@@ -113,11 +113,11 @@ export {
|
|
|
113
113
|
x as DialogClose,
|
|
114
114
|
v as DialogContent,
|
|
115
115
|
y as DialogDescription,
|
|
116
|
-
|
|
116
|
+
b as DialogFooter,
|
|
117
117
|
D as DialogHeader,
|
|
118
|
-
|
|
118
|
+
g as DialogOverlay,
|
|
119
119
|
d as DialogPortal,
|
|
120
|
-
|
|
120
|
+
h as DialogTitle,
|
|
121
121
|
p as DialogTrigger
|
|
122
122
|
};
|
|
123
123
|
//# sourceMappingURL=dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.js","sources":["../../../src/components/primitives/dialog.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"names":["jsx","jsxs","DialogPrimitive","XIcon","cn","Dialog","props","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","DialogContent","children","showCloseButton","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"AAMA,SAAA,OAAAA,GAAA,QAAAC,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,SAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAO,EAAE,GAAGC,KAA4D;AAC/E,2BAAQJ,EAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAGI,GAAO;AAC7D;AAEA,SAASC,EAAc,EAAE,GAAGD,KAA+D;AACzF,2BAAQJ,EAAgB,SAAhB,EAAwB,aAAU,kBAAkB,GAAGI,GAAO;AACxE;AAEA,SAASE,EAAa,EAAE,GAAGF,KAA8D;AACvF,2BAAQJ,EAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAGI,GAAO;AACtE;AAEA,SAASG,EAAY,EAAE,GAAGH,KAA6D;AACrF,2BAAQJ,EAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAGI,GAAO;AACpE;AAEA,SAASI,EAAc;AAAA,EACrB,WAAAC;AAAA,EACA,GAAGL;AACL,GAAyD;AACvD,SACE,gBAAAN;AAAA,IAACE,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA,QACAO;AAAA,MAAA;AAAA,MAED,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASM,EAAc;AAAA,EACrB,WAAAD;AAAA,EACA,UAAAE;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,GAAGR;AACL,GAEG;AACD,SACE,gBAAAL,EAACO,GAAA,EAAa,aAAU,iBACtB,UAAA;AAAA,IAAA,gBAAAR,EAACU,GAAA,EAAc;AAAA,IACf,gBAAAT;AAAA,MAACC,EAAgB;AAAA,MAAhB;AAAA,QACC,aAAU;AAAA,QACV,WAAWE;AAAA,UACT;AAAA,UACAO;AAAA,QAAA;AAAA,QAED,GAAGL;AAAA,QAEH,UAAA;AAAA,UAAAO;AAAA,UACAC,KACC,gBAAAb;AAAA,YAACC,EAAgB;AAAA,YAAhB;AAAA,cACC,aAAU;AAAA,cACV,WAAU;AAAA,cAEV,UAAA;AAAA,gBAAA,gBAAAF,EAACG,GAAA,EAAM;AAAA,gBACP,gBAAAH,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACjC;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,GACF;AAEJ;AAEA,SAASe,EAAa,EAAE,WAAAJ,GAAW,GAAGL,KAAsC;AAC1E,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWI,EAAG,gDAAgDO,CAAS;AAAA,MACtE,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASU,EAAa,EAAE,WAAAL,GAAW,GAAGL,KAAsC;AAC1E,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWI,EAAG,0DAA0DO,CAAS;AAAA,MAChF,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASW,EAAY,EAAE,WAAAN,GAAW,GAAGL,KAA6D;AAChG,SACE,gBAAAN;AAAA,IAACE,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWE,EAAG,sCAAsCO,CAAS;AAAA,MAC5D,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASY,EAAkB;AAAA,EACzB,WAAAP;AAAA,EACA,GAAGL;AACL,GAA6D;AAC3D,SACE,gBAAAN;AAAA,IAACE,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWE,EAAG,iCAAiCO,CAAS;AAAA,MACvD,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
2
2
|
import { Drawer as e } from "vaul";
|
|
3
|
-
import { cn as d } from "
|
|
3
|
+
import { cn as d } from "../../lib/utils.js";
|
|
4
4
|
function s({ ...t }) {
|
|
5
5
|
return /* @__PURE__ */ a(e.Root, { "data-slot": "drawer", ...t });
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.js","sources":["../../../src/components/primitives/drawer.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content bg-background fixed z-50 flex h-auto flex-col\",\n \"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b\",\n \"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t\",\n \"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\"text-foreground font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n"],"names":["jsx","jsxs","Drawer$1","cn","Drawer","props","DrawerPrimitive","DrawerTrigger","DrawerPortal","DrawerClose","DrawerOverlay","className","DrawerContent","children","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription"],"mappings":"AAOA,SAAA,OAAAA,GAAA,QAAAC,SAAA;AAAA,SAAA,UAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAO,EAAE,GAAGC,KAA4D;AAC/E,2BAAQC,EAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAGD,GAAO;AAC7D;AAEA,SAASE,EAAc,EAAE,GAAGF,KAA+D;AACzF,2BAAQC,EAAgB,SAAhB,EAAwB,aAAU,kBAAkB,GAAGD,GAAO;AACxE;AAEA,SAASG,EAAa,EAAE,GAAGH,KAA8D;AACvF,2BAAQC,EAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAGD,GAAO;AACtE;AAEA,SAASI,EAAY,EAAE,GAAGJ,KAA6D;AACrF,2BAAQC,EAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAGD,GAAO;AACpE;AAEA,SAASK,EAAc;AAAA,EACrB,WAAAC;AAAA,EACA,GAAGN;AACL,GAAyD;AACvD,SACE,gBAAAL;AAAA,IAACM,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWH;AAAA,QACT;AAAA,QACAQ;AAAA,MAAA;AAAA,MAED,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASO,EAAc;AAAA,EACrB,WAAAD;AAAA,EACA,UAAAE;AAAA,EACA,GAAGR;AACL,GAAyD;AACvD,SACE,gBAAAJ,EAACO,GAAA,EAAa,aAAU,iBACtB,UAAA;AAAA,IAAA,gBAAAR,EAACU,GAAA,EAAc;AAAA,IACf,gBAAAT;AAAA,MAACK,EAAgB;AAAA,MAAhB;AAAA,QACC,aAAU;AAAA,QACV,WAAWH;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACAQ;AAAA,QAAA;AAAA,QAED,GAAGN;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAL,EAAC,OAAA,EAAI,WAAU,kIAAA,CAAkI;AAAA,UAChJa;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;AAEA,SAASC,EAAa,EAAE,WAAAH,GAAW,GAAGN,KAAsC;AAC1E,SACE,gBAAAL;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWG;AAAA,QACT;AAAA,QACAQ;AAAA,MAAA;AAAA,MAED,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASU,EAAa,EAAE,WAAAJ,GAAW,GAAGN,KAAsC;AAC1E,SACE,gBAAAL;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWG,EAAG,mCAAmCQ,CAAS;AAAA,MACzD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASW,EAAY,EAAE,WAAAL,GAAW,GAAGN,KAA6D;AAChG,SACE,gBAAAL;AAAA,IAACM,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWH,EAAG,iCAAiCQ,CAAS;AAAA,MACvD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASY,EAAkB;AAAA,EACzB,WAAAN;AAAA,EACA,GAAGN;AACL,GAA6D;AAC3D,SACE,gBAAAL;AAAA,IAACM,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWH,EAAG,iCAAiCQ,CAAS;AAAA,MACvD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as t, jsxs as s } from "react/jsx-runtime";
|
|
2
2
|
import * as n from "@radix-ui/react-dropdown-menu";
|
|
3
3
|
import { CheckIcon as i, CircleIcon as u, ChevronRightIcon as c } from "lucide-react";
|
|
4
|
-
import { cn as r } from "
|
|
4
|
+
import { cn as r } from "../../lib/utils.js";
|
|
5
5
|
function f({ ...e }) {
|
|
6
6
|
return /* @__PURE__ */ t(n.Root, { "data-slot": "dropdown-menu", ...e });
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/primitives/dropdown-menu.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"names":["jsx","jsxs","DropdownMenuPrimitive","CheckIcon","CircleIcon","ChevronRightIcon","cn","DropdownMenu","props","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","DropdownMenuGroup","DropdownMenuItem","inset","variant","DropdownMenuCheckboxItem","children","checked","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuSubContent"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import { cva as i } from "class-variance-authority";
|
|
3
|
-
import { cn as a } from "
|
|
3
|
+
import { cn as a } from "../../lib/utils.js";
|
|
4
4
|
function d({ className: e, ...t }) {
|
|
5
5
|
return /* @__PURE__ */ n(
|
|
6
6
|
"div",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.js","sources":["../../../src/components/primitives/empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\"flex max-w-sm flex-col items-center gap-2 text-center\", className)}\n {...props}\n />\n );\n}\n\nconst emptyMediaVariants = cva(\n \"flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia };\n"],"names":["Empty","className","props","jsx","cn","EmptyHeader","emptyMediaVariants","cva","EmptyMedia","variant","EmptyTitle","EmptyDescription","EmptyContent"],"mappings":";;;AAIA,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAAsC;AACnE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASG,EAAY,EAAE,WAAAJ,GAAW,GAAGC,KAAsC;AACzE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,yDAAyDH,CAAS;AAAA,MAC/E,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAMI,IAAqBC;AAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAEA,SAASC,EAAW;AAAA,EAClB,WAAAP;AAAA,EACA,SAAAQ,IAAU;AAAA,EACV,GAAGP;AACL,GAA0E;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcM;AAAA,MACd,WAAWL,EAAGE,EAAmB,EAAE,SAAAG,GAAS,WAAAR,EAAA,CAAW,CAAC;AAAA,MACvD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASQ,EAAW,EAAE,WAAAT,GAAW,GAAGC,KAAsC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,sCAAsCH,CAAS;AAAA,MAC5D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASS,EAAiB,EAAE,WAAAV,GAAW,GAAGC,KAAoC;AAC5E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASU,EAAa,EAAE,WAAAX,GAAW,GAAGC,KAAsC;AAC1E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
|
-
import { Label } from '
|
|
2
|
+
import { Label } from '../primitives/label';
|
|
3
3
|
declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<"legend"> & {
|
|
5
5
|
variant?: "legend" | "label";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as a, jsxs as f } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo as u } from "react";
|
|
3
3
|
import { cva as c } from "class-variance-authority";
|
|
4
|
-
import { cn as l } from "
|
|
4
|
+
import { cn as l } from "../../lib/utils.js";
|
|
5
5
|
import { Label as m } from "./label.js";
|
|
6
6
|
import { Separator as p } from "./separator.js";
|
|
7
7
|
function k({ className: t, ...e }) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.js","sources":["../../../src/components/primitives/field.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"../primitives/label\";\nimport { Separator } from \"../primitives/separator\";\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\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({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\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-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva(\"group/field flex w-full gap-3 data-[invalid=true]:text-destructive\", {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\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\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@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 },\n defaultVariants: {\n orientation: \"vertical\",\n },\n});\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\", className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\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, index) => error?.message && <li key={index}>{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 FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"names":["FieldSet","className","props","jsx","cn","FieldLegend","variant","FieldGroup","fieldVariants","cva","Field","orientation","FieldContent","FieldLabel","Label","FieldTitle","FieldDescription","FieldSeparator","children","jsxs","Separator","FieldError","errors","content","useMemo","uniqueErrors","error","index"],"mappings":";;;;;;AAOA,SAASA,EAAS,EAAE,WAAAC,GAAW,GAAGC,KAA2C;AAC3E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASG,EAAY;AAAA,EACnB,WAAAJ;AAAA,EACA,SAAAK,IAAU;AAAA,EACV,GAAGJ;AACL,GAAsE;AACpE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcG;AAAA,MACd,WAAWF;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAW,EAAE,WAAAN,GAAW,GAAGC,KAAsC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAMM,IAAgBC,EAAI,sEAAsE;AAAA,EAC9F,UAAU;AAAA,IACR,aAAa;AAAA,MACX,UAAU,CAAC,2CAA2C;AAAA,MACtD,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEF,iBAAiB;AAAA,IACf,aAAa;AAAA,EAAA;AAEjB,CAAC;AAED,SAASC,EAAM;AAAA,EACb,WAAAT;AAAA,EACA,aAAAU,IAAc;AAAA,EACd,GAAGT;AACL,GAAqE;AACnE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,oBAAkBQ;AAAA,MAClB,WAAWP,EAAGI,EAAc,EAAE,aAAAG,EAAA,CAAa,GAAGV,CAAS;AAAA,MACtD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASU,EAAa,EAAE,WAAAX,GAAW,GAAGC,KAAsC;AAC1E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,iEAAiEH,CAAS;AAAA,MACvF,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASW,EAAW,EAAE,WAAAZ,GAAW,GAAGC,KAA6C;AAC/E,SACE,gBAAAC;AAAA,IAACW;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWV;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASa,EAAW,EAAE,WAAAd,GAAW,GAAGC,KAAsC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASc,EAAiB,EAAE,WAAAf,GAAW,GAAGC,KAAoC;AAC5E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASe,EAAe;AAAA,EACtB,UAAAC;AAAA,EACA,WAAAjB;AAAA,EACA,GAAGC;AACL,GAEG;AACD,SACE,gBAAAiB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc,CAAC,CAACD;AAAA,MAChB,WAAWd;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAC,EAACiB,GAAA,EAAU,WAAU,2BAAA,CAA2B;AAAA,QAC/CF,KACC,gBAAAf;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,aAAU;AAAA,YAET,UAAAe;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,SAASG,EAAW;AAAA,EAClB,WAAApB;AAAA,EACA,UAAAiB;AAAA,EACA,QAAAI;AAAA,EACA,GAAGpB;AACL,GAEG;AACD,QAAMqB,IAAUC,EAAQ,MAAM;AAC5B,QAAIN;AACF,aAAOA;AAGT,QAAI,CAACI,GAAQ;AACX,aAAO;AAGT,UAAMG,IAAe,CAAC,GAAG,IAAI,IAAIH,EAAO,IAAI,CAACI,MAAU,CAACA,GAAO,SAASA,CAAK,CAAC,CAAC,EAAE,QAAQ;AAEzF,WAAID,GAAc,UAAU,IACnBA,EAAa,CAAC,GAAG,4BAIvB,MAAA,EAAG,WAAU,sCACX,UAAAA,EAAa,IAAI,CAACC,GAAOC,MAAUD,GAAO,WAAW,gBAAAvB,EAAC,MAAA,EAAgB,YAAM,QAAA,GAAdwB,CAAsB,CAAK,GAC5F;AAAA,EAEJ,GAAG,CAACT,GAAUI,CAAM,CAAC;AAErB,SAAKC,IAKH,gBAAApB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,WAAWC,EAAG,wCAAwCH,CAAS;AAAA,MAC9D,GAAGC;AAAA,MAEH,UAAAqB;AAAA,IAAA;AAAA,EAAA,IAVI;AAaX;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FieldPath, FieldValues } from 'react-hook-form';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
|
|
4
|
+
name: TName;
|
|
5
|
+
};
|
|
6
|
+
export declare const FormFieldContext: React.Context<FormFieldContextValue<FieldValues, string>>;
|
|
7
|
+
type FormItemContextValue = {
|
|
8
|
+
id: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const FormItemContext: React.Context<FormItemContextValue>;
|
|
11
|
+
export declare const useFormField: () => {
|
|
12
|
+
invalid: boolean;
|
|
13
|
+
isDirty: boolean;
|
|
14
|
+
isTouched: boolean;
|
|
15
|
+
isValidating: boolean;
|
|
16
|
+
error?: import('react-hook-form').FieldError;
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
formItemId: string;
|
|
20
|
+
formDescriptionId: string;
|
|
21
|
+
formMessageId: string;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as o from "react";
|
|
2
|
+
import { useFormContext as i, useFormState as a } from "react-hook-form";
|
|
3
|
+
const c = o.createContext(
|
|
4
|
+
{}
|
|
5
|
+
), d = o.createContext(
|
|
6
|
+
{}
|
|
7
|
+
), F = () => {
|
|
8
|
+
const e = o.useContext(c), m = o.useContext(d), { getFieldState: r } = i(), n = a({ name: e?.name });
|
|
9
|
+
if (!e)
|
|
10
|
+
throw new Error("useFormField should be used within <FormField>");
|
|
11
|
+
const s = r(e.name, n), { id: t } = m;
|
|
12
|
+
return {
|
|
13
|
+
id: t,
|
|
14
|
+
name: e.name,
|
|
15
|
+
formItemId: `${t}-form-item`,
|
|
16
|
+
formDescriptionId: `${t}-form-item-description`,
|
|
17
|
+
formMessageId: `${t}-form-item-message`,
|
|
18
|
+
...s
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
c as FormFieldContext,
|
|
23
|
+
d as FormItemContext,
|
|
24
|
+
F as useFormField
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=form-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-context.js","sources":["../../../src/components/primitives/form-context.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { useFormContext, useFormState, type FieldPath, type FieldValues } from \"react-hook-form\";\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nexport const FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nexport const FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nexport const useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext?.name });\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n"],"names":["React","useFormContext","useFormState","FormFieldContext","FormItemContext","useFormField","fieldContext","itemContext","getFieldState","formState","fieldState","id"],"mappings":"AAYO,YAAAA,OAAA;AAAA,SAAA,kBAAAC,GAAA,gBAAAC,SAAA;AAAA,MAAMC,IAAmBH,EAAM;AAAA,EACpC,CAAA;AACF,GAMaI,IAAkBJ,EAAM;AAAA,EACnC,CAAA;AACF,GAEaK,IAAe,MAAM;AAChC,QAAMC,IAAeN,EAAM,WAAWG,CAAgB,GAChDI,IAAcP,EAAM,WAAWI,CAAe,GAC9C,EAAE,eAAAI,EAAA,IAAkBP,EAAA,GACpBQ,IAAYP,EAAa,EAAE,MAAMI,GAAc,MAAM;AAE3D,MAAI,CAACA;AACH,UAAM,IAAI,MAAM,gDAAgD;AAGlE,QAAMI,IAAaF,EAAcF,EAAa,MAAMG,CAAS,GAEvD,EAAE,IAAAE,MAAOJ;AAEf,SAAO;AAAA,IACL,IAAAI;AAAA,IACA,MAAML,EAAa;AAAA,IACnB,YAAY,GAAGK,CAAE;AAAA,IACjB,mBAAmB,GAAGA,CAAE;AAAA,IACxB,eAAe,GAAGA,CAAE;AAAA,IACpB,GAAGD;AAAA,EAAA;AAEP;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
4
|
+
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
|
|
5
|
+
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare const FormItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
|
|
8
|
+
declare const FormControl: React.ForwardRefExoticComponent<Omit<import('@radix-ui/react-slot').SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
9
|
+
declare const FormDescription: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
10
|
+
declare const FormMessage: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
11
|
+
export { Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import * as s from "react";
|
|
3
|
+
import { Slot as l } from "@radix-ui/react-slot";
|
|
4
|
+
import { FormProvider as c, Controller as f } from "react-hook-form";
|
|
5
|
+
import { cn as i } from "../../lib/utils.js";
|
|
6
|
+
import { Label as F } from "./label.js";
|
|
7
|
+
import { FormItemContext as p, useFormField as n, FormFieldContext as u } from "./form-context.js";
|
|
8
|
+
const D = c, M = ({
|
|
9
|
+
...r
|
|
10
|
+
}) => /* @__PURE__ */ m(u.Provider, { value: { name: r.name }, children: /* @__PURE__ */ m(f, { ...r }) }), I = s.forwardRef(
|
|
11
|
+
({ className: r, ...o }, e) => {
|
|
12
|
+
const t = s.useId();
|
|
13
|
+
return /* @__PURE__ */ m(p.Provider, { value: { id: t }, children: /* @__PURE__ */ m("div", { ref: e, "data-slot": "form-item", className: i("grid gap-2", r), ...o }) });
|
|
14
|
+
}
|
|
15
|
+
), g = s.forwardRef(({ className: r, ...o }, e) => {
|
|
16
|
+
const { error: t, formItemId: a } = n();
|
|
17
|
+
return /* @__PURE__ */ m(
|
|
18
|
+
F,
|
|
19
|
+
{
|
|
20
|
+
ref: e,
|
|
21
|
+
"data-slot": "form-label",
|
|
22
|
+
"data-error": !!t,
|
|
23
|
+
className: i("data-[error=true]:text-destructive", r),
|
|
24
|
+
htmlFor: a,
|
|
25
|
+
...o
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}), v = s.forwardRef(({ ...r }, o) => {
|
|
29
|
+
const { error: e, formItemId: t, formDescriptionId: a, formMessageId: d } = n();
|
|
30
|
+
return /* @__PURE__ */ m(
|
|
31
|
+
l,
|
|
32
|
+
{
|
|
33
|
+
ref: o,
|
|
34
|
+
"data-slot": "form-control",
|
|
35
|
+
id: t,
|
|
36
|
+
"aria-describedby": e ? `${a} ${d}` : `${a}`,
|
|
37
|
+
"aria-invalid": !!e,
|
|
38
|
+
...r
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}), x = s.forwardRef(
|
|
42
|
+
({ className: r, ...o }, e) => {
|
|
43
|
+
const { formDescriptionId: t } = n();
|
|
44
|
+
return /* @__PURE__ */ m(
|
|
45
|
+
"p",
|
|
46
|
+
{
|
|
47
|
+
ref: e,
|
|
48
|
+
"data-slot": "form-description",
|
|
49
|
+
id: t,
|
|
50
|
+
className: i("text-muted-foreground text-sm", r),
|
|
51
|
+
...o
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
), N = s.forwardRef(
|
|
56
|
+
({ className: r, ...o }, e) => {
|
|
57
|
+
const { error: t, formMessageId: a } = n(), d = t ? String(t?.message ?? "") : o.children;
|
|
58
|
+
return d ? /* @__PURE__ */ m(
|
|
59
|
+
"p",
|
|
60
|
+
{
|
|
61
|
+
ref: e,
|
|
62
|
+
"data-slot": "form-message",
|
|
63
|
+
id: a,
|
|
64
|
+
className: i("text-destructive text-sm", r),
|
|
65
|
+
...o,
|
|
66
|
+
children: d
|
|
67
|
+
}
|
|
68
|
+
) : null;
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
I.displayName = "FormItem";
|
|
72
|
+
g.displayName = "FormLabel";
|
|
73
|
+
v.displayName = "FormControl";
|
|
74
|
+
x.displayName = "FormDescription";
|
|
75
|
+
N.displayName = "FormMessage";
|
|
76
|
+
export {
|
|
77
|
+
D as Form,
|
|
78
|
+
v as FormControl,
|
|
79
|
+
x as FormDescription,
|
|
80
|
+
M as FormField,
|
|
81
|
+
I as FormItem,
|
|
82
|
+
g as FormLabel,
|
|
83
|
+
N as FormMessage
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","sources":["../../../src/components/primitives/form.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"../primitives/label\";\nimport { FormFieldContext, FormItemContext, useFormField } from \"./form-context\";\n\nconst Form = FormProvider;\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst FormItem = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} data-slot=\"form-item\" className={cn(\"grid gap-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n },\n);\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\"data-[error=true]:text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n ref={ref}\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n});\n\nconst FormDescription = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n },\n);\n\nconst FormMessage = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(\"text-destructive text-sm\", className)}\n {...props}\n >\n {body}\n </p>\n );\n },\n);\n\nFormItem.displayName = \"FormItem\";\nFormLabel.displayName = \"FormLabel\";\nFormControl.displayName = \"FormControl\";\nFormDescription.displayName = \"FormDescription\";\nFormMessage.displayName = \"FormMessage\";\n\nexport { Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"names":["jsx","React","Slot","FormProvider","Controller","cn","Label","FormItemContext","useFormField","FormFieldContext","Form","FormField","props","FormItem","className","ref","id","FormLabel","error","formItemId","FormControl","formDescriptionId","formMessageId","FormDescription","FormMessage","body"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import * as r from "@radix-ui/react-hover-card";
|
|
3
|
-
import { cn as i } from "
|
|
3
|
+
import { cn as i } from "../../lib/utils.js";
|
|
4
4
|
function m({ ...t }) {
|
|
5
5
|
return /* @__PURE__ */ o(r.Root, { "data-slot": "hover-card", ...t });
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hover-card.js","sources":["../../../src/components/primitives/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\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 \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"names":["jsx","HoverCardPrimitive","cn","HoverCard","props","HoverCardTrigger","HoverCardContent","className","align","sideOffset"],"mappings":"AAOA,SAAA,OAAAA,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAU,EAAE,GAAGC,KAA+D;AACrF,2BAAQH,EAAmB,MAAnB,EAAwB,aAAU,cAAc,GAAGG,GAAO;AACpE;AAEA,SAASC,EAAiB,EAAE,GAAGD,KAAkE;AAC/F,2BAAQH,EAAmB,SAAnB,EAA2B,aAAU,sBAAsB,GAAGG,GAAO;AAC/E;AAEA,SAASE,EAAiB;AAAA,EACxB,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,YAAAC,IAAa;AAAA,EACb,GAAGL;AACL,GAA4D;AAC1D,SACE,gBAAAJ,EAACC,EAAmB,QAAnB,EAA0B,aAAU,qBACnC,UAAA,gBAAAD;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,OAAAO;AAAA,MACA,YAAAC;AAAA,MACA,WAAWP;AAAA,QACT;AAAA,QACAK;AAAA,MAAA;AAAA,MAED,GAAGH;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export * from './accordion';
|
|
2
|
+
export * from './alert';
|
|
3
|
+
export * from './alert-dialog';
|
|
4
|
+
export * from './aspect-ratio';
|
|
5
|
+
export * from './avatar';
|
|
6
|
+
export * from './badge';
|
|
7
|
+
export * from './breadcrumb';
|
|
8
|
+
export * from './button';
|
|
9
|
+
export * from './button-group';
|
|
10
|
+
export * from './calendar';
|
|
11
|
+
export * from './card';
|
|
12
|
+
export * from './carousel';
|
|
13
|
+
export * from './chart';
|
|
14
|
+
export * from './checkbox';
|
|
15
|
+
export * from './collapsible';
|
|
16
|
+
export * from './command';
|
|
17
|
+
export * from './context-menu';
|
|
18
|
+
export * from './custom-button';
|
|
19
|
+
export * from './dialog';
|
|
20
|
+
export * from './drawer';
|
|
21
|
+
export * from './dropdown-menu';
|
|
22
|
+
export * from './empty';
|
|
23
|
+
export * from './field';
|
|
24
|
+
export * from './form';
|
|
25
|
+
export * from './hover-card';
|
|
26
|
+
export * from './input';
|
|
27
|
+
export * from './input-group';
|
|
28
|
+
export * from './input-otp';
|
|
29
|
+
export * from './item';
|
|
30
|
+
export * from './kbd';
|
|
31
|
+
export * from './label';
|
|
32
|
+
export * from './loading-swap';
|
|
33
|
+
export * from './menubar';
|
|
34
|
+
export * from './navigation-menu';
|
|
35
|
+
export * from './pagination';
|
|
36
|
+
export * from './popover';
|
|
37
|
+
export * from './progress';
|
|
38
|
+
export * from './radio-group';
|
|
39
|
+
export * from './resizable';
|
|
40
|
+
export * from './scroll-area';
|
|
41
|
+
export * from './select';
|
|
42
|
+
export * from './separator';
|
|
43
|
+
export * from './sheet';
|
|
44
|
+
export * from './sidebar';
|
|
45
|
+
export * from './skeleton';
|
|
46
|
+
export * from './slider';
|
|
47
|
+
export * from './sonner';
|
|
48
|
+
export * from './spinner';
|
|
49
|
+
export * from './switch';
|
|
50
|
+
export * from './table';
|
|
51
|
+
export * from './tabs';
|
|
52
|
+
export * from './textarea';
|
|
53
|
+
export * from './theme-provider';
|
|
54
|
+
export * from './toggle';
|
|
55
|
+
export * from './toggle-group';
|
|
56
|
+
export * from './tooltip';
|
|
57
|
+
export type * from './accordion';
|
|
58
|
+
export type * from './alert';
|
|
59
|
+
export type * from './alert-dialog';
|
|
60
|
+
export type * from './aspect-ratio';
|
|
61
|
+
export type * from './avatar';
|
|
62
|
+
export type * from './badge';
|
|
63
|
+
export type * from './breadcrumb';
|
|
64
|
+
export type * from './button';
|
|
65
|
+
export type * from './button-group';
|
|
66
|
+
export type * from './calendar';
|
|
67
|
+
export type * from './card';
|
|
68
|
+
export type * from './carousel';
|
|
69
|
+
export type * from './chart';
|
|
70
|
+
export type * from './checkbox';
|
|
71
|
+
export type * from './collapsible';
|
|
72
|
+
export type * from './command';
|
|
73
|
+
export type * from './context-menu';
|
|
74
|
+
export type * from './custom-button';
|
|
75
|
+
export type * from './dialog';
|
|
76
|
+
export type * from './drawer';
|
|
77
|
+
export type * from './dropdown-menu';
|
|
78
|
+
export type * from './empty';
|
|
79
|
+
export type * from './field';
|
|
80
|
+
export type * from './form';
|
|
81
|
+
export type * from './hover-card';
|
|
82
|
+
export type * from './input';
|
|
83
|
+
export type * from './input-group';
|
|
84
|
+
export type * from './input-otp';
|
|
85
|
+
export type * from './item';
|
|
86
|
+
export type * from './kbd';
|
|
87
|
+
export type * from './label';
|
|
88
|
+
export type * from './loading-swap';
|
|
89
|
+
export type * from './menubar';
|
|
90
|
+
export type * from './navigation-menu';
|
|
91
|
+
export type * from './pagination';
|
|
92
|
+
export type * from './popover';
|
|
93
|
+
export type * from './progress';
|
|
94
|
+
export type * from './radio-group';
|
|
95
|
+
export type * from './resizable';
|
|
96
|
+
export type * from './scroll-area';
|
|
97
|
+
export type * from './select';
|
|
98
|
+
export type * from './separator';
|
|
99
|
+
export type * from './sheet';
|
|
100
|
+
export type * from './sidebar';
|
|
101
|
+
export type * from './skeleton';
|
|
102
|
+
export type * from './slider';
|
|
103
|
+
export type * from './sonner';
|
|
104
|
+
export type * from './spinner';
|
|
105
|
+
export type * from './switch';
|
|
106
|
+
export type * from './table';
|
|
107
|
+
export type * from './tabs';
|
|
108
|
+
export type * from './textarea';
|
|
109
|
+
export type * from './theme-provider';
|
|
110
|
+
export type * from './toggle';
|
|
111
|
+
export type * from './toggle-group';
|
|
112
|
+
export * from './tooltip';
|
|
113
|
+
export * from './custom-button-variants';
|
|
114
|
+
export { Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, } from './form';
|
|
115
|
+
export { useFormField } from './form-context';
|
|
116
|
+
export { useSidebar } from './sidebar-context';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
|
-
import { Button } from '
|
|
2
|
+
import { Button } from '../primitives/button';
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
declare function InputGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
declare const inputGroupAddonVariants: (props?: ({
|
|
6
|
-
align?: "inline-
|
|
6
|
+
align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
|
|
7
7
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
8
|
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
declare const inputGroupButtonVariants: (props?: ({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { cva as s } from "class-variance-authority";
|
|
3
|
-
import { cn as n } from "
|
|
3
|
+
import { cn as n } from "../../lib/utils.js";
|
|
4
4
|
import { Button as u } from "./button.js";
|
|
5
5
|
import { Input as p } from "./input.js";
|
|
6
6
|
import { Textarea as l } from "./textarea.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-group.js","sources":["../../../src/components/primitives/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"../primitives/button\";\nimport { Input } from \"../primitives/input\";\nimport { Textarea } from \"../primitives/textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\": \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\": \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"text-sm shadow-none flex gap-2 items-center\", {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] 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 ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\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-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"names":["InputGroup","className","props","jsx","cn","inputGroupAddonVariants","cva","InputGroupAddon","align","e","inputGroupButtonVariants","InputGroupButton","type","variant","size","Button","InputGroupText","InputGroupInput","Input","InputGroupTextarea","Textarea"],"mappings":";;;;;;AAUA,SAASA,EAAW,EAAE,WAAAC,GAAW,GAAGC,KAAsC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAWC;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAGA;AAAA;AAAA,QAGA;AAAA,QAEAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAMG,IAA0BC;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,eACE;AAAA,QACF,aACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,SAASC,EAAgB;AAAA,EACvB,WAAAN;AAAA,EACA,OAAAO,IAAQ;AAAA,EACR,GAAGN;AACL,GAA+E;AAC7E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAYK;AAAA,MACZ,WAAWJ,EAAGC,EAAwB,EAAE,OAAAG,EAAA,CAAO,GAAGP,CAAS;AAAA,MAC3D,SAAS,CAACQ,MAAM;AACd,QAAKA,EAAE,OAAuB,QAAQ,QAAQ,KAG9CA,EAAE,cAAc,eAAe,cAAc,OAAO,GAAG,MAAA;AAAA,MACzD;AAAA,MACC,GAAGP;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAMQ,IAA2BJ,EAAI,+CAA+C;AAAA,EAClF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,WAAW;AAAA,IAAA;AAAA,EACb;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC;AAED,SAASK,EAAiB;AAAA,EACxB,WAAAV;AAAA,EACA,MAAAW,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,GAAGZ;AACL,GACiD;AAC/C,SACE,gBAAAC;AAAA,IAACY;AAAA,IAAA;AAAA,MACC,MAAAH;AAAA,MACA,aAAWE;AAAA,MACX,SAAAD;AAAA,MACA,WAAWT,EAAGM,EAAyB,EAAE,MAAAI,EAAA,CAAM,GAAGb,CAAS;AAAA,MAC1D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASc,EAAe,EAAE,WAAAf,GAAW,GAAGC,KAAuC;AAC7E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASe,EAAgB,EAAE,WAAAhB,GAAW,GAAGC,KAAwC;AAC/E,SACE,gBAAAC;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWd;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASiB,EAAmB,EAAE,WAAAlB,GAAW,GAAGC,KAA2C;AACrF,SACE,gBAAAC;AAAA,IAACiB;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWhB;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as u } from "react/jsx-runtime";
|
|
|
2
2
|
import * as c from "react";
|
|
3
3
|
import { OTPInput as l, OTPInputContext as p } from "input-otp";
|
|
4
4
|
import { MinusIcon as m } from "lucide-react";
|
|
5
|
-
import { cn as a } from "
|
|
5
|
+
import { cn as a } from "../../lib/utils.js";
|
|
6
6
|
function g({
|
|
7
7
|
className: t,
|
|
8
8
|
containerClassName: r,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-otp.js","sources":["../../../src/components/primitives/input-otp.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\"flex items-center gap-2 has-disabled:opacity-50\", containerClassName)}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n );\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-group\" className={cn(\"flex items-center\", className)} {...props} />\n );\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) {\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 \"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]\",\n 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 }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"names":["jsx","jsxs","React","OTPInput","OTPInputContext","MinusIcon","cn","InputOTP","className","containerClassName","props","InputOTPGroup","InputOTPSlot","index","inputOTPContext","char","hasFakeCaret","isActive","InputOTPSeparator"],"mappings":"AAMA,SAAA,OAAAA,GAAA,QAAAC,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,YAAAC,GAAA,mBAAAC,SAAA;AAAA,SAAA,aAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,GAAGC;AACL,GAEG;AACD,SACE,gBAAAV;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,oBAAoBG,EAAG,mDAAmDG,CAAkB;AAAA,MAC5F,WAAWH,EAAG,+BAA+BE,CAAS;AAAA,MACrD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASC,EAAc,EAAE,WAAAH,GAAW,GAAGE,KAAsC;AAC3E,SACE,gBAAAV,EAAC,OAAA,EAAI,aAAU,mBAAkB,WAAWM,EAAG,qBAAqBE,CAAS,GAAI,GAAGE,EAAA,CAAO;AAE/F;AAEA,SAASE,EAAa;AAAA,EACpB,OAAAC;AAAA,EACA,WAAAL;AAAA,EACA,GAAGE;AACL,GAEG;AACD,QAAMI,IAAkBZ,EAAM,WAAWE,CAAe,GAClD,EAAE,MAAAW,GAAM,cAAAC,GAAc,UAAAC,EAAA,IAAaH,GAAiB,MAAMD,CAAK,KAAK,CAAA;AAE1E,SACE,gBAAAZ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAagB;AAAA,MACb,WAAWX;AAAA,QACT;AAAA,QACAE;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACAC,uBACE,OAAA,EAAI,WAAU,yEACb,UAAA,gBAAAhB,EAAC,OAAA,EAAI,WAAU,2DAAA,CAA2D,EAAA,CAC5E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,SAASkB,EAAkB,EAAE,GAAGR,KAAsC;AACpE,SACE,gBAAAV,EAAC,OAAA,EAAI,aAAU,uBAAsB,MAAK,aAAa,GAAGU,GACxD,UAAA,gBAAAV,EAACK,GAAA,CAAA,CAAU,EAAA,CACb;AAEJ;"}
|