@codefast/ui 0.3.4 → 0.3.5
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/CHANGELOG.md +30 -0
- package/dist/cjs/components/accordion.cjs +1 -1
- package/dist/cjs/components/accordion.cjs.map +1 -1
- package/dist/cjs/components/alert/alert-variants.cjs.map +1 -1
- package/dist/cjs/components/alert/alert.cjs +1 -1
- package/dist/cjs/components/alert/alert.cjs.map +1 -1
- package/dist/cjs/components/alert/index.cjs +2 -1
- package/dist/cjs/components/alert/index.cjs.map +1 -0
- package/dist/cjs/components/alert-dialog.cjs +1 -1
- package/dist/cjs/components/alert-dialog.cjs.map +1 -1
- package/dist/cjs/components/aspect-ratio.cjs.map +1 -1
- package/dist/cjs/components/avatar.cjs +1 -1
- package/dist/cjs/components/avatar.cjs.map +1 -1
- package/dist/cjs/components/badge/badge-variants.cjs.map +1 -1
- package/dist/cjs/components/badge/badge.cjs.map +1 -1
- package/dist/cjs/components/badge/index.cjs +2 -1
- package/dist/cjs/components/badge/index.cjs.map +1 -0
- package/dist/cjs/components/blockquote.cjs.map +1 -1
- package/dist/cjs/components/box.cjs.map +1 -1
- package/dist/cjs/components/breadcrumb.cjs +1 -1
- package/dist/cjs/components/breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/button/button-variants.cjs.map +1 -1
- package/dist/cjs/components/button/button.cjs.map +1 -1
- package/dist/cjs/components/button/index.cjs +2 -1
- package/dist/cjs/components/button/index.cjs.map +1 -0
- package/dist/cjs/components/calendar.cjs.map +1 -1
- package/dist/cjs/components/card.cjs +1 -1
- package/dist/cjs/components/card.cjs.map +1 -1
- package/dist/cjs/components/carousel.cjs +1 -1
- package/dist/cjs/components/carousel.cjs.map +1 -1
- package/dist/cjs/components/chart.cjs +1 -1
- package/dist/cjs/components/chart.cjs.map +1 -1
- package/dist/cjs/components/checkbox-cards.cjs +1 -1
- package/dist/cjs/components/checkbox-cards.cjs.map +1 -1
- package/dist/cjs/components/checkbox-group.cjs.map +1 -1
- package/dist/cjs/components/checkbox.cjs.map +1 -1
- package/dist/cjs/components/code.cjs.map +1 -1
- package/dist/cjs/components/collapsible.cjs +1 -1
- package/dist/cjs/components/collapsible.cjs.map +1 -1
- package/dist/cjs/components/command.cjs +1 -1
- package/dist/cjs/components/command.cjs.map +1 -1
- package/dist/cjs/components/container.cjs.map +1 -1
- package/dist/cjs/components/context-menu.cjs +1 -1
- package/dist/cjs/components/context-menu.cjs.map +1 -1
- package/dist/cjs/components/dialog.cjs +1 -1
- package/dist/cjs/components/dialog.cjs.map +1 -1
- package/dist/cjs/components/drawer.cjs +1 -1
- package/dist/cjs/components/drawer.cjs.map +1 -1
- package/dist/cjs/components/dropdown-menu.cjs +1 -1
- package/dist/cjs/components/dropdown-menu.cjs.map +1 -1
- package/dist/cjs/components/em.cjs.map +1 -1
- package/dist/cjs/components/form.cjs +1 -1
- package/dist/cjs/components/form.cjs.map +1 -1
- package/dist/cjs/components/heading.cjs.map +1 -1
- package/dist/cjs/components/hover-card.cjs +1 -1
- package/dist/cjs/components/hover-card.cjs.map +1 -1
- package/dist/cjs/components/inline.cjs.map +1 -1
- package/dist/cjs/components/input/index.cjs +2 -1
- package/dist/cjs/components/input/index.cjs.map +1 -0
- package/dist/cjs/components/input/input-variants.cjs.map +1 -1
- package/dist/cjs/components/input/input.cjs.map +1 -1
- package/dist/cjs/components/input-date.cjs +2 -1
- package/dist/cjs/components/input-date.cjs.map +1 -0
- package/dist/cjs/components/input-number.cjs +1 -1
- package/dist/cjs/components/input-number.cjs.map +1 -1
- package/dist/cjs/components/input-otp.cjs +1 -1
- package/dist/cjs/components/input-otp.cjs.map +1 -1
- package/dist/cjs/components/input-password.cjs.map +1 -1
- package/dist/cjs/components/input-search.cjs +1 -1
- package/dist/cjs/components/input-search.cjs.map +1 -1
- package/dist/cjs/components/input-time.cjs +2 -1
- package/dist/cjs/components/input-time.cjs.map +1 -0
- package/dist/cjs/components/kbd.cjs.map +1 -1
- package/dist/cjs/components/label.cjs.map +1 -1
- package/dist/cjs/components/menubar.cjs +1 -1
- package/dist/cjs/components/menubar.cjs.map +1 -1
- package/dist/cjs/components/navigation-menu/index.cjs +2 -1
- package/dist/cjs/components/navigation-menu/index.cjs.map +1 -0
- package/dist/cjs/components/navigation-menu/navigation-menu-trigger-style.cjs.map +1 -1
- package/dist/cjs/components/navigation-menu/navigation-menu.cjs +1 -1
- package/dist/cjs/components/navigation-menu/navigation-menu.cjs.map +1 -1
- package/dist/cjs/components/pagination.cjs +1 -1
- package/dist/cjs/components/pagination.cjs.map +1 -1
- package/dist/cjs/components/popover.cjs.map +1 -1
- package/dist/cjs/components/pre.cjs.map +1 -1
- package/dist/cjs/components/progress-circle/index.cjs +2 -1
- package/dist/cjs/components/progress-circle/index.cjs.map +1 -0
- package/dist/cjs/components/progress-circle/progress-circle-variants.cjs.map +1 -1
- package/dist/cjs/components/progress-circle/progress-circle.cjs.map +1 -1
- package/dist/cjs/components/progress.cjs.map +1 -1
- package/dist/cjs/components/quote.cjs.map +1 -1
- package/dist/cjs/components/radio-cards.cjs.map +1 -1
- package/dist/cjs/components/radio-group.cjs.map +1 -1
- package/dist/cjs/components/radio.cjs.map +1 -1
- package/dist/cjs/components/resizable.cjs.map +1 -1
- package/dist/cjs/components/scroll-area/index.cjs +2 -1
- package/dist/cjs/components/scroll-area/index.cjs.map +1 -0
- package/dist/cjs/components/scroll-area/scroll-area-scrollbar-variants.cjs.map +1 -1
- package/dist/cjs/components/scroll-area/scroll-area.cjs.map +1 -1
- package/dist/cjs/components/section.cjs.map +1 -1
- package/dist/cjs/components/select.cjs +1 -1
- package/dist/cjs/components/select.cjs.map +1 -1
- package/dist/cjs/components/separator/index.cjs +2 -1
- package/dist/cjs/components/separator/index.cjs.map +1 -0
- package/dist/cjs/components/separator/separator-variants.cjs.map +1 -1
- package/dist/cjs/components/separator/separator.cjs +1 -1
- package/dist/cjs/components/separator/separator.cjs.map +1 -1
- package/dist/cjs/components/sheet/index.cjs +2 -1
- package/dist/cjs/components/sheet/index.cjs.map +1 -0
- package/dist/cjs/components/sheet/sheet-content-variants.cjs.map +1 -1
- package/dist/cjs/components/sheet/sheet.cjs +1 -1
- package/dist/cjs/components/sheet/sheet.cjs.map +1 -1
- package/dist/cjs/components/sidebar/index.cjs +2 -1
- package/dist/cjs/components/sidebar/index.cjs.map +1 -0
- package/dist/cjs/components/sidebar/sidebar-menu-button-variants.cjs.map +1 -1
- package/dist/cjs/components/sidebar/sidebar.cjs +1 -1
- package/dist/cjs/components/sidebar/sidebar.cjs.map +1 -1
- package/dist/cjs/components/skeleton.cjs.map +1 -1
- package/dist/cjs/components/slider.cjs.map +1 -1
- package/dist/cjs/components/sonner.cjs +1 -1
- package/dist/cjs/components/sonner.cjs.map +1 -1
- package/dist/cjs/components/spinner.cjs.map +1 -1
- package/dist/cjs/components/strong.cjs.map +1 -1
- package/dist/cjs/components/switch.cjs.map +1 -1
- package/dist/cjs/components/table.cjs +1 -1
- package/dist/cjs/components/table.cjs.map +1 -1
- package/dist/cjs/components/tabs.cjs +1 -1
- package/dist/cjs/components/tabs.cjs.map +1 -1
- package/dist/cjs/components/text.cjs.map +1 -1
- package/dist/cjs/components/textarea.cjs.map +1 -1
- package/dist/cjs/components/toggle/index.cjs +2 -1
- package/dist/cjs/components/toggle/index.cjs.map +1 -0
- package/dist/cjs/components/toggle/toggle-variants.cjs.map +1 -1
- package/dist/cjs/components/toggle/toggle.cjs.map +1 -1
- package/dist/cjs/components/toggle-group.cjs +1 -1
- package/dist/cjs/components/toggle-group.cjs.map +1 -1
- package/dist/cjs/components/tooltip.cjs +1 -1
- package/dist/cjs/components/tooltip.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -1
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/lib/utils.cjs.map +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.js.map +1 -1
- package/dist/esm/components/alert/alert-variants.js +1 -1
- package/dist/esm/components/alert/alert-variants.js.map +1 -1
- package/dist/esm/components/alert/alert.js +1 -1
- package/dist/esm/components/alert/alert.js.map +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.js.map +1 -1
- package/dist/esm/components/aspect-ratio.js +1 -1
- package/dist/esm/components/aspect-ratio.js.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.js.map +1 -1
- package/dist/esm/components/badge/badge-variants.js +1 -1
- package/dist/esm/components/badge/badge-variants.js.map +1 -1
- package/dist/esm/components/badge/badge.js +1 -1
- package/dist/esm/components/badge/badge.js.map +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.js.map +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/box.js.map +1 -1
- package/dist/esm/components/breadcrumb.js +1 -1
- package/dist/esm/components/breadcrumb.js.map +1 -1
- package/dist/esm/components/button/button-variants.js +1 -1
- package/dist/esm/components/button/button-variants.js.map +1 -1
- package/dist/esm/components/button/button.js +1 -1
- package/dist/esm/components/button/button.js.map +1 -1
- package/dist/esm/components/calendar.js +1 -1
- package/dist/esm/components/calendar.js.map +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.js.map +1 -1
- package/dist/esm/components/carousel.js +1 -1
- package/dist/esm/components/carousel.js.map +1 -1
- package/dist/esm/components/chart.js +1 -1
- package/dist/esm/components/chart.js.map +1 -1
- package/dist/esm/components/checkbox-cards.js +1 -1
- package/dist/esm/components/checkbox-cards.js.map +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.js.map +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.js.map +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.js.map +1 -1
- package/dist/esm/components/collapsible.js +1 -1
- package/dist/esm/components/collapsible.js.map +1 -1
- package/dist/esm/components/command.js +1 -1
- package/dist/esm/components/command.js.map +1 -1
- package/dist/esm/components/container.js +1 -1
- package/dist/esm/components/container.js.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.js.map +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.js.map +1 -1
- package/dist/esm/components/drawer.js +1 -1
- package/dist/esm/components/drawer.js.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.js.map +1 -1
- package/dist/esm/components/em.js +1 -1
- package/dist/esm/components/em.js.map +1 -1
- package/dist/esm/components/form.js +1 -1
- package/dist/esm/components/form.js.map +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.js.map +1 -1
- package/dist/esm/components/hover-card.js +1 -1
- package/dist/esm/components/hover-card.js.map +1 -1
- package/dist/esm/components/inline.js +1 -1
- package/dist/esm/components/inline.js.map +1 -1
- package/dist/esm/components/input/input-variants.js +1 -1
- package/dist/esm/components/input/input-variants.js.map +1 -1
- package/dist/esm/components/input/input.js +1 -1
- package/dist/esm/components/input/input.js.map +1 -1
- package/dist/esm/components/input-number.js +1 -1
- package/dist/esm/components/input-number.js.map +1 -1
- package/dist/esm/components/input-otp.js +1 -1
- package/dist/esm/components/input-otp.js.map +1 -1
- package/dist/esm/components/input-password.js +1 -1
- package/dist/esm/components/input-password.js.map +1 -1
- package/dist/esm/components/input-search.js +1 -1
- package/dist/esm/components/input-search.js.map +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.js.map +1 -1
- package/dist/esm/components/label.js +1 -1
- package/dist/esm/components/label.js.map +1 -1
- package/dist/esm/components/menubar.js +1 -1
- package/dist/esm/components/menubar.js.map +1 -1
- package/dist/esm/components/navigation-menu/navigation-menu-trigger-style.js +1 -1
- package/dist/esm/components/navigation-menu/navigation-menu-trigger-style.js.map +1 -1
- package/dist/esm/components/navigation-menu/navigation-menu.js +1 -1
- package/dist/esm/components/navigation-menu/navigation-menu.js.map +1 -1
- package/dist/esm/components/pagination.js +1 -1
- package/dist/esm/components/pagination.js.map +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.js.map +1 -1
- package/dist/esm/components/pre.js +1 -1
- package/dist/esm/components/pre.js.map +1 -1
- package/dist/esm/components/progress-circle/progress-circle-variants.js +1 -1
- package/dist/esm/components/progress-circle/progress-circle-variants.js.map +1 -1
- package/dist/esm/components/progress-circle/progress-circle.js +1 -1
- package/dist/esm/components/progress-circle/progress-circle.js.map +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.js.map +1 -1
- package/dist/esm/components/quote.js +1 -1
- package/dist/esm/components/quote.js.map +1 -1
- package/dist/esm/components/radio-cards.js +1 -1
- package/dist/esm/components/radio-cards.js.map +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.js.map +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.js.map +1 -1
- package/dist/esm/components/resizable.js +1 -1
- package/dist/esm/components/resizable.js.map +1 -1
- package/dist/esm/components/scroll-area/scroll-area-scrollbar-variants.js +1 -1
- package/dist/esm/components/scroll-area/scroll-area-scrollbar-variants.js.map +1 -1
- package/dist/esm/components/scroll-area/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area/scroll-area.js.map +1 -1
- package/dist/esm/components/section.js +1 -1
- package/dist/esm/components/section.js.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.js.map +1 -1
- package/dist/esm/components/separator/separator-variants.js +1 -1
- package/dist/esm/components/separator/separator-variants.js.map +1 -1
- package/dist/esm/components/separator/separator.js +1 -1
- package/dist/esm/components/separator/separator.js.map +1 -1
- package/dist/esm/components/sheet/sheet-content-variants.js +1 -1
- package/dist/esm/components/sheet/sheet-content-variants.js.map +1 -1
- package/dist/esm/components/sheet/sheet.js +1 -1
- package/dist/esm/components/sheet/sheet.js.map +1 -1
- package/dist/esm/components/sidebar/sidebar-menu-button-variants.js +1 -1
- package/dist/esm/components/sidebar/sidebar-menu-button-variants.js.map +1 -1
- package/dist/esm/components/sidebar/sidebar.js +1 -1
- package/dist/esm/components/sidebar/sidebar.js.map +1 -1
- package/dist/esm/components/skeleton.js +1 -1
- package/dist/esm/components/skeleton.js.map +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.js.map +1 -1
- package/dist/esm/components/sonner.js +1 -1
- package/dist/esm/components/sonner.js.map +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/spinner.js.map +1 -1
- package/dist/esm/components/strong.js +1 -1
- package/dist/esm/components/strong.js.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.js.map +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/table.js.map +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.js.map +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.js.map +1 -1
- package/dist/esm/components/textarea.js +1 -1
- package/dist/esm/components/textarea.js.map +1 -1
- package/dist/esm/components/toggle/toggle-variants.js +1 -1
- package/dist/esm/components/toggle/toggle-variants.js.map +1 -1
- package/dist/esm/components/toggle/toggle.js +1 -1
- package/dist/esm/components/toggle/toggle.js.map +1 -1
- package/dist/esm/components/toggle-group.js +1 -1
- package/dist/esm/components/toggle-group.js.map +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/tooltip.js.map +1 -1
- package/dist/esm/lib/utils.js +1 -1
- package/dist/esm/lib/utils.js.map +1 -1
- package/package.json +50 -50
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/select.js","sources":["webpack://@codefast/ui/./src/components/select.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronsUpDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { buttonVariants } from \"@/components/button\";\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Select\n * -------------------------------------------------------------------------- */\n\nfunction Select({ ...props }: ComponentProps<typeof SelectPrimitive.Root>): JSX.Element {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectGroup\n * -------------------------------------------------------------------------- */\n\nfunction SelectGroup({ ...props }: ComponentProps<typeof SelectPrimitive.Group>): JSX.Element {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectValue\n * -------------------------------------------------------------------------- */\n\nfunction SelectValue({ ...props }: ComponentProps<typeof SelectPrimitive.Value>): JSX.Element {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectTrigger\n * -------------------------------------------------------------------------- */\n\nfunction SelectTrigger({\n children,\n className,\n size,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: VariantProps<typeof buttonVariants>[\"size\"];\n}): JSX.Element {\n return (\n <SelectPrimitive.Trigger\n className={buttonVariants({\n className: [\n \"[&_svg:not([class*='text-'])]:text-muted-foreground focus:ring-ring/50 focus:ring-3 focus:border-ring w-fit justify-between px-3 font-normal *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 *:data-[slot=select-value]:truncate\",\n className,\n ],\n size,\n variant: \"outline\",\n })}\n data-size={size}\n data-slot=\"select-trigger\"\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild className=\"size-4 shrink-0 opacity-50\">\n <ChevronsUpDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectScrollUpButton\n * -------------------------------------------------------------------------- */\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollUpButton>): JSX.Element {\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\"text-muted-foreground flex items-center justify-center py-1\", className)}\n data-slot=\"select-scroll-up-button\"\n {...props}\n >\n <ChevronUpIcon size={16} />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectScrollDownButton\n * -------------------------------------------------------------------------- */\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollDownButton>): JSX.Element {\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\"text-muted-foreground flex items-center justify-center py-1\", className)}\n data-slot=\"select-scroll-down-button\"\n {...props}\n >\n <ChevronDownIcon size={16} />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectContent\n * -------------------------------------------------------------------------- */\n\nfunction SelectContent({\n children,\n className,\n position = \"popper\",\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>): JSX.Element {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 relative z-50 max-h-96 min-w-32 overflow-hidden rounded-lg border shadow-lg\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n data-slot=\"select-content\"\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" && \"h-(--radix-select-trigger-height) min-w-(--radix-select-trigger-width) w-full\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectLabel\n * -------------------------------------------------------------------------- */\n\nfunction SelectLabel({ className, ...props }: ComponentProps<typeof SelectPrimitive.Label>): JSX.Element {\n return (\n <SelectPrimitive.Label\n className={cn(\"flex items-center gap-x-2 px-2 py-1.5 text-sm font-semibold\", className)}\n data-slot=\"select-label\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectItem\n * -------------------------------------------------------------------------- */\n\nfunction SelectItem({ children, className, ...props }: ComponentProps<typeof SelectPrimitive.Item>): JSX.Element {\n return (\n <SelectPrimitive.Item\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground outline-hidden *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 data-[variant=destructive]:[&_svg:not([class*='text-'])]:text-destructive/80 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n data-slot=\"select-item\"\n {...props}\n >\n <span className=\"absolute right-2 flex items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectSeparator\n * -------------------------------------------------------------------------- */\n\nfunction SelectSeparator({ className, ...props }: ComponentProps<typeof SelectPrimitive.Separator>): JSX.Element {\n return (\n <SelectPrimitive.Separator\n className={cn(\"bg-border mx-2 my-1 h-px\", className)}\n data-slot=\"select-separator\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["Select","props","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","children","className","size","buttonVariants","ChevronsUpDownIcon","SelectScrollUpButton","cn","ChevronUpIcon","SelectScrollDownButton","ChevronDownIcon","SelectContent","position","SelectLabel","SelectItem","CheckIcon","SelectSeparator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components/select.js","sources":["webpack://@codefast/ui/./src/components/select.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronsUpDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { buttonVariants } from \"@/components/button\";\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Select\n * -------------------------------------------------------------------------- */\n\nfunction Select({ ...props }: ComponentProps<typeof SelectPrimitive.Root>): JSX.Element {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectGroup\n * -------------------------------------------------------------------------- */\n\nfunction SelectGroup({ ...props }: ComponentProps<typeof SelectPrimitive.Group>): JSX.Element {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectValue\n * -------------------------------------------------------------------------- */\n\nfunction SelectValue({ ...props }: ComponentProps<typeof SelectPrimitive.Value>): JSX.Element {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectTrigger\n * -------------------------------------------------------------------------- */\n\nfunction SelectTrigger({\n children,\n className,\n size,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: VariantProps<typeof buttonVariants>[\"size\"];\n}): JSX.Element {\n return (\n <SelectPrimitive.Trigger\n className={buttonVariants({\n className: [\n \"[&_svg:not([class*='text-'])]:text-muted-foreground focus:ring-ring/50 focus:ring-3 focus:border-ring w-fit justify-between px-3 font-normal *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 *:data-[slot=select-value]:truncate\",\n className,\n ],\n size,\n variant: \"outline\",\n })}\n data-size={size}\n data-slot=\"select-trigger\"\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild className=\"size-4 shrink-0 opacity-50\">\n <ChevronsUpDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectScrollUpButton\n * -------------------------------------------------------------------------- */\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollUpButton>): JSX.Element {\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\"text-muted-foreground flex items-center justify-center py-1\", className)}\n data-slot=\"select-scroll-up-button\"\n {...props}\n >\n <ChevronUpIcon size={16} />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectScrollDownButton\n * -------------------------------------------------------------------------- */\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollDownButton>): JSX.Element {\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\"text-muted-foreground flex items-center justify-center py-1\", className)}\n data-slot=\"select-scroll-down-button\"\n {...props}\n >\n <ChevronDownIcon size={16} />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectContent\n * -------------------------------------------------------------------------- */\n\nfunction SelectContent({\n children,\n className,\n position = \"popper\",\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>): JSX.Element {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 relative z-50 max-h-96 min-w-32 overflow-hidden rounded-lg border shadow-lg\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n data-slot=\"select-content\"\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" && \"h-(--radix-select-trigger-height) min-w-(--radix-select-trigger-width) w-full\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectLabel\n * -------------------------------------------------------------------------- */\n\nfunction SelectLabel({ className, ...props }: ComponentProps<typeof SelectPrimitive.Label>): JSX.Element {\n return (\n <SelectPrimitive.Label\n className={cn(\"flex items-center gap-x-2 px-2 py-1.5 text-sm font-semibold\", className)}\n data-slot=\"select-label\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectItem\n * -------------------------------------------------------------------------- */\n\nfunction SelectItem({ children, className, ...props }: ComponentProps<typeof SelectPrimitive.Item>): JSX.Element {\n return (\n <SelectPrimitive.Item\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground outline-hidden *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 data-[variant=destructive]:[&_svg:not([class*='text-'])]:text-destructive/80 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n data-slot=\"select-item\"\n {...props}\n >\n <span className=\"absolute right-2 flex items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SelectSeparator\n * -------------------------------------------------------------------------- */\n\nfunction SelectSeparator({ className, ...props }: ComponentProps<typeof SelectPrimitive.Separator>): JSX.Element {\n return (\n <SelectPrimitive.Separator\n className={cn(\"bg-border mx-2 my-1 h-px\", className)}\n data-slot=\"select-separator\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["Select","props","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","children","className","size","buttonVariants","ChevronsUpDownIcon","SelectScrollUpButton","cn","ChevronUpIcon","SelectScrollDownButton","ChevronDownIcon","SelectContent","position","SelectLabel","SelectItem","CheckIcon","SelectSeparator"],"mappings":";oeAgBA,SAASA,EAAO,CAAE,GAAGC,EAAoD,EACvE,OAAO,EAACC,EAAoB,CAAC,YAAU,SAAU,GAAGD,CAAK,EAC3D,CAMA,SAASE,EAAY,CAAE,GAAGF,EAAqD,EAC7E,OAAO,EAACC,EAAqB,CAAC,YAAU,eAAgB,GAAGD,CAAK,EAClE,CAMA,SAASG,EAAY,CAAE,GAAGH,EAAqD,EAC7E,OAAO,EAACC,EAAqB,CAAC,YAAU,eAAgB,GAAGD,CAAK,EAClE,CAMA,SAASI,EAAc,CACrBC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTC,KAAAA,CAAI,CACJ,GAAGP,EAGJ,EACC,OACE,EAACC,EAAuB,CACtB,UAAWO,EAAe,CACxB,UAAW,CACT,oUACAF,EACD,CACDC,KAAAA,EACA,QAAS,SACX,GACA,YAAWA,EACX,YAAU,iBACT,GAAGP,CAAK,C,UAERK,EACD,EAACJ,EAAoB,CAAC,QAAO,GAAC,UAAU,6B,SACtC,EAACQ,EAAkBA,CAAAA,E,KAI3B,CAMA,SAASC,EAAqB,CAC5BJ,UAAAA,CAAS,CACT,GAAGN,EACmD,EACtD,OACE,EAACC,EAA8B,CAC7B,UAAWU,EAAG,8DAA+DL,GAC7E,YAAU,0BACT,GAAGN,CAAK,C,SAET,EAACY,EAAaA,CAAC,KAAM,E,IAG3B,CAMA,SAASC,EAAuB,CAC9BP,UAAAA,CAAS,CACT,GAAGN,EACqD,EACxD,OACE,EAACC,EAAgC,CAC/B,UAAWU,EAAG,8DAA+DL,GAC7E,YAAU,4BACT,GAAGN,CAAK,C,SAET,EAACc,EAAeA,CAAC,KAAM,E,IAG7B,CAMA,SAASC,EAAc,CACrBV,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTU,SAAAA,EAAW,QAAQ,CACnB,GAAGhB,EAC4C,EAC/C,OACE,EAACC,EAAsB,C,SACrB,EAACA,EAAuB,CACtB,UAAWU,EACT,kvBACAK,WAAAA,GACE,kIACFV,GAEF,YAAU,iBACV,SAAUU,EACT,GAAGhB,CAAK,C,UAET,EAACU,EAAAA,CAAAA,GACD,EAACT,EAAwB,CACvB,UAAWU,EACT,MACAK,WAAAA,GAAyB,iF,SAG1BX,C,GAEH,EAACQ,EAAAA,CAAAA,G,IAIT,CAMA,SAASI,EAAY,CAAEX,UAAAA,CAAS,CAAE,GAAGN,EAAqD,EACxF,OACE,EAACC,EAAqB,CACpB,UAAWU,EAAG,8DAA+DL,GAC7E,YAAU,eACT,GAAGN,CAAK,EAGf,CAMA,SAASkB,EAAW,CAAEb,SAAAA,CAAQ,CAAEC,UAAAA,CAAS,CAAE,GAAGN,EAAoD,EAChG,OACE,EAACC,EAAoB,CACnB,UAAWU,EACT,ibACAL,GAEF,YAAU,cACT,GAAGN,CAAK,C,UAET,EAAC,QAAK,UAAU,oD,SACd,EAACC,EAA6B,C,SAC5B,EAACkB,EAASA,CAAC,UAAU,Q,OAGzB,EAAClB,EAAwB,C,SAAEI,C,KAGjC,CAMA,SAASe,EAAgB,CAAEd,UAAAA,CAAS,CAAE,GAAGN,EAAyD,EAChG,OACE,EAACC,EAAyB,CACxB,UAAWU,EAAG,2BAA4BL,GAC1C,YAAU,mBACT,GAAGN,CAAK,EAGf,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{tv as t}from"../../lib/utils.js";let e=t({base:"bg-border relative flex shrink-0 items-center",variants:{align:{center:"justify-center",end:"justify-end",start:"justify-start"},orientation:{horizontal:"h-px w-full",vertical:"h-full w-px flex-col"}},defaultVariants:{align:"center",orientation:"horizontal"}});export{e as separatorVariants};
|
|
2
2
|
//# sourceMappingURL=separator-variants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/separator/separator-variants.js","sources":["webpack://@codefast/ui/./src/components/separator/separator-variants.tsx"],"sourcesContent":["import { tv } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Variant: Separator\n * -------------------------------------------------------------------------- */\n\nconst separatorVariants = tv({\n base: \"bg-border relative flex shrink-0 items-center\",\n variants: {\n align: {\n center: \"justify-center\",\n end: \"justify-end\",\n start: \"justify-start\",\n },\n orientation: {\n horizontal: \"h-px w-full\",\n vertical: \"h-full w-px flex-col\",\n },\n },\n defaultVariants: {\n align: \"center\",\n orientation: \"horizontal\",\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { separatorVariants };\n"],"names":["separatorVariants","tv"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components/separator/separator-variants.js","sources":["webpack://@codefast/ui/./src/components/separator/separator-variants.tsx"],"sourcesContent":["import { tv } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Variant: Separator\n * -------------------------------------------------------------------------- */\n\nconst separatorVariants = tv({\n base: \"bg-border relative flex shrink-0 items-center\",\n variants: {\n align: {\n center: \"justify-center\",\n end: \"justify-end\",\n start: \"justify-start\",\n },\n orientation: {\n horizontal: \"h-px w-full\",\n vertical: \"h-full w-px flex-col\",\n },\n },\n defaultVariants: {\n align: \"center\",\n orientation: \"horizontal\",\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { separatorVariants };\n"],"names":["separatorVariants","tv"],"mappings":"wCAMA,IAAMA,EAAoBC,EAAG,CAC3B,KAAM,gDACN,SAAU,CACR,MAAO,CACL,OAAQ,iBACR,IAAK,cACL,MAAO,eACT,EACA,YAAa,CACX,WAAY,cACZ,SAAU,sBACZ,CACF,EACA,gBAAiB,CACf,MAAO,SACP,YAAa,YACf,CACF,U"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import{jsx as r}from"react/jsx-runtime";import{Root as t}from"@radix-ui/react-separator";import{separatorVariants as a}from"./separator-variants.js";import{cn as o}from"../../lib/utils.js";function e({align:o,className:e,decorative:i=!0,orientation:s,...m}){return r(t,{className:a({align:o,className:e,orientation:s}),"data-slot":"separator",decorative:i,orientation:s,...m})}function i({className:t,...a}){return r("div",{className:o("bg-background text-muted-foreground absolute mx-2 px-2 text-sm",t),"data-slot":"separator-item",...a})}export{e as Separator,i as SeparatorItem};
|
|
3
3
|
//# sourceMappingURL=separator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/separator/separator.js","sources":["webpack://@codefast/ui/./src/components/separator/separator.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { separatorVariants } from \"@/components/separator/separator-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Separator\n * -------------------------------------------------------------------------- */\n\nfunction Separator({\n align,\n className,\n decorative = true,\n orientation,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root> &\n Omit<VariantProps<typeof separatorVariants>, \"orientation\">): JSX.Element {\n return (\n <SeparatorPrimitive.Root\n className={separatorVariants({ align, className, orientation })}\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SeparatorItem\n * -------------------------------------------------------------------------- */\n\nfunction SeparatorItem({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"bg-background text-muted-foreground absolute mx-2 px-2 text-sm\", className)}\n data-slot=\"separator-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Separator, SeparatorItem };\n"],"names":["Separator","align","className","decorative","orientation","props","SeparatorPrimitive","separatorVariants","SeparatorItem","cn"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components/separator/separator.js","sources":["webpack://@codefast/ui/./src/components/separator/separator.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { separatorVariants } from \"@/components/separator/separator-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Separator\n * -------------------------------------------------------------------------- */\n\nfunction Separator({\n align,\n className,\n decorative = true,\n orientation,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root> &\n Omit<VariantProps<typeof separatorVariants>, \"orientation\">): JSX.Element {\n return (\n <SeparatorPrimitive.Root\n className={separatorVariants({ align, className, orientation })}\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SeparatorItem\n * -------------------------------------------------------------------------- */\n\nfunction SeparatorItem({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"bg-background text-muted-foreground absolute mx-2 px-2 text-sm\", className)}\n data-slot=\"separator-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Separator, SeparatorItem };\n"],"names":["Separator","align","className","decorative","orientation","props","SeparatorPrimitive","separatorVariants","SeparatorItem","cn"],"mappings":";6LAeA,SAASA,EAAU,CACjBC,MAAAA,CAAK,CACLC,UAAAA,CAAS,CACTC,WAAAA,EAAa,EAAI,CACjBC,YAAAA,CAAW,CACX,GAAGC,EAEwD,EAC3D,OACE,EAACC,EAAuB,CACtB,UAAWC,EAAkB,CAAEN,MAAAA,EAAOC,UAAAA,EAAWE,YAAAA,CAAY,GAC7D,YAAU,YACV,WAAYD,EACZ,YAAaC,EACZ,GAAGC,CAAK,EAGf,CAMA,SAASG,EAAc,CAAEN,UAAAA,CAAS,CAAE,GAAGG,EAA8B,EACnE,OACE,EAAC,OACC,UAAWI,EAAG,iEAAkEP,GAChF,YAAU,iBACT,GAAGG,CAAK,EAGf,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{tv as t}from"../../lib/utils.js";let a=t({base:"bg-background animation-ease-in-out data-[state=open]:animate-in data-[state=open]:animation-duration-500 data-[state=closed]:animate-out data-[state=closed]:animation-duration-500 fixed z-50 flex flex-col overflow-auto shadow-lg",variants:{side:{bottom:"data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom inset-x-0 bottom-0 max-h-[80vh] border-t",left:"data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",right:"data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",top:"data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top inset-x-0 top-0 max-h-[80vh] border-b"}},defaultVariants:{side:"right"}});export{a as sheetContentVariants};
|
|
2
2
|
//# sourceMappingURL=sheet-content-variants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/sheet/sheet-content-variants.js","sources":["webpack://@codefast/ui/./src/components/sheet/sheet-content-variants.tsx"],"sourcesContent":["import { tv } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Variant: SheetContent\n * -------------------------------------------------------------------------- */\n\nconst sheetContentVariants = tv({\n base: \"bg-background animation-ease-in-out data-[state=open]:animate-in data-[state=open]:animation-duration-500 data-[state=closed]:animate-out data-[state=closed]:animation-duration-500 fixed z-50 flex flex-col overflow-auto shadow-lg\",\n variants: {\n side: {\n bottom:\n \"data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom inset-x-0 bottom-0 max-h-[80vh] border-t\",\n left: \"data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm\",\n right:\n \"data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm\",\n top: \"data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top inset-x-0 top-0 max-h-[80vh] border-b\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { sheetContentVariants };\n"],"names":["sheetContentVariants","tv"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components/sheet/sheet-content-variants.js","sources":["webpack://@codefast/ui/./src/components/sheet/sheet-content-variants.tsx"],"sourcesContent":["import { tv } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Variant: SheetContent\n * -------------------------------------------------------------------------- */\n\nconst sheetContentVariants = tv({\n base: \"bg-background animation-ease-in-out data-[state=open]:animate-in data-[state=open]:animation-duration-500 data-[state=closed]:animate-out data-[state=closed]:animation-duration-500 fixed z-50 flex flex-col overflow-auto shadow-lg\",\n variants: {\n side: {\n bottom:\n \"data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom inset-x-0 bottom-0 max-h-[80vh] border-t\",\n left: \"data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm\",\n right:\n \"data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm\",\n top: \"data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top inset-x-0 top-0 max-h-[80vh] border-b\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { sheetContentVariants };\n"],"names":["sheetContentVariants","tv"],"mappings":"wCAMA,IAAMA,EAAuBC,EAAG,CAC9B,KAAM,wOACN,SAAU,CACR,KAAM,CACJ,OACE,0HACF,KAAM,gIACN,MACE,mIACF,IAAK,gHACP,CACF,EACA,gBAAiB,CACf,KAAM,OACR,CACF,U"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{Close as a,Content as s,Description as o,Overlay as r,Portal as n,Root as i,Title as l,Trigger as c}from"@radix-ui/react-dialog";import{XIcon as d}from"lucide-react";import{buttonVariants as m}from"../button/index.js";import{sheetContentVariants as h}from"./sheet-content-variants.js";import{cn as u}from"../../lib/utils.js";function f({children:t,...a}){return e(i,{"data-slot":"sheet",...a,children:t})}function p({...t}){return e(c,{"data-slot":"sheet-trigger",...t})}function x({children:o,className:i,classNames:l,side:c="right",...f}){return t(n,{children:[e(r,{className:u("bg-popover-overlay data-[state=open]:animate-fade-in data-[state=open]:animation-duration-500 data-[state=closed]:animate-fade-out data-[state=closed]:animation-duration-500 fixed inset-0 z-50",l?.overlay),"data-slot":"sheet-overlay"}),t(s,{className:h({className:[l?.content,i],side:c}),"data-slot":"sheet-content",...f,children:[o,t(a,{className:m({className:["absolute right-4 top-4 size-7",l?.close],size:"icon",variant:"ghost"}),"data-slot":"sheet-close",children:[e(d,{className:"size-4"}),e("span",{className:"sr-only",children:"Close"})]})]})]})}function g({className:t,...a}){return e("header",{className:u("flex shrink-0 flex-col gap-1.5 px-6 pb-4 pt-6 text-center sm:text-left",t),"data-slot":"sheet-header",...a})}function N({className:t,...a}){return e("main",{className:u("px-6 py-2",t),"data-slot":"sheet-body",...a})}function S({className:t,...a}){return e("footer",{className:u("flex shrink-0 flex-col-reverse gap-2 px-6 pb-6 pt-4 sm:flex-row sm:justify-end",t),"data-slot":"sheet-footer",...a})}function b({className:t,...a}){return e(l,{className:u("text-foreground text-lg font-semibold",t),"data-slot":"sheet-title",...a})}function y({className:t,...a}){return e(o,{className:u("text-muted-foreground text-sm",t),"data-slot":"sheet-description",...a})}function v({className:t,size:s,variant:o="outline",...r}){return e(a,{className:m({className:t,size:s,variant:o}),"data-slot":"sheet-close",...r})}export{f as Sheet,N as SheetBody,v as SheetClose,x as SheetContent,y as SheetDescription,S as SheetFooter,g as SheetHeader,b as SheetTitle,p as SheetTrigger};
|
|
3
3
|
//# sourceMappingURL=sheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/sheet/sheet.js","sources":["webpack://@codefast/ui/./src/components/sheet/sheet.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { buttonVariants } from \"@/components/button\";\nimport { sheetContentVariants } from \"@/components/sheet/sheet-content-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Sheet\n * -------------------------------------------------------------------------- */\n\nfunction Sheet({ children, ...props }: ComponentProps<typeof SheetPrimitive.Root>): JSX.Element {\n return (\n <SheetPrimitive.Root data-slot=\"sheet\" {...props}>\n {children}\n </SheetPrimitive.Root>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetTrigger\n * -------------------------------------------------------------------------- */\n\nfunction SheetTrigger({ ...props }: ComponentProps<typeof SheetPrimitive.Trigger>): JSX.Element {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetContent\n * -------------------------------------------------------------------------- */\n\nfunction SheetContent({\n children,\n className,\n classNames,\n side = \"right\",\n ...props\n}: ComponentProps<typeof SheetPrimitive.Content> &\n VariantProps<typeof sheetContentVariants> & {\n classNames?: {\n close?: string;\n content?: string;\n overlay?: string;\n };\n }): JSX.Element {\n return (\n <SheetPrimitive.Portal>\n <SheetPrimitive.Overlay\n className={cn(\n \"bg-popover-overlay data-[state=open]:animate-fade-in data-[state=open]:animation-duration-500 data-[state=closed]:animate-fade-out data-[state=closed]:animation-duration-500 fixed inset-0 z-50\",\n classNames?.overlay,\n )}\n data-slot=\"sheet-overlay\"\n />\n <SheetPrimitive.Content\n className={sheetContentVariants({ className: [classNames?.content, className], side })}\n data-slot=\"sheet-content\"\n {...props}\n >\n {children}\n <SheetPrimitive.Close\n className={buttonVariants({\n className: [\"absolute right-4 top-4 size-7\", classNames?.close],\n size: \"icon\",\n variant: \"ghost\",\n })}\n data-slot=\"sheet-close\"\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPrimitive.Portal>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetHeader\n * -------------------------------------------------------------------------- */\n\nfunction SheetHeader({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <header\n className={cn(\"flex shrink-0 flex-col gap-1.5 px-6 pb-4 pt-6 text-center sm:text-left\", className)}\n data-slot=\"sheet-header\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetBody\n * -------------------------------------------------------------------------- */\n\nfunction SheetBody({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return <main className={cn(\"px-6 py-2\", className)} data-slot=\"sheet-body\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetFooter\n * -------------------------------------------------------------------------- */\n\nfunction SheetFooter({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <footer\n className={cn(\"flex shrink-0 flex-col-reverse gap-2 px-6 pb-6 pt-4 sm:flex-row sm:justify-end\", className)}\n data-slot=\"sheet-footer\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetTitle\n * -------------------------------------------------------------------------- */\n\nfunction SheetTitle({ className, ...props }: ComponentProps<typeof SheetPrimitive.Title>): JSX.Element {\n return (\n <SheetPrimitive.Title\n className={cn(\"text-foreground text-lg font-semibold\", className)}\n data-slot=\"sheet-title\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetDescription\n * -------------------------------------------------------------------------- */\n\nfunction SheetDescription({ className, ...props }: ComponentProps<typeof SheetPrimitive.Description>): JSX.Element {\n return (\n <SheetPrimitive.Description\n className={cn(\"text-muted-foreground text-sm\", className)}\n data-slot=\"sheet-description\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetClose\n * -------------------------------------------------------------------------- */\n\nfunction SheetClose({\n className,\n size,\n variant = \"outline\",\n ...props\n}: ComponentProps<typeof SheetPrimitive.Close> & {\n size?: VariantProps<typeof buttonVariants>[\"size\"];\n variant?: VariantProps<typeof buttonVariants>[\"variant\"];\n}): JSX.Element {\n return (\n <SheetPrimitive.Close className={buttonVariants({ className, size, variant })} data-slot=\"sheet-close\" {...props} />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Sheet,\n SheetBody,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"names":["Sheet","children","props","SheetPrimitive","SheetTrigger","SheetContent","className","classNames","side","cn","sheetContentVariants","buttonVariants","XIcon","SheetHeader","SheetBody","SheetFooter","SheetTitle","SheetDescription","SheetClose","size","variant"],"mappings":";
|
|
1
|
+
{"version":3,"file":"components/sheet/sheet.js","sources":["webpack://@codefast/ui/./src/components/sheet/sheet.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { buttonVariants } from \"@/components/button\";\nimport { sheetContentVariants } from \"@/components/sheet/sheet-content-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Sheet\n * -------------------------------------------------------------------------- */\n\nfunction Sheet({ children, ...props }: ComponentProps<typeof SheetPrimitive.Root>): JSX.Element {\n return (\n <SheetPrimitive.Root data-slot=\"sheet\" {...props}>\n {children}\n </SheetPrimitive.Root>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetTrigger\n * -------------------------------------------------------------------------- */\n\nfunction SheetTrigger({ ...props }: ComponentProps<typeof SheetPrimitive.Trigger>): JSX.Element {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetContent\n * -------------------------------------------------------------------------- */\n\nfunction SheetContent({\n children,\n className,\n classNames,\n side = \"right\",\n ...props\n}: ComponentProps<typeof SheetPrimitive.Content> &\n VariantProps<typeof sheetContentVariants> & {\n classNames?: {\n close?: string;\n content?: string;\n overlay?: string;\n };\n }): JSX.Element {\n return (\n <SheetPrimitive.Portal>\n <SheetPrimitive.Overlay\n className={cn(\n \"bg-popover-overlay data-[state=open]:animate-fade-in data-[state=open]:animation-duration-500 data-[state=closed]:animate-fade-out data-[state=closed]:animation-duration-500 fixed inset-0 z-50\",\n classNames?.overlay,\n )}\n data-slot=\"sheet-overlay\"\n />\n <SheetPrimitive.Content\n className={sheetContentVariants({ className: [classNames?.content, className], side })}\n data-slot=\"sheet-content\"\n {...props}\n >\n {children}\n <SheetPrimitive.Close\n className={buttonVariants({\n className: [\"absolute right-4 top-4 size-7\", classNames?.close],\n size: \"icon\",\n variant: \"ghost\",\n })}\n data-slot=\"sheet-close\"\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPrimitive.Portal>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetHeader\n * -------------------------------------------------------------------------- */\n\nfunction SheetHeader({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <header\n className={cn(\"flex shrink-0 flex-col gap-1.5 px-6 pb-4 pt-6 text-center sm:text-left\", className)}\n data-slot=\"sheet-header\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetBody\n * -------------------------------------------------------------------------- */\n\nfunction SheetBody({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return <main className={cn(\"px-6 py-2\", className)} data-slot=\"sheet-body\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetFooter\n * -------------------------------------------------------------------------- */\n\nfunction SheetFooter({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <footer\n className={cn(\"flex shrink-0 flex-col-reverse gap-2 px-6 pb-6 pt-4 sm:flex-row sm:justify-end\", className)}\n data-slot=\"sheet-footer\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetTitle\n * -------------------------------------------------------------------------- */\n\nfunction SheetTitle({ className, ...props }: ComponentProps<typeof SheetPrimitive.Title>): JSX.Element {\n return (\n <SheetPrimitive.Title\n className={cn(\"text-foreground text-lg font-semibold\", className)}\n data-slot=\"sheet-title\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetDescription\n * -------------------------------------------------------------------------- */\n\nfunction SheetDescription({ className, ...props }: ComponentProps<typeof SheetPrimitive.Description>): JSX.Element {\n return (\n <SheetPrimitive.Description\n className={cn(\"text-muted-foreground text-sm\", className)}\n data-slot=\"sheet-description\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SheetClose\n * -------------------------------------------------------------------------- */\n\nfunction SheetClose({\n className,\n size,\n variant = \"outline\",\n ...props\n}: ComponentProps<typeof SheetPrimitive.Close> & {\n size?: VariantProps<typeof buttonVariants>[\"size\"];\n variant?: VariantProps<typeof buttonVariants>[\"variant\"];\n}): JSX.Element {\n return (\n <SheetPrimitive.Close className={buttonVariants({ className, size, variant })} data-slot=\"sheet-close\" {...props} />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Sheet,\n SheetBody,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"names":["Sheet","children","props","SheetPrimitive","SheetTrigger","SheetContent","className","classNames","side","cn","sheetContentVariants","buttonVariants","XIcon","SheetHeader","SheetBody","SheetFooter","SheetTitle","SheetDescription","SheetClose","size","variant"],"mappings":";8XAiBA,SAASA,EAAM,CAAEC,SAAAA,CAAQ,CAAE,GAAGC,EAAmD,EAC/E,OACE,EAACC,EAAmB,CAAC,YAAU,QAAS,GAAGD,CAAK,C,SAC7CD,C,EAGP,CAMA,SAASG,EAAa,CAAE,GAAGF,EAAsD,EAC/E,OAAO,EAACC,EAAsB,CAAC,YAAU,gBAAiB,GAAGD,CAAK,EACpE,CAMA,SAASG,EAAa,CACpBJ,SAAAA,CAAQ,CACRK,UAAAA,CAAS,CACTC,WAAAA,CAAU,CACVC,KAAAA,EAAO,OAAO,CACd,GAAGN,EAQF,EACD,OACE,EAACC,EAAqB,C,UACpB,EAACA,EAAsB,CACrB,UAAWM,EACT,mMACAF,GAAY,SAEd,YAAU,e,GAEZ,EAACJ,EAAsB,CACrB,UAAWO,EAAqB,CAAE,UAAW,CAACH,GAAY,QAASD,EAAU,CAAEE,KAAAA,CAAK,GACpF,YAAU,gBACT,GAAGN,CAAK,C,UAERD,EACD,EAACE,EAAoB,CACnB,UAAWQ,EAAe,CACxB,UAAW,CAAC,gCAAiCJ,GAAY,MAAM,CAC/D,KAAM,OACN,QAAS,OACX,GACA,YAAU,c,UAEV,EAACK,EAAKA,CAAC,UAAU,Q,GACjB,EAAC,QAAK,UAAU,U,SAAU,O,WAKpC,CAMA,SAASC,EAAY,CAAEP,UAAAA,CAAS,CAAE,GAAGJ,EAA8B,EACjE,OACE,EAAC,UACC,UAAWO,EAAG,yEAA0EH,GACxF,YAAU,eACT,GAAGJ,CAAK,EAGf,CAMA,SAASY,EAAU,CAAER,UAAAA,CAAS,CAAE,GAAGJ,EAA8B,EAC/D,OAAO,EAAC,QAAK,UAAWO,EAAG,YAAaH,GAAY,YAAU,aAAc,GAAGJ,CAAK,EACtF,CAMA,SAASa,EAAY,CAAET,UAAAA,CAAS,CAAE,GAAGJ,EAA8B,EACjE,OACE,EAAC,UACC,UAAWO,EAAG,iFAAkFH,GAChG,YAAU,eACT,GAAGJ,CAAK,EAGf,CAMA,SAASc,EAAW,CAAEV,UAAAA,CAAS,CAAE,GAAGJ,EAAoD,EACtF,OACE,EAACC,EAAoB,CACnB,UAAWM,EAAG,wCAAyCH,GACvD,YAAU,cACT,GAAGJ,CAAK,EAGf,CAMA,SAASe,EAAiB,CAAEX,UAAAA,CAAS,CAAE,GAAGJ,EAA0D,EAClG,OACE,EAACC,EAA0B,CACzB,UAAWM,EAAG,gCAAiCH,GAC/C,YAAU,oBACT,GAAGJ,CAAK,EAGf,CAMA,SAASgB,EAAW,CAClBZ,UAAAA,CAAS,CACTa,KAAAA,CAAI,CACJC,QAAAA,EAAU,SAAS,CACnB,GAAGlB,EAIJ,EACC,OACE,EAACC,EAAoB,CAAC,UAAWQ,EAAe,CAAEL,UAAAA,EAAWa,KAAAA,EAAMC,QAAAA,CAAQ,GAAI,YAAU,cAAe,GAAGlB,CAAK,EAEpH,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{tv as e}from"../../lib/utils.js";let a=e({base:"peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-3 flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{sm:"h-7 text-xs",md:"h-8 text-sm",lg:"group-data-[collapsible=icon]:p-0! h-12 text-sm"}},defaultVariants:{variant:"default",size:"md"}});export{a as sidebarMenuButtonVariants};
|
|
2
2
|
//# sourceMappingURL=sidebar-menu-button-variants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/sidebar/sidebar-menu-button-variants.js","sources":["webpack://@codefast/ui/./src/components/sidebar/sidebar-menu-button-variants.tsx"],"sourcesContent":["import { tv } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Variant: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nconst sidebarMenuButtonVariants = tv({\n base: \"peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-3 flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n sm: \"h-7 text-xs\",\n md: \"h-8 text-sm\",\n lg: \"group-data-[collapsible=icon]:p-0! h-12 text-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { sidebarMenuButtonVariants };\n"],"names":["sidebarMenuButtonVariants","tv"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components/sidebar/sidebar-menu-button-variants.js","sources":["webpack://@codefast/ui/./src/components/sidebar/sidebar-menu-button-variants.tsx"],"sourcesContent":["import { tv } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Variant: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nconst sidebarMenuButtonVariants = tv({\n base: \"peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-3 flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n sm: \"h-7 text-xs\",\n md: \"h-8 text-sm\",\n lg: \"group-data-[collapsible=icon]:p-0! h-12 text-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { sidebarMenuButtonVariants };\n"],"names":["sidebarMenuButtonVariants","tv"],"mappings":"wCAMA,IAAMA,EAA4BC,EAAG,CACnC,KAAM,ozBACN,SAAU,CACR,QAAS,CACP,QAAS,+DACT,QACE,8KACJ,EACA,KAAM,CACJ,GAAI,cACJ,GAAI,cACJ,GAAI,iDACN,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,IACR,CACF,U"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import*as e from"react/jsx-runtime";import*as a from"@codefast/hooks";import*as t from"@radix-ui/react-context";import*as r from"@radix-ui/react-slot";import*as i from"lucide-react";import*as s from"react";import*as n from"../button/index.js";import*as d from"../input/index.js";import*as o from"../separator/index.js";import*as l from"../sheet/index.js";import*as u from"./sidebar-menu-button-variants.js";import*as c from"../skeleton.js";import*as b from"../tooltip.js";import*as p from"../../lib/utils.js";let[f,m]=(0,t.createContext)("SidebarProvider");function g({defaultOpen:t=!0,open:r,onOpenChange:i,className:n,style:d,children:o,...l}){let u=(0,a.useIsMobile)(),[c,m]=(0,s.useState)(!1),[g,x]=(0,s.useState)(t),h=r??g,v=(0,s.useCallback)(e=>{let a="function"==typeof e?e(h):e;i?i(a):x(a),document.cookie=`sidebar_state=${a}; path=/; max-age=604800`},[i,h]),w=(0,s.useCallback)(()=>{u?m(e=>!e):v(e=>!e)},[u,v,m]);(0,s.useEffect)(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),w())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[w]);let j=h?"expanded":"collapsed";return(0,e.jsx)(f,{isMobile:u,open:h,openMobile:c,setOpen:v,setOpenMobile:m,state:j,toggleSidebar:w,children:(0,e.jsx)(b.TooltipProvider,{delayDuration:0,children:(0,e.jsx)("div",{className:(0,p.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",n),"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3.0625rem",...d},...l,children:o})})})}function x({side:a="left",variant:t="sidebar",collapsible:r="offcanvas",className:i,children:s,...n}){let{isMobile:d,state:o,openMobile:u,setOpenMobile:c}=m("Sidebar");return"none"===r?(0,e.jsx)("div",{className:(0,p.cn)("bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col",i),"data-slot":"sidebar",...n,children:s}):d?(0,e.jsx)(l.Sheet,{open:u,onOpenChange:c,...n,children:(0,e.jsxs)(l.SheetContent,{className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden","data-mobile":"true","data-sidebar":"sidebar","data-slot":"sidebar",side:a,style:{"--sidebar-width":"18rem"},children:[(0,e.jsxs)(l.SheetHeader,{className:"sr-only",children:[(0,e.jsx)(l.SheetTitle,{children:"Sidebar"}),(0,e.jsx)(l.SheetDescription,{children:"Displays the mobile sidebar."})]}),(0,e.jsx)("div",{className:"flex h-full w-full flex-col",children:s})]})}):(0,e.jsxs)("div",{className:(0,p.cn)("text-sidebar-foreground group peer hidden md:block",i),"data-collapsible":"collapsed"===o?r:"","data-side":a,"data-slot":"sidebar","data-state":o,"data-variant":t,children:[(0,e.jsx)("div",{className:(0,p.cn)("w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180","floating"===t||"inset"===t?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)"),"data-slot":"sidebar-gap"}),(0,e.jsx)("div",{className:(0,p.cn)("w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex","left"===a?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===t||"inset"===t?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),"data-slot":"sidebar-container",...n,children:(0,e.jsx)("div",{className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm","data-sidebar":"sidebar","data-slot":"sidebar-inner",children:s})})]})}function h({className:a,onClick:t,...r}){let{toggleSidebar:s}=m("SidebarTrigger");return(0,e.jsxs)(n.Button,{className:(0,p.cn)("size-7",a),"data-sidebar":"trigger","data-slot":"sidebar-trigger",size:"icon",variant:"ghost",onClick:e=>{t?.(e),s()},...r,children:[(0,e.jsx)(i.PanelLeftIcon,{}),(0,e.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function v({className:a,...t}){let{toggleSidebar:r}=m("SidebarRail");return(0,e.jsx)("button",{className:(0,p.cn)("hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",a),"data-sidebar":"rail","data-slot":"sidebar-rail",title:"Toggle Sidebar",type:"button",onClick:r,...t})}function w({className:a,...t}){return(0,e.jsx)("main",{className:(0,p.cn)("bg-background relative flex w-full min-w-0 flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",a),"data-slot":"sidebar-inset",...t})}function j({className:a,...t}){return(0,e.jsx)(d.Input,{className:(0,p.cn)("bg-background h-8 w-full shadow-none",a),"data-sidebar":"input","data-slot":"sidebar-input",...t})}function S({className:a,...t}){return(0,e.jsx)("div",{className:(0,p.cn)("flex flex-col gap-2 p-2",a),"data-sidebar":"header","data-slot":"sidebar-header",...t})}function N({className:a,...t}){return(0,e.jsx)("div",{className:(0,p.cn)("flex flex-col gap-2 p-2",a),"data-sidebar":"footer","data-slot":"sidebar-footer",...t})}function y({className:a,...t}){return(0,e.jsx)(o.Separator,{className:(0,p.cn)("bg-sidebar-border mx-2 w-auto",a),"data-sidebar":"separator","data-slot":"sidebar-separator",...t})}function k({className:a,...t}){return(0,e.jsx)("div",{className:(0,p.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),"data-sidebar":"content","data-slot":"sidebar-content",...t})}function z({className:a,...t}){return(0,e.jsx)("div",{className:(0,p.cn)("relative flex w-full min-w-0 flex-col p-2",a),"data-sidebar":"group","data-slot":"sidebar-group",...t})}function M({className:a,asChild:t=!1,...i}){let s=t?r.Slot:"div";return(0,e.jsx)(s,{className:(0,p.cn)("text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center truncate rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0",a),"data-sidebar":"group-label","data-slot":"sidebar-group-label",...i})}function C({className:a,asChild:t=!1,...i}){let s=t?r.Slot:"button";return(0,e.jsx)(s,{className:(0,p.cn)("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",a),"data-sidebar":"group-action","data-slot":"sidebar-group-action",...i})}function T({className:a,...t}){return(0,e.jsx)("div",{className:(0,p.cn)("w-full text-sm",a),"data-sidebar":"group-content","data-slot":"sidebar-group-content",...t})}function I({className:a,...t}){return(0,e.jsx)("ul",{className:(0,p.cn)("flex w-full min-w-0 flex-col gap-1",a),"data-sidebar":"menu","data-slot":"sidebar-menu",...t})}function B({className:a,...t}){return(0,e.jsx)("li",{className:(0,p.cn)("group/menu-item relative",a),"data-sidebar":"menu-item","data-slot":"sidebar-menu-item",...t})}function _({asChild:a=!1,isActive:t=!1,variant:i="default",size:s="md",tooltip:n,className:d,...o}){let l=a?r.Slot:"button",{isMobile:c,state:f}=m("SidebarMenuButton"),g=(0,e.jsx)(l,{className:(0,p.cn)((0,u.sidebarMenuButtonVariants)({variant:i,size:s}),d),"data-active":t,"data-sidebar":"menu-button","data-size":s,"data-slot":"sidebar-menu-button",...o});return n?("string"==typeof n&&(n={children:n}),(0,e.jsxs)(b.Tooltip,{children:[(0,e.jsx)(b.TooltipTrigger,{asChild:!0,children:g}),(0,e.jsx)(b.TooltipContent,{align:"center",hidden:"collapsed"!==f||c,side:"right",...n})]})):g}function D({className:a,asChild:t=!1,showOnHover:i=!1,...s}){let n=t?r.Slot:"button";return(0,e.jsx)(n,{className:(0,p.cn)("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",i&&"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",a),"data-sidebar":"menu-action","data-slot":"sidebar-menu-action",...s})}function G({className:a,...t}){return(0,e.jsx)("div",{className:(0,p.cn)("text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1",a),"data-sidebar":"menu-badge","data-slot":"sidebar-menu-badge",...t})}function L({className:a,showIcon:t=!1,...r}){let i=(0,s.useMemo)(()=>`${Math.floor(40*Math.random())+50}%`,[]);return(0,e.jsxs)("div",{className:(0,p.cn)("flex h-8 items-center gap-2 rounded-md px-2",a),"data-sidebar":"menu-skeleton","data-slot":"sidebar-menu-skeleton",...r,children:[t?(0,e.jsx)(c.Skeleton,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}):null,(0,e.jsx)(c.Skeleton,{className:"max-w-(--skeleton-width) h-4 flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":i}})]})}function O({className:a,...t}){return(0,e.jsx)("ul",{className:(0,p.cn)("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",a),"data-sidebar":"menu-sub","data-slot":"sidebar-menu-sub",...t})}function P({className:a,...t}){return(0,e.jsx)("li",{className:(0,p.cn)("group/menu-sub-item relative",a),"data-sidebar":"menu-sub-item","data-slot":"sidebar-menu-sub-item",...t})}function E({asChild:a=!1,size:t="md",isActive:i=!1,className:s,...n}){let d=a?r.Slot:"a";return(0,e.jsx)(d,{className:(0,p.cn)("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0","sm"===t&&"text-xs","md"===t&&"text-sm","group-data-[collapsible=icon]:hidden",s),"data-active":i,"data-sidebar":"menu-sub-button","data-size":t,"data-slot":"sidebar-menu-sub-button",...n})}export{x as Sidebar,k as SidebarContent,N as SidebarFooter,z as SidebarGroup,C as SidebarGroupAction,T as SidebarGroupContent,M as SidebarGroupLabel,S as SidebarHeader,j as SidebarInput,w as SidebarInset,I as SidebarMenu,D as SidebarMenuAction,G as SidebarMenuBadge,_ as SidebarMenuButton,B as SidebarMenuItem,L as SidebarMenuSkeleton,O as SidebarMenuSub,E as SidebarMenuSubButton,P as SidebarMenuSubItem,g as SidebarProvider,v as SidebarRail,y as SidebarSeparator,h as SidebarTrigger,m as useSidebar};
|
|
2
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useIsMobile as t}from"@codefast/hooks";import{createContext as r}from"@radix-ui/react-context";import{Slot as i}from"@radix-ui/react-slot";import{PanelLeftIcon as d}from"lucide-react";import{useCallback as n,useEffect as s,useMemo as o,useState as l}from"react";import{Button as u}from"../button/index.js";import{Input as b}from"../input/index.js";import{Separator as c}from"../separator/index.js";import{Sheet as p,SheetContent as f,SheetDescription as m,SheetHeader as g,SheetTitle as h}from"../sheet/index.js";import{sidebarMenuButtonVariants as v}from"./sidebar-menu-button-variants.js";import{Skeleton as x}from"../skeleton.js";import{Tooltip as w,TooltipContent as S,TooltipProvider as N,TooltipTrigger as y}from"../tooltip.js";import{cn as k}from"../../lib/utils.js";let[z,M]=r("SidebarProvider");function j({defaultOpen:a=!0,open:r,onOpenChange:i,className:d,style:o,children:u,...b}){let c=t(),[p,f]=l(!1),[m,g]=l(a),h=r??m,v=n(e=>{let a="function"==typeof e?e(h):e;i?i(a):g(a),document.cookie=`sidebar_state=${a}; path=/; max-age=604800`},[i,h]),x=n(()=>{c?f(e=>!e):v(e=>!e)},[c,v,f]);s(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),x())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[x]);let w=h?"expanded":"collapsed";return e(z,{isMobile:c,open:h,openMobile:p,setOpen:v,setOpenMobile:f,state:w,toggleSidebar:x,children:e(N,{delayDuration:0,children:e("div",{className:k("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",d),"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3.0625rem",...o},...b,children:u})})})}function C({side:t="left",variant:r="sidebar",collapsible:i="offcanvas",className:d,children:n,...s}){let{isMobile:o,state:l,openMobile:u,setOpenMobile:b}=M("Sidebar");return"none"===i?e("div",{className:k("bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col",d),"data-slot":"sidebar",...s,children:n}):o?e(p,{open:u,onOpenChange:b,...s,children:a(f,{className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden","data-mobile":"true","data-sidebar":"sidebar","data-slot":"sidebar",side:t,style:{"--sidebar-width":"18rem"},children:[a(g,{className:"sr-only",children:[e(h,{children:"Sidebar"}),e(m,{children:"Displays the mobile sidebar."})]}),e("div",{className:"flex h-full w-full flex-col",children:n})]})}):a("div",{className:k("text-sidebar-foreground group peer hidden md:block",d),"data-collapsible":"collapsed"===l?i:"","data-side":t,"data-slot":"sidebar","data-state":l,"data-variant":r,children:[e("div",{className:k("w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180","floating"===r||"inset"===r?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)"),"data-slot":"sidebar-gap"}),e("div",{className:k("w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex","left"===t?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===r||"inset"===r?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",d),"data-slot":"sidebar-container",...s,children:e("div",{className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm","data-sidebar":"sidebar","data-slot":"sidebar-inner",children:n})})]})}function _({className:t,onClick:r,...i}){let{toggleSidebar:n}=M("SidebarTrigger");return a(u,{className:k("size-7",t),"data-sidebar":"trigger","data-slot":"sidebar-trigger",size:"icon",variant:"ghost",onClick:e=>{r?.(e),n()},...i,children:[e(d,{}),e("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function B({className:a,...t}){let{toggleSidebar:r}=M("SidebarRail");return e("button",{className:k("hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",a),"data-sidebar":"rail","data-slot":"sidebar-rail",title:"Toggle Sidebar",type:"button",onClick:r,...t})}function G({className:a,...t}){return e("main",{className:k("bg-background relative flex w-full min-w-0 flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",a),"data-slot":"sidebar-inset",...t})}function I({className:a,...t}){return e(b,{className:k("bg-background h-8 w-full shadow-none",a),"data-sidebar":"input","data-slot":"sidebar-input",...t})}function O({className:a,...t}){return e("div",{className:k("flex flex-col gap-2 p-2",a),"data-sidebar":"header","data-slot":"sidebar-header",...t})}function T({className:a,...t}){return e("div",{className:k("flex flex-col gap-2 p-2",a),"data-sidebar":"footer","data-slot":"sidebar-footer",...t})}function D({className:a,...t}){return e(c,{className:k("bg-sidebar-border mx-2 w-auto",a),"data-sidebar":"separator","data-slot":"sidebar-separator",...t})}function L({className:a,...t}){return e("div",{className:k("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),"data-sidebar":"content","data-slot":"sidebar-content",...t})}function q({className:a,...t}){return e("div",{className:k("relative flex w-full min-w-0 flex-col p-2",a),"data-sidebar":"group","data-slot":"sidebar-group",...t})}function A({className:a,asChild:t=!1,...r}){return e(t?i:"div",{className:k("text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center truncate rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0",a),"data-sidebar":"group-label","data-slot":"sidebar-group-label",...r})}function E({className:a,asChild:t=!1,...r}){return e(t?i:"button",{className:k("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",a),"data-sidebar":"group-action","data-slot":"sidebar-group-action",...r})}function K({className:a,...t}){return e("div",{className:k("w-full text-sm",a),"data-sidebar":"group-content","data-slot":"sidebar-group-content",...t})}function P({className:a,...t}){return e("ul",{className:k("flex w-full min-w-0 flex-col gap-1",a),"data-sidebar":"menu","data-slot":"sidebar-menu",...t})}function R({className:a,...t}){return e("li",{className:k("group/menu-item relative",a),"data-sidebar":"menu-item","data-slot":"sidebar-menu-item",...t})}function $({asChild:t=!1,isActive:r=!1,variant:d="default",size:n="md",tooltip:s,className:o,...l}){let{isMobile:u,state:b}=M("SidebarMenuButton"),c=e(t?i:"button",{className:k(v({variant:d,size:n}),o),"data-active":r,"data-sidebar":"menu-button","data-size":n,"data-slot":"sidebar-menu-button",...l});return s?("string"==typeof s&&(s={children:s}),a(w,{children:[e(y,{asChild:!0,children:c}),e(S,{align:"center",hidden:"collapsed"!==b||u,side:"right",...s})]})):c}function F({className:a,asChild:t=!1,showOnHover:r=!1,...d}){return e(t?i:"button",{className:k("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",r&&"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",a),"data-sidebar":"menu-action","data-slot":"sidebar-menu-action",...d})}function H({className:a,...t}){return e("div",{className:k("text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1",a),"data-sidebar":"menu-badge","data-slot":"sidebar-menu-badge",...t})}function J({className:t,showIcon:r=!1,...i}){let d=o(()=>`${Math.floor(40*Math.random())+50}%`,[]);return a("div",{className:k("flex h-8 items-center gap-2 rounded-md px-2",t),"data-sidebar":"menu-skeleton","data-slot":"sidebar-menu-skeleton",...i,children:[r?e(x,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}):null,e(x,{className:"max-w-(--skeleton-width) h-4 flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":d}})]})}function Q({className:a,...t}){return e("ul",{className:k("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",a),"data-sidebar":"menu-sub","data-slot":"sidebar-menu-sub",...t})}function U({className:a,...t}){return e("li",{className:k("group/menu-sub-item relative",a),"data-sidebar":"menu-sub-item","data-slot":"sidebar-menu-sub-item",...t})}function V({asChild:a=!1,size:t="md",isActive:r=!1,className:d,...n}){return e(a?i:"a",{className:k("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0","sm"===t&&"text-xs","md"===t&&"text-sm","group-data-[collapsible=icon]:hidden",d),"data-active":r,"data-sidebar":"menu-sub-button","data-size":t,"data-slot":"sidebar-menu-sub-button",...n})}export{C as Sidebar,L as SidebarContent,T as SidebarFooter,q as SidebarGroup,E as SidebarGroupAction,K as SidebarGroupContent,A as SidebarGroupLabel,O as SidebarHeader,I as SidebarInput,G as SidebarInset,P as SidebarMenu,F as SidebarMenuAction,H as SidebarMenuBadge,$ as SidebarMenuButton,R as SidebarMenuItem,J as SidebarMenuSkeleton,Q as SidebarMenuSub,V as SidebarMenuSubButton,U as SidebarMenuSubItem,j as SidebarProvider,B as SidebarRail,D as SidebarSeparator,_ as SidebarTrigger,M as useSidebar};
|
|
3
3
|
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/sidebar/sidebar.js","sources":["webpack://@codefast/ui/./src/components/sidebar/sidebar.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, CSSProperties, Dispatch, JSX, SetStateAction } from \"react\";\n\nimport { useIsMobile } from \"@codefast/hooks\";\nimport { createContext } from \"@radix-ui/react-context\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Separator } from \"@/components/separator\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"@/components/sheet\";\nimport { sidebarMenuButtonVariants } from \"@/components/sidebar/sidebar-menu-button-variants\";\nimport { Skeleton } from \"@/components/skeleton\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"@/components/tooltip\";\nimport { cn } from \"@/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.0625rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ninterface SidebarContextValue {\n isMobile: boolean;\n open: boolean;\n openMobile: boolean;\n setOpen: (open: boolean) => void;\n setOpenMobile: Dispatch<SetStateAction<boolean>>;\n state: \"collapsed\" | \"expanded\";\n toggleSidebar: () => void;\n}\n\n/* -----------------------------------------------------------------------------\n * Context: SidebarProvider\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_PROVIDER_NAME = \"SidebarProvider\";\n\nconst [SidebarContextProvider, useSidebar] = createContext<SidebarContextValue>(SIDEBAR_PROVIDER_NAME);\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarProvider\n * -------------------------------------------------------------------------- */\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n}): JSX.Element {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const open = openProp ?? isOpen;\n const setOpen = useCallback(\n (value: ((value: boolean) => boolean) | boolean) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n setIsOpen(openState);\n }\n\n // eslint-disable-next-line unicorn/no-document-cookie -- This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((currentValue) => !currentValue);\n } else {\n setOpen((currentValue) => !currentValue);\n }\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n return (\n <SidebarContextProvider\n isMobile={isMobile}\n open={open}\n openMobile={openMobile}\n setOpen={setOpen}\n setOpenMobile={setOpenMobile}\n state={state}\n toggleSidebar={toggleSidebar}\n >\n <TooltipProvider delayDuration={0}>\n <div\n className={cn(\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\", className)}\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContextProvider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: Sidebar\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_NAME = \"Sidebar\";\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n collapsible?: \"icon\" | \"none\" | \"offcanvas\";\n side?: \"left\" | \"right\";\n variant?: \"floating\" | \"inset\" | \"sidebar\";\n}): JSX.Element {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar(SIDEBAR_NAME);\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col\", className)}\n data-slot=\"sidebar\"\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n data-mobile=\"true\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n side={side}\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as CSSProperties\n }\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className={cn(\"text-sidebar-foreground group peer hidden md:block\", className)}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-side={side}\n data-slot=\"sidebar\"\n data-state={state}\n data-variant={variant}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n data-slot=\"sidebar-gap\"\n />\n <div\n className={cn(\n \"w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n data-slot=\"sidebar-container\"\n {...props}\n >\n <div\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarTrigger\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_TRIGGER_NAME = \"SidebarTrigger\";\n\nfunction SidebarTrigger({ className, onClick, ...props }: ComponentProps<typeof Button>): JSX.Element {\n const { toggleSidebar } = useSidebar(SIDEBAR_TRIGGER_NAME);\n\n return (\n <Button\n className={cn(\"size-7\", className)}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarRail\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_RAIL_NAME = \"SidebarRail\";\n\nfunction SidebarRail({ className, ...props }: ComponentProps<\"button\">): JSX.Element {\n const { toggleSidebar } = useSidebar(SIDEBAR_RAIL_NAME);\n\n return (\n <button\n className={cn(\n \"hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n className,\n )}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n title=\"Toggle Sidebar\"\n type=\"button\"\n onClick={toggleSidebar}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInset\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInset({ className, ...props }: ComponentProps<\"main\">): JSX.Element {\n return (\n <main\n className={cn(\n \"bg-background relative flex w-full min-w-0 flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm\",\n className,\n )}\n data-slot=\"sidebar-inset\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInput\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInput({ className, ...props }: ComponentProps<typeof Input>): JSX.Element {\n return (\n <Input\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n data-sidebar=\"input\"\n data-slot=\"sidebar-input\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarHeader\n * -------------------------------------------------------------------------- */\n\nfunction SidebarHeader({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"header\"\n data-slot=\"sidebar-header\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarFooter\n * -------------------------------------------------------------------------- */\n\nfunction SidebarFooter({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"footer\"\n data-slot=\"sidebar-footer\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarSeparator\n * -------------------------------------------------------------------------- */\n\nfunction SidebarSeparator({ className, ...props }: ComponentProps<typeof Separator>): JSX.Element {\n return (\n <Separator\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n data-sidebar=\"separator\"\n data-slot=\"sidebar-separator\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarContent({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n data-sidebar=\"content\"\n data-slot=\"sidebar-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroup\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroup({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n data-sidebar=\"group\"\n data-slot=\"sidebar-group\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupLabel\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"div\"> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center truncate rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0\",\n className,\n )}\n data-sidebar=\"group-label\"\n data-slot=\"sidebar-group-label\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n className,\n )}\n data-sidebar=\"group-action\"\n data-slot=\"sidebar-group-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupContent({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"w-full text-sm\", className)}\n data-sidebar=\"group-content\"\n data-slot=\"sidebar-group-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenu\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenu({ className, ...props }: ComponentProps<\"ul\">): JSX.Element {\n return (\n <ul\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n data-sidebar=\"menu\"\n data-slot=\"sidebar-menu\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuItem({ className, ...props }: ComponentProps<\"li\">): JSX.Element {\n return (\n <li\n className={cn(\"group/menu-item relative\", className)}\n data-sidebar=\"menu-item\"\n data-slot=\"sidebar-menu-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_MENU_BUTTON_NAME = \"SidebarMenuButton\";\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"md\",\n tooltip,\n className,\n ...props\n}: ComponentProps<\"button\"> &\n VariantProps<typeof sidebarMenuButtonVariants> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: ComponentProps<typeof TooltipContent> | string;\n }): JSX.Element {\n const Component = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar(SIDEBAR_MENU_BUTTON_NAME);\n\n const button = (\n <Component\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n data-active={isActive}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-slot=\"sidebar-menu-button\"\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n // eslint-disable-next-line no-param-reassign -- convert it to an object with default properties\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent align=\"center\" hidden={state !== \"collapsed\" || isMobile} side=\"right\" {...tooltip} />\n </Tooltip>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n data-sidebar=\"menu-action\"\n data-slot=\"sidebar-menu-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuBadge\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuBadge({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\n \"text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1\",\n className,\n )}\n data-sidebar=\"menu-badge\"\n data-slot=\"sidebar-menu-badge\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSkeleton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}): JSX.Element {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n data-sidebar=\"menu-skeleton\"\n data-slot=\"sidebar-menu-skeleton\"\n {...props}\n >\n {showIcon ? <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" /> : null}\n <Skeleton\n className=\"max-w-(--skeleton-width) h-4 flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as CSSProperties\n }\n />\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSub\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<\"ul\">): JSX.Element {\n return (\n <ul\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden\",\n className,\n )}\n data-sidebar=\"menu-sub\"\n data-slot=\"sidebar-menu-sub\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<\"li\">): JSX.Element {\n return (\n <li\n className={cn(\"group/menu-sub-item relative\", className)}\n data-sidebar=\"menu-sub-item\"\n data-slot=\"sidebar-menu-sub-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubButton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n asChild?: boolean;\n isActive?: boolean;\n size?: \"md\" | \"sm\";\n}): JSX.Element {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n data-active={isActive}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-slot=\"sidebar-menu-sub-button\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"],"names":["SidebarContextProvider","useSidebar","createContext","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","isMobile","useIsMobile","openMobile","setOpenMobile","useState","isOpen","setIsOpen","open","setOpen","useCallback","value","openState","document","toggleSidebar","currentValue","useEffect","handleKeyDown","event","window","state","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","PanelLeftIcon","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Component","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","isActive","size","tooltip","button","sidebarMenuButtonVariants","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","useMemo","Math","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components/sidebar/sidebar.js","sources":["webpack://@codefast/ui/./src/components/sidebar/sidebar.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, CSSProperties, Dispatch, JSX, SetStateAction } from \"react\";\n\nimport { useIsMobile } from \"@codefast/hooks\";\nimport { createContext } from \"@radix-ui/react-context\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport type { VariantProps } from \"@/lib/utils\";\n\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Separator } from \"@/components/separator\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"@/components/sheet\";\nimport { sidebarMenuButtonVariants } from \"@/components/sidebar/sidebar-menu-button-variants\";\nimport { Skeleton } from \"@/components/skeleton\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"@/components/tooltip\";\nimport { cn } from \"@/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.0625rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ninterface SidebarContextValue {\n isMobile: boolean;\n open: boolean;\n openMobile: boolean;\n setOpen: (open: boolean) => void;\n setOpenMobile: Dispatch<SetStateAction<boolean>>;\n state: \"collapsed\" | \"expanded\";\n toggleSidebar: () => void;\n}\n\n/* -----------------------------------------------------------------------------\n * Context: SidebarProvider\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_PROVIDER_NAME = \"SidebarProvider\";\n\nconst [SidebarContextProvider, useSidebar] = createContext<SidebarContextValue>(SIDEBAR_PROVIDER_NAME);\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarProvider\n * -------------------------------------------------------------------------- */\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n}): JSX.Element {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const open = openProp ?? isOpen;\n const setOpen = useCallback(\n (value: ((value: boolean) => boolean) | boolean) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n setIsOpen(openState);\n }\n\n // eslint-disable-next-line unicorn/no-document-cookie -- This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((currentValue) => !currentValue);\n } else {\n setOpen((currentValue) => !currentValue);\n }\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n return (\n <SidebarContextProvider\n isMobile={isMobile}\n open={open}\n openMobile={openMobile}\n setOpen={setOpen}\n setOpenMobile={setOpenMobile}\n state={state}\n toggleSidebar={toggleSidebar}\n >\n <TooltipProvider delayDuration={0}>\n <div\n className={cn(\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\", className)}\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContextProvider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: Sidebar\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_NAME = \"Sidebar\";\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n collapsible?: \"icon\" | \"none\" | \"offcanvas\";\n side?: \"left\" | \"right\";\n variant?: \"floating\" | \"inset\" | \"sidebar\";\n}): JSX.Element {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar(SIDEBAR_NAME);\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col\", className)}\n data-slot=\"sidebar\"\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n data-mobile=\"true\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n side={side}\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as CSSProperties\n }\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className={cn(\"text-sidebar-foreground group peer hidden md:block\", className)}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-side={side}\n data-slot=\"sidebar\"\n data-state={state}\n data-variant={variant}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n data-slot=\"sidebar-gap\"\n />\n <div\n className={cn(\n \"w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n data-slot=\"sidebar-container\"\n {...props}\n >\n <div\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarTrigger\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_TRIGGER_NAME = \"SidebarTrigger\";\n\nfunction SidebarTrigger({ className, onClick, ...props }: ComponentProps<typeof Button>): JSX.Element {\n const { toggleSidebar } = useSidebar(SIDEBAR_TRIGGER_NAME);\n\n return (\n <Button\n className={cn(\"size-7\", className)}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarRail\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_RAIL_NAME = \"SidebarRail\";\n\nfunction SidebarRail({ className, ...props }: ComponentProps<\"button\">): JSX.Element {\n const { toggleSidebar } = useSidebar(SIDEBAR_RAIL_NAME);\n\n return (\n <button\n className={cn(\n \"hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n className,\n )}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n title=\"Toggle Sidebar\"\n type=\"button\"\n onClick={toggleSidebar}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInset\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInset({ className, ...props }: ComponentProps<\"main\">): JSX.Element {\n return (\n <main\n className={cn(\n \"bg-background relative flex w-full min-w-0 flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm\",\n className,\n )}\n data-slot=\"sidebar-inset\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInput\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInput({ className, ...props }: ComponentProps<typeof Input>): JSX.Element {\n return (\n <Input\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n data-sidebar=\"input\"\n data-slot=\"sidebar-input\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarHeader\n * -------------------------------------------------------------------------- */\n\nfunction SidebarHeader({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"header\"\n data-slot=\"sidebar-header\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarFooter\n * -------------------------------------------------------------------------- */\n\nfunction SidebarFooter({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"footer\"\n data-slot=\"sidebar-footer\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarSeparator\n * -------------------------------------------------------------------------- */\n\nfunction SidebarSeparator({ className, ...props }: ComponentProps<typeof Separator>): JSX.Element {\n return (\n <Separator\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n data-sidebar=\"separator\"\n data-slot=\"sidebar-separator\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarContent({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n data-sidebar=\"content\"\n data-slot=\"sidebar-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroup\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroup({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n data-sidebar=\"group\"\n data-slot=\"sidebar-group\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupLabel\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"div\"> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center truncate rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0\",\n className,\n )}\n data-sidebar=\"group-label\"\n data-slot=\"sidebar-group-label\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n className,\n )}\n data-sidebar=\"group-action\"\n data-slot=\"sidebar-group-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupContent({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\"w-full text-sm\", className)}\n data-sidebar=\"group-content\"\n data-slot=\"sidebar-group-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenu\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenu({ className, ...props }: ComponentProps<\"ul\">): JSX.Element {\n return (\n <ul\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n data-sidebar=\"menu\"\n data-slot=\"sidebar-menu\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuItem({ className, ...props }: ComponentProps<\"li\">): JSX.Element {\n return (\n <li\n className={cn(\"group/menu-item relative\", className)}\n data-sidebar=\"menu-item\"\n data-slot=\"sidebar-menu-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_MENU_BUTTON_NAME = \"SidebarMenuButton\";\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"md\",\n tooltip,\n className,\n ...props\n}: ComponentProps<\"button\"> &\n VariantProps<typeof sidebarMenuButtonVariants> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: ComponentProps<typeof TooltipContent> | string;\n }): JSX.Element {\n const Component = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar(SIDEBAR_MENU_BUTTON_NAME);\n\n const button = (\n <Component\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n data-active={isActive}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-slot=\"sidebar-menu-button\"\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n // eslint-disable-next-line no-param-reassign -- convert it to an object with default properties\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent align=\"center\" hidden={state !== \"collapsed\" || isMobile} side=\"right\" {...tooltip} />\n </Tooltip>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n data-sidebar=\"menu-action\"\n data-slot=\"sidebar-menu-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuBadge\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuBadge({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return (\n <div\n className={cn(\n \"text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1\",\n className,\n )}\n data-sidebar=\"menu-badge\"\n data-slot=\"sidebar-menu-badge\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSkeleton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}): JSX.Element {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n data-sidebar=\"menu-skeleton\"\n data-slot=\"sidebar-menu-skeleton\"\n {...props}\n >\n {showIcon ? <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" /> : null}\n <Skeleton\n className=\"max-w-(--skeleton-width) h-4 flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as CSSProperties\n }\n />\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSub\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<\"ul\">): JSX.Element {\n return (\n <ul\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden\",\n className,\n )}\n data-sidebar=\"menu-sub\"\n data-slot=\"sidebar-menu-sub\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<\"li\">): JSX.Element {\n return (\n <li\n className={cn(\"group/menu-sub-item relative\", className)}\n data-sidebar=\"menu-sub-item\"\n data-slot=\"sidebar-menu-sub-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubButton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n asChild?: boolean;\n isActive?: boolean;\n size?: \"md\" | \"sm\";\n}): JSX.Element {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n data-active={isActive}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-slot=\"sidebar-menu-sub-button\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"],"names":["SidebarContextProvider","useSidebar","createContext","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","isMobile","useIsMobile","openMobile","setOpenMobile","useState","isOpen","setIsOpen","open","setOpen","useCallback","value","openState","document","toggleSidebar","currentValue","useEffect","handleKeyDown","event","window","state","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","PanelLeftIcon","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","Component","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","isActive","size","tooltip","button","sidebarMenuButtonVariants","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","useMemo","Math","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{cn as e}from"../lib/utils.js";function o({className:o,...r}){return t("div",{className:e("bg-muted animate-pulse rounded-lg",o),"data-slot":"skeleton",...r})}export{o as Skeleton};
|
|
2
2
|
//# sourceMappingURL=skeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/skeleton.js","sources":["webpack://@codefast/ui/./src/components/skeleton.tsx"],"sourcesContent":["import type { ComponentProps, JSX } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Skeleton\n * -------------------------------------------------------------------------- */\n\nfunction Skeleton({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return <div className={cn(\"bg-muted animate-pulse rounded-lg\", className)} data-slot=\"skeleton\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Skeleton };\n"],"names":["Skeleton","className","props","cn"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components/skeleton.js","sources":["webpack://@codefast/ui/./src/components/skeleton.tsx"],"sourcesContent":["import type { ComponentProps, JSX } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Skeleton\n * -------------------------------------------------------------------------- */\n\nfunction Skeleton({ className, ...props }: ComponentProps<\"div\">): JSX.Element {\n return <div className={cn(\"bg-muted animate-pulse rounded-lg\", className)} data-slot=\"skeleton\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Skeleton };\n"],"names":["Skeleton","className","props","cn"],"mappings":"6EAQA,SAASA,EAAS,CAAEC,UAAAA,CAAS,CAAE,GAAGC,EAA8B,EAC9D,OAAO,EAAC,OAAI,UAAWC,EAAG,oCAAqCF,GAAY,YAAU,WAAY,GAAGC,CAAK,A,EAC3G,Q"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import{jsx as a,jsxs as t}from"react/jsx-runtime";import{Range as r,Root as e,Thumb as i,Track as l}from"@radix-ui/react-slider";import{useMemo as o}from"react";import{cn as n}from"../lib/utils.js";function d({className:d,defaultValue:s,value:u,min:f=0,max:c=100,...m}){let h=o(()=>Array.isArray(u)?u:Array.isArray(s)?s:[f,c],[u,s,f,c]);return t(e,{className:n("data-disabled:opacity-50 relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",d),"data-slot":"slider",defaultValue:s,max:c,min:f,value:u,...m,children:[a(l,{className:"bg-input relative w-full grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1","data-slot":"slider-track",children:a(r,{className:"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full","data-slot":"slider-range"})}),Array.from({length:h.length},(t,r)=>a(i,{"aria-label":"Volume",className:n("border-primary bg-primary after:bg-background active:not-data-disabled:after:size-1 focus-visible:ring-primary/20 dark:focus-visible:ring-primary/40 outline-hidden flex size-4 items-center justify-center rounded-full border-2 shadow-sm after:size-full after:rounded-full after:transition-[width,height] focus-visible:ring-4"),"data-slot":"slider-thumb"},r))]})}export{d as Slider};
|
|
3
3
|
//# sourceMappingURL=slider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/slider.js","sources":["webpack://@codefast/ui/./src/components/slider.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Slider\n * -------------------------------------------------------------------------- */\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: ComponentProps<typeof SliderPrimitive.Root>): JSX.Element {\n const _values = useMemo(() => {\n if (Array.isArray(value)) {\n return value;\n }\n\n return Array.isArray(defaultValue) ? defaultValue : [min, max];\n }, [value, defaultValue, min, max]);\n\n return (\n <SliderPrimitive.Root\n className={cn(\n \"data-disabled:opacity-50 relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className,\n )}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n max={max}\n min={min}\n value={value}\n {...props}\n >\n <SliderPrimitive.Track\n className=\"bg-input relative w-full grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1\"\n data-slot=\"slider-track\"\n >\n <SliderPrimitive.Range\n className=\"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n data-slot=\"slider-range\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n aria-label=\"Volume\"\n className={cn(\n \"border-primary bg-primary after:bg-background active:not-data-disabled:after:size-1 focus-visible:ring-primary/20 dark:focus-visible:ring-primary/40 outline-hidden flex size-4 items-center justify-center rounded-full border-2 shadow-sm after:size-full after:rounded-full after:transition-[width,height] focus-visible:ring-4\",\n )}\n data-slot=\"slider-thumb\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Slider };\n"],"names":["Slider","className","defaultValue","value","min","max","props","_values","useMemo","Array","SliderPrimitive","cn","_","index"],"mappings":";
|
|
1
|
+
{"version":3,"file":"components/slider.js","sources":["webpack://@codefast/ui/./src/components/slider.tsx"],"sourcesContent":["\n\nimport type { ComponentProps, JSX } from \"react\";\n\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/* -----------------------------------------------------------------------------\n * Component: Slider\n * -------------------------------------------------------------------------- */\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: ComponentProps<typeof SliderPrimitive.Root>): JSX.Element {\n const _values = useMemo(() => {\n if (Array.isArray(value)) {\n return value;\n }\n\n return Array.isArray(defaultValue) ? defaultValue : [min, max];\n }, [value, defaultValue, min, max]);\n\n return (\n <SliderPrimitive.Root\n className={cn(\n \"data-disabled:opacity-50 relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className,\n )}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n max={max}\n min={min}\n value={value}\n {...props}\n >\n <SliderPrimitive.Track\n className=\"bg-input relative w-full grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1\"\n data-slot=\"slider-track\"\n >\n <SliderPrimitive.Range\n className=\"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n data-slot=\"slider-range\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n aria-label=\"Volume\"\n className={cn(\n \"border-primary bg-primary after:bg-background active:not-data-disabled:after:size-1 focus-visible:ring-primary/20 dark:focus-visible:ring-primary/40 outline-hidden flex size-4 items-center justify-center rounded-full border-2 shadow-sm after:size-full after:rounded-full after:transition-[width,height] focus-visible:ring-4\",\n )}\n data-slot=\"slider-thumb\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Slider };\n"],"names":["Slider","className","defaultValue","value","min","max","props","_values","useMemo","Array","SliderPrimitive","cn","_","index"],"mappings":";sMAaA,SAASA,EAAO,CACdC,UAAAA,CAAS,CACTC,aAAAA,CAAY,CACZC,MAAAA,CAAK,CACLC,IAAAA,EAAM,CAAC,CACPC,IAAAA,EAAM,GAAG,CACT,GAAGC,EACyC,EAC5C,IAAMC,EAAUC,EAAQ,IACtB,MAAU,OAAO,CAACL,GACTA,EAGFM,MAAM,OAAO,CAACP,GAAgBA,EAAe,CAACE,EAAKC,EAAI,CAC7D,CAACF,EAAOD,EAAcE,EAAKC,EAAI,EAElC,OACE,EAACK,EAAoB,CACnB,UAAWC,EACT,oOACAV,GAEF,YAAU,SACV,aAAcC,EACd,IAAKG,EACL,IAAKD,EACL,MAAOD,EACN,GAAGG,CAAK,C,UAET,EAACI,EAAqB,CACpB,UAAU,uMACV,YAAU,e,SAEV,EAACA,EAAqB,CACpB,UAAU,8FACV,YAAU,c,KAGbD,MAAM,IAAI,CAAC,CAAE,OAAQF,EAAQ,MAAM,EAAI,CAACK,EAAGC,IAC1C,EAACH,EAAqB,CAEpB,aAAW,SACX,UAAWC,EACT,uUAEF,YAAU,c,EALLE,I,EAUf,Q"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import{jsx as r}from"react/jsx-runtime";import{useTheme as o}from"next-themes";import{Toaster as e,toast as t,useSonner as n}from"sonner";function s({...t}){let{theme:n="system"}=o();return r(e,{className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},theme:n,...t})}export{s as Toaster,t as toast,n as useSonner};
|
|
3
3
|
//# sourceMappingURL=sonner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/sonner.js","sources":["webpack://@codefast/ui/./src/components/sonner.tsx"],"sourcesContent":["\n\nimport type { CSSProperties, JSX } from \"react\";\nimport type { ToasterProps } from \"sonner\";\n\nimport { useTheme } from \"next-themes\";\nimport { Toaster as Sonner } from \"sonner\";\n\n/* -----------------------------------------------------------------------------\n * Component: Sonner\n * -------------------------------------------------------------------------- */\n\nfunction Toaster({ ...props }: ToasterProps): JSX.Element {\n const { theme = \"system\" } = useTheme();\n\n return (\n <Sonner\n className=\"toaster group\"\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n } as CSSProperties\n }\n theme={theme as ToasterProps[\"theme\"]}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { toast, useSonner } from \"sonner\";\nexport { Toaster };\n"],"names":["Toaster","props","theme","useTheme","Sonner"],"mappings":";
|
|
1
|
+
{"version":3,"file":"components/sonner.js","sources":["webpack://@codefast/ui/./src/components/sonner.tsx"],"sourcesContent":["\n\nimport type { CSSProperties, JSX } from \"react\";\nimport type { ToasterProps } from \"sonner\";\n\nimport { useTheme } from \"next-themes\";\nimport { Toaster as Sonner } from \"sonner\";\n\n/* -----------------------------------------------------------------------------\n * Component: Sonner\n * -------------------------------------------------------------------------- */\n\nfunction Toaster({ ...props }: ToasterProps): JSX.Element {\n const { theme = \"system\" } = useTheme();\n\n return (\n <Sonner\n className=\"toaster group\"\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n } as CSSProperties\n }\n theme={theme as ToasterProps[\"theme\"]}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { toast, useSonner } from \"sonner\";\nexport { Toaster };\n"],"names":["Toaster","props","theme","useTheme","Sonner"],"mappings":";0IAYA,SAASA,EAAQ,CAAE,GAAGC,EAAqB,EACzC,GAAM,CAAEC,MAAAA,EAAQ,QAAQ,CAAE,CAAGC,IAE7B,OACE,EAACC,EAAMA,CACL,UAAU,gBACV,MACE,CACE,cAAe,iBACf,gBAAiB,4BACjB,kBAAmB,eACrB,EAEF,MAAOF,EACN,GAAGD,CAAK,EAGf,Q"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{VisuallyHidden as n}from"@radix-ui/react-visually-hidden";import{cn as i}from"../lib/utils.js";function t({children:t,className:a,loading:o=!0,...s}){if(!o)return t;let l=e("span",{className:i("relative flex size-4 items-center justify-center opacity-60",a),...s,children:Array.from({length:8},(r,n)=>e("span",{className:i("rotate-(--spinner-rotate) before:animate-out before:fade-out-25 before:animation-repeat-infinite before:animation-delay-(--spinner-delay) before:animation-duration-(--spinner-duration) absolute h-full before:block before:h-1/3 before:w-full before:rounded-full before:bg-current"),style:{"--spinner-delay":`-${((8-n)*100).toString()}ms`,"--spinner-duration":"800ms","--spinner-rotate":`${(45*n).toString()}deg`,width:"12.5%"}},n))});return void 0===t?l:r("span",{className:"relative",children:[e("span",{"aria-hidden":!0,className:"invisible contents",children:t}),e(n,{children:t}),e("span",{className:"absolute inset-0 flex items-center justify-center",children:l})]})}export{t as Spinner};
|
|
3
3
|
//# sourceMappingURL=spinner.js.map
|