@next-degree/pickle-shared-js 0.3.19 → 0.3.20

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.
Files changed (84) hide show
  1. package/README.md +47 -1
  2. package/dist/app/layout.cjs +70 -1
  3. package/dist/app/layout.cjs.map +1 -1
  4. package/dist/app/layout.css +1263 -1
  5. package/dist/app/layout.css.map +1 -1
  6. package/dist/app/layout.js +35 -1
  7. package/dist/app/layout.js.map +1 -1
  8. package/dist/app/page.cjs +774 -1
  9. package/dist/app/page.cjs.map +1 -1
  10. package/dist/app/page.js +743 -1
  11. package/dist/app/page.js.map +1 -1
  12. package/dist/assets/fonts/AmbitBold.cjs +2 -1
  13. package/dist/assets/fonts/AmbitBold.js +5 -1
  14. package/dist/assets/fonts/AmbitBoldItalic.cjs +2 -1
  15. package/dist/assets/fonts/AmbitBoldItalic.js +5 -1
  16. package/dist/assets/fonts/AmbitRegular.cjs +2 -1
  17. package/dist/assets/fonts/AmbitRegular.js +5 -1
  18. package/dist/components/demos/ComboboxDemo.cjs +759 -1
  19. package/dist/components/demos/ComboboxDemo.cjs.map +1 -1
  20. package/dist/components/demos/ComboboxDemo.js +731 -1
  21. package/dist/components/demos/ComboboxDemo.js.map +1 -1
  22. package/dist/components/demos/index.cjs +767 -1
  23. package/dist/components/demos/index.cjs.map +1 -1
  24. package/dist/components/demos/index.js +736 -1
  25. package/dist/components/demos/index.js.map +1 -1
  26. package/dist/components/primitives/command.cjs +223 -1
  27. package/dist/components/primitives/command.cjs.map +1 -1
  28. package/dist/components/primitives/command.js +181 -1
  29. package/dist/components/primitives/command.js.map +1 -1
  30. package/dist/components/primitives/dialog.cjs +137 -1
  31. package/dist/components/primitives/dialog.cjs.map +1 -1
  32. package/dist/components/primitives/dialog.js +92 -1
  33. package/dist/components/primitives/dialog.js.map +1 -1
  34. package/dist/components/primitives/popover.cjs +72 -1
  35. package/dist/components/primitives/popover.cjs.map +1 -1
  36. package/dist/components/primitives/popover.js +36 -1
  37. package/dist/components/primitives/popover.js.map +1 -1
  38. package/dist/components/primitives/separator.cjs +67 -1
  39. package/dist/components/primitives/separator.cjs.map +1 -1
  40. package/dist/components/primitives/separator.js +33 -1
  41. package/dist/components/primitives/separator.js.map +1 -1
  42. package/dist/components/ui/Badge.cjs +57 -1
  43. package/dist/components/ui/Badge.cjs.map +1 -1
  44. package/dist/components/ui/Badge.js +31 -1
  45. package/dist/components/ui/Badge.js.map +1 -1
  46. package/dist/components/ui/Button.cjs +145 -1
  47. package/dist/components/ui/Button.cjs.map +1 -1
  48. package/dist/components/ui/Button.js +118 -1
  49. package/dist/components/ui/Button.js.map +1 -1
  50. package/dist/components/ui/Checkbox.cjs +99 -1
  51. package/dist/components/ui/Checkbox.cjs.map +1 -1
  52. package/dist/components/ui/Checkbox.js +71 -1
  53. package/dist/components/ui/Checkbox.js.map +1 -1
  54. package/dist/components/ui/Chip.cjs +49 -1
  55. package/dist/components/ui/Chip.cjs.map +1 -1
  56. package/dist/components/ui/Chip.js +28 -1
  57. package/dist/components/ui/Chip.js.map +1 -1
  58. package/dist/components/ui/Combobox.cjs +564 -1
  59. package/dist/components/ui/Combobox.cjs.map +1 -1
  60. package/dist/components/ui/Combobox.js +532 -1
  61. package/dist/components/ui/Combobox.js.map +1 -1
  62. package/dist/components/ui/Label.cjs +50 -1
  63. package/dist/components/ui/Label.cjs.map +1 -1
  64. package/dist/components/ui/Label.js +27 -1
  65. package/dist/components/ui/Label.js.map +1 -1
  66. package/dist/components/ui/ListItem.cjs +151 -1
  67. package/dist/components/ui/ListItem.cjs.map +1 -1
  68. package/dist/components/ui/ListItem.js +120 -1
  69. package/dist/components/ui/ListItem.js.map +1 -1
  70. package/dist/components/ui/Select.cjs +246 -1
  71. package/dist/components/ui/Select.cjs.map +1 -1
  72. package/dist/components/ui/Select.js +221 -1
  73. package/dist/components/ui/Select.js.map +1 -1
  74. package/dist/index.cjs +855 -1
  75. package/dist/index.cjs.map +1 -1
  76. package/dist/index.js +817 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/lib/utils.cjs +34 -1
  79. package/dist/lib/utils.cjs.map +1 -1
  80. package/dist/lib/utils.js +9 -1
  81. package/dist/lib/utils.js.map +1 -1
  82. package/dist/styles/globals.css +1263 -1
  83. package/dist/styles/globals.css.map +1 -1
  84. package/package.json +14 -17
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/Combobox.tsx","../../../src/lib/utils.ts","../../../src/components/primitives/command.tsx","../../../src/components/primitives/dialog.tsx","../../../src/components/primitives/popover.tsx","../../../src/components/primitives/separator.tsx","../../../src/components/ui/ListItem.tsx","../../../src/components/ui/Checkbox.tsx","../../../src/components/ui/Badge.tsx","../../../src/components/ui/Label.tsx"],"sourcesContent":["'use client'\n\nimport { ComponentProps, forwardRef, useEffect, useState } from 'react'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { cva, type VariantProps } from 'cva'\nimport { cn } from '@/lib/utils'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\n\nimport ListItem from '@/components/ui/ListItem'\nimport { Badge } from '@/components/ui/Badge'\nimport Label from '@/components/ui/Label'\n\ntype Icon = { icon?: keyof typeof icons }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: string; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { label?: string; options: Option[]; classNames?: ClassNames; placeholder?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n value,\n label,\n options,\n classNames,\n multiselect,\n placeholder,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const close = () => setOpen(false)\n\n useEffect(() => {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }, [value])\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n if (multiselect) {\n return setSelected((prev) => {\n const newSelected = prev.some((o) => o.value === value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n handleChange?.(newSelected.map((o) => o.value))\n return newSelected\n })\n }\n setSelected([option])\n handleChange?.(option.value)\n close()\n }\n\n const handleClear = () => {\n setSelected([])\n multiselect ? handleChange?.([]) : handleChange?.('')\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = selected.length > 0 ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n {isDefault && label && <Label text={label} className={classNames?.label} />}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild disabled={options.length === 0}>\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n selected.length > 0 && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && selected.length > 0 && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && selected.length == 0 && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {selected.length == 0 && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <Command>\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem key={id} value={option.title} onSelect={handleSelect}>\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </PopoverContent>\n </Command>\n </Popover>\n\n {isDefault && selected.length > 0 && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'max-w-80', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'py-1', 'px-2', 'text-xs'],\n normal: ['h-9', 'py-2', 'px-3', 'text-sm'],\n large: ['h-10', 'py-3', 'px-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\nimport * as React from 'react'\n\nimport { Dialog, DialogContent } from '@/components/primitives/dialog'\n\nimport { cn } from '@/lib/utils'\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ntype CommandDialogProps = DialogProps\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"m-1 flex items-center rounded-xl border px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-neutral-500 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-neutral-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500',\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-neutral-200', className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-neutral-500', className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n}\n","'use client'\n\nimport { cn } from '@/lib/utils'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport * as React from 'react'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-neutral-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-neutral-800 dark:bg-neutral-950',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-500 dark:text-neutral-400', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\n\nimport { cn } from '@/lib/utils'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","'use client'\r\n\r\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '@/lib/utils'\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n 'shrink-0 bg-grey-10',\r\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName\r\n\r\nexport { Separator }\r\n","import { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\nimport { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport Checkbox from '@/components/ui/Checkbox'\nimport { icons } from 'lucide-react'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox id={value} checked={isSelected} onClick={(e) => e.preventDefault()} />\n )}\n <div>\n <p>{title}</p>\n <p className=\"text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n","'use client'\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check, Minus } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst CheckboxToggle = forwardRef<\n ElementRef<typeof CheckboxPrimitive.Root>,\n ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'group',\n 'peer',\n 'h-5',\n 'w-5',\n 'shrink-0',\n 'rounded-md',\n 'border',\n 'border-grey-10',\n 'outline',\n 'outline-1',\n 'outline-offset-2',\n 'outline-transparent',\n 'hover:border-grey-20',\n 'focus:outline-purple-100',\n 'active:border-green-80',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=checked]:bg-green-80',\n 'data-[state=indeterminate]:bg-green-80',\n 'data-[state=checked]:text-white',\n 'data-[state=indeterminate]:text-primary-foreground',\n props.disabled &&\n 'data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className=\"hidden h-4 w-4 group-data-[state=checked]:block\" />\n <Minus className=\"hidden h-4 w-4 group-data-[state=indeterminate]:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckboxToggle.displayName = CheckboxPrimitive.Root.displayName\n\ninterface Props extends CheckboxPrimitive.CheckboxProps, PropsWithChildren {\n error?: string\n classNames?: {\n wrapper?: string\n label?: string\n }\n}\n\nconst Checkbox = forwardRef<ElementRef<typeof CheckboxPrimitive.Root>, Props>(\n ({ classNames, children, ...props }, ref) => {\n const { disabled } = props\n const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`\n const labelClassName = disabled ? 'text-grey-40 pointer-events-none' : ''\n return (\n <div className={cn('flex space-x-2', classNames?.wrapper)}>\n <CheckboxToggle id={id} disabled={disabled} ref={ref} {...props} />\n <label htmlFor={id} className={cn(labelClassName, classNames?.label)}>\n {children}\n </label>\n </div>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n","import { cva, type VariantProps } from 'cva'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva('rounded-full px-2 py-0.5 text-xs font-semibold', {\n variants: {\n variant: {\n green: 'bg-green-90 text-white',\n pickle: 'bg-pickle-100 text-black',\n purple: 'bg-purple-100 text-white',\n },\n },\n defaultVariants: {\n variant: 'green',\n },\n})\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n","import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n"],"mappings":"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","names":["forwardRef","useEffect","useState","ChevronDownIcon","CircleX","icons","cva","clsx","twMerge","cn","inputs","CommandPrimitive","Search","React","DialogPrimitive","X","React","jsx","jsxs","DialogPortal","DialogOverlay","className","props","ref","jsx","cn","DialogContent","children","jsxs","DialogPortal","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription","jsx","jsxs","Command","className","props","ref","CommandPrimitive","cn","CommandInput","className","props","ref","jsxs","jsx","Search","CommandPrimitive","cn","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","React","PopoverPrimitive","jsx","Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","cn","SeparatorPrimitive","React","jsx","Separator","className","orientation","decorative","props","ref","cn","CheckIcon","CheckboxPrimitive","Check","Minus","forwardRef","jsx","jsxs","CheckboxToggle","forwardRef","className","props","ref","cn","Check","Minus","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","icons","jsx","jsxs","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","CheckIcon","ListItem_default","cva","jsx","badgeVariants","cva","Badge","className","variant","props","cn","jsx","Label","text","className","props","cn","Label_default","jsx","jsxs","Combobox","forwardRef","props","ref","value","label","options","classNames","multiselect","placeholder","variant","size","icon","className","handleChange","footer","selected","setSelected","useState","open","setOpen","IconComponent","icons","hideSearchBox","isDefault","isChip","close","useEffect","v","o","handleSelect","option","prev","newSelected","handleClear","handleDisplayValue","defaultLabel","s","cn","Label_default","Popover","PopoverTrigger","triggerVariants","Badge","ChevronDownIcon","Command","PopoverContent","CommandInput","CommandList","CommandEmpty","CommandGroup","id","CommandItem","ListItem_default","Separator","CircleX","cva"]}
1
+ {"version":3,"sources":["../../../src/components/ui/Combobox.tsx","../../../src/lib/utils.ts","../../../src/components/primitives/command.tsx","../../../src/components/primitives/dialog.tsx","../../../src/components/primitives/popover.tsx","../../../src/components/primitives/separator.tsx","../../../src/components/ui/ListItem.tsx","../../../src/components/ui/Checkbox.tsx","../../../src/components/ui/Badge.tsx","../../../src/components/ui/Label.tsx"],"sourcesContent":["'use client'\n\nimport { ComponentProps, forwardRef, useEffect, useState } from 'react'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { cva, type VariantProps } from 'cva'\nimport { cn } from '@/lib/utils'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\n\nimport ListItem from '@/components/ui/ListItem'\nimport { Badge } from '@/components/ui/Badge'\nimport Label from '@/components/ui/Label'\n\ntype Icon = { icon?: keyof typeof icons }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: string; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { label?: string; options: Option[]; classNames?: ClassNames; placeholder?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n value,\n label,\n options,\n classNames,\n multiselect,\n placeholder,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const isEmpty = selected.length == 0\n const showChevron = isDefault ? isEmpty : true\n const close = () => setOpen(false)\n\n useEffect(() => {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }, [value])\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n if (multiselect) {\n return setSelected((prev) => {\n const newSelected = prev.some((o) => o.value === value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n handleChange?.(newSelected.map((o) => o.value))\n return newSelected\n })\n }\n setSelected([option])\n handleChange?.(option.value)\n close()\n }\n\n const handleClear = () => {\n setSelected([])\n multiselect ? handleChange?.([]) : handleChange?.('')\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n {isDefault && label && <Label text={label} className={classNames?.label} />}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n asChild\n disabled={options.length === 0}\n data-testid={`${props.id ?? props.name}-combobox-trigger`}\n >\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n isDefault && !isEmpty && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && !isEmpty && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && isEmpty && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {showChevron && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <Command>\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem key={id} value={option.value} onSelect={handleSelect}>\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </PopoverContent>\n </Command>\n </Popover>\n\n {isDefault && !isEmpty && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'max-w-80', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'py-1', 'px-2', 'text-xs'],\n normal: ['h-9', 'py-2', 'px-3', 'text-sm'],\n large: ['h-10', 'py-3', 'px-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\nimport * as React from 'react'\n\nimport { Dialog, DialogContent } from '@/components/primitives/dialog'\n\nimport { cn } from '@/lib/utils'\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ntype CommandDialogProps = DialogProps\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"m-1 flex items-center rounded-xl border px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-neutral-500 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-neutral-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500',\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-neutral-200', className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-neutral-500', className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n}\n","'use client'\n\nimport { cn } from '@/lib/utils'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport * as React from 'react'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-neutral-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-neutral-800 dark:bg-neutral-950',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-500 dark:text-neutral-400', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\n\nimport { cn } from '@/lib/utils'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","'use client'\r\n\r\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '@/lib/utils'\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n 'shrink-0 bg-grey-10',\r\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName\r\n\r\nexport { Separator }\r\n","import { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\nimport { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport Checkbox from '@/components/ui/Checkbox'\nimport { icons } from 'lucide-react'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox id={value} checked={isSelected} onClick={(e) => e.preventDefault()} />\n )}\n <div>\n <p>{title}</p>\n <p className=\"text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n","'use client'\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check, Minus } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst CheckboxToggle = forwardRef<\n ElementRef<typeof CheckboxPrimitive.Root>,\n ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'group',\n 'peer',\n 'h-5',\n 'w-5',\n 'shrink-0',\n 'rounded-md',\n 'border',\n 'border-grey-10',\n 'outline',\n 'outline-1',\n 'outline-offset-2',\n 'outline-transparent',\n 'hover:border-grey-20',\n 'focus:outline-purple-100',\n 'active:border-green-80',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=checked]:bg-green-80',\n 'data-[state=indeterminate]:bg-green-80',\n 'data-[state=checked]:text-white',\n 'data-[state=indeterminate]:text-primary-foreground',\n props.disabled &&\n 'data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className=\"hidden h-4 w-4 group-data-[state=checked]:block\" />\n <Minus className=\"hidden h-4 w-4 group-data-[state=indeterminate]:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckboxToggle.displayName = CheckboxPrimitive.Root.displayName\n\ninterface Props extends CheckboxPrimitive.CheckboxProps, PropsWithChildren {\n error?: string\n classNames?: {\n wrapper?: string\n label?: string\n }\n}\n\nconst Checkbox = forwardRef<ElementRef<typeof CheckboxPrimitive.Root>, Props>(\n ({ classNames, children, ...props }, ref) => {\n const { disabled } = props\n const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`\n const labelClassName = disabled ? 'text-grey-40 pointer-events-none' : ''\n return (\n <div className={cn('flex space-x-2', classNames?.wrapper)}>\n <CheckboxToggle id={id} disabled={disabled} ref={ref} {...props} />\n <label htmlFor={id} className={cn(labelClassName, classNames?.label)}>\n {children}\n </label>\n </div>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n","import { cva, type VariantProps } from 'cva'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva('rounded-full px-2 py-0.5 text-xs font-semibold', {\n variants: {\n variant: {\n green: 'bg-green-90 text-white',\n pickle: 'bg-pickle-100 text-black',\n purple: 'bg-purple-100 text-white',\n },\n },\n defaultVariants: {\n variant: 'green',\n },\n})\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n","import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n"],"mappings":"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","names":["forwardRef","icons","cva","React","jsx","jsxs","jsxs","jsx","React","jsx","React","jsx","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","icon","jsx","jsx","jsx","jsxs","forwardRef","icons","value","cva"]}
@@ -1,2 +1,51 @@
1
- "use strict";var l=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var o in t)l(e,o,{get:t[o],enumerable:!0})},d=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of u(t))!m.call(e,r)&&r!==o&&l(e,r,{get:()=>t[r],enumerable:!(n=f(t,r))||n.enumerable});return e};var b=e=>d(l({},"__esModule",{value:!0}),e);var P={};c(P,{default:()=>C});module.exports=b(P);var p=require("clsx"),a=require("tailwind-merge");function s(...e){return(0,a.twMerge)((0,p.clsx)(e))}var i=require("react/jsx-runtime");function y({text:e,className:t,...o}){return e?(0,i.jsx)("label",{className:s("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o,children:e}):null}var C=y;
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/Label.tsx
21
+ var Label_exports = {};
22
+ __export(Label_exports, {
23
+ default: () => Label_default
24
+ });
25
+ module.exports = __toCommonJS(Label_exports);
26
+
27
+ // src/lib/utils.ts
28
+ var import_clsx = require("clsx");
29
+ var import_tailwind_merge = require("tailwind-merge");
30
+ function cn(...inputs) {
31
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
32
+ }
33
+
34
+ // src/components/ui/Label.tsx
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ function Label({ text, className, ...props }) {
37
+ if (!text) return null;
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
39
+ "label",
40
+ {
41
+ className: cn(
42
+ "text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
43
+ className
44
+ ),
45
+ ...props,
46
+ children: text
47
+ }
48
+ );
49
+ }
50
+ var Label_default = Label;
2
51
  //# sourceMappingURL=Label.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/Label.tsx","../../../src/lib/utils.ts"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GCAA,IAAAI,EAAsC,gBACtCC,EAAwB,0BAEjB,SAASC,KAAMC,EAAsB,CAC1C,SAAO,cAAQ,QAAKA,CAAM,CAAC,CAC7B,CDOI,IAAAC,EAAA,6BAJJ,SAASC,EAAM,CAAE,KAAAC,EAAM,UAAAC,EAAW,GAAGC,CAAM,EAAoB,CAC7D,OAAKF,KAGH,OAAC,SACC,UAAWG,EACT,iFACAF,CACF,EACC,GAAGC,EAEH,SAAAF,EACH,EAXgB,IAapB,CAEA,IAAOI,EAAQL","names":["Label_exports","__export","Label_default","__toCommonJS","import_clsx","import_tailwind_merge","cn","inputs","import_jsx_runtime","Label","text","className","props","cn","Label_default"]}
1
+ {"version":3,"sources":["../../../src/components/ui/Label.tsx","../../../src/lib/utils.ts"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADOI;AAJJ,SAAS,MAAM,EAAE,MAAM,WAAW,GAAG,MAAM,GAAoB;AAC7D,MAAI,CAAC,KAAM,QAAO;AAElB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,gBAAQ;","names":[]}
@@ -1,2 +1,28 @@
1
- import{clsx as p}from"clsx";import{twMerge as a}from"tailwind-merge";function t(...e){return a(p(e))}import{jsx as i}from"react/jsx-runtime";function s({text:e,className:o,...r}){return e?i("label",{className:t("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",o),...r,children:e}):null}var b=s;export{b as default};
1
+ // src/lib/utils.ts
2
+ import { clsx } from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+
8
+ // src/components/ui/Label.tsx
9
+ import { jsx } from "react/jsx-runtime";
10
+ function Label({ text, className, ...props }) {
11
+ if (!text) return null;
12
+ return /* @__PURE__ */ jsx(
13
+ "label",
14
+ {
15
+ className: cn(
16
+ "text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
17
+ className
18
+ ),
19
+ ...props,
20
+ children: text
21
+ }
22
+ );
23
+ }
24
+ var Label_default = Label;
25
+ export {
26
+ Label_default as default
27
+ };
2
28
  //# sourceMappingURL=Label.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/Label.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n"],"mappings":"AAAA,OAA0B,QAAAA,MAAY,OACtC,OAAS,WAAAC,MAAe,iBAEjB,SAASC,KAAMC,EAAsB,CAC1C,OAAOF,EAAQD,EAAKG,CAAM,CAAC,CAC7B,CCOI,cAAAC,MAAA,oBAJJ,SAASC,EAAM,CAAE,KAAAC,EAAM,UAAAC,EAAW,GAAGC,CAAM,EAAoB,CAC7D,OAAKF,EAGHF,EAAC,SACC,UAAWK,EACT,iFACAF,CACF,EACC,GAAGC,EAEH,SAAAF,EACH,EAXgB,IAapB,CAEA,IAAOI,EAAQL","names":["clsx","twMerge","cn","inputs","jsx","Label","text","className","props","cn","Label_default"]}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/Label.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n"],"mappings":";AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACOI;AAJJ,SAAS,MAAM,EAAE,MAAM,WAAW,GAAG,MAAM,GAAoB;AAC7D,MAAI,CAAC,KAAM,QAAO;AAElB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,gBAAQ;","names":[]}
@@ -1,2 +1,152 @@
1
- "use strict";var w=Object.create;var m=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var z=(e,o)=>{for(var t in o)m(e,t,{get:o[t],enumerable:!0})},x=(e,o,t,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of V(o))!L.call(e,r)&&r!==t&&m(e,r,{get:()=>o[r],enumerable:!(n=W(o,r))||n.enumerable});return e};var K=(e,o,t)=>(t=e!=null?w(E(e)):{},x(o||!e||!e.__esModule?m(t,"default",{value:e,enumerable:!0}):t,e)),M=e=>x(m({},"__esModule",{value:!0}),e);var S={};z(S,{default:()=>F});module.exports=M(S);var k=require("clsx"),C=require("tailwind-merge");function s(...e){return(0,C.twMerge)((0,k.clsx)(e))}var N=require("lucide-react");var c=K(require("@radix-ui/react-checkbox"),1),p=require("lucide-react"),h=require("react");var a=require("react/jsx-runtime"),y=(0,h.forwardRef)(({className:e,...o},t)=>(0,a.jsx)(c.Root,{ref:t,className:s("group","peer","h-5","w-5","shrink-0","rounded-md","border","border-grey-10","outline","outline-1","outline-offset-2","outline-transparent","hover:border-grey-20","focus:outline-purple-100","active:border-green-80","disabled:cursor-not-allowed","disabled:opacity-50","data-[state=checked]:bg-green-80","data-[state=indeterminate]:bg-green-80","data-[state=checked]:text-white","data-[state=indeterminate]:text-primary-foreground",o.disabled&&"data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",e),...o,children:(0,a.jsxs)(c.Indicator,{className:"flex items-center justify-center text-current",children:[(0,a.jsx)(p.Check,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),(0,a.jsx)(p.Minus,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"})]})}));y.displayName=c.Root.displayName;var v=(0,h.forwardRef)(({classNames:e,children:o,...t},n)=>{let{disabled:r}=t,l=t.id??`${t.name??t.value?.toString()}-checkbox`,f=r?"text-grey-40 pointer-events-none":"";return(0,a.jsxs)("div",{className:s("flex space-x-2",e?.wrapper),children:[(0,a.jsx)(y,{id:l,disabled:r,ref:n,...t}),(0,a.jsx)("label",{htmlFor:l,className:s(f,e?.label),children:o})]})});v.displayName="Checkbox";var P=v;var u=require("lucide-react"),i=require("react/jsx-runtime");function D({icon:e,hasCheckbox:o,isSelected:t,className:n,title:r,value:l,description:f,...R}){let b=e?(d=>{if(d in u.icons){let I=u.icons[d];return(0,i.jsx)(I,{size:14})}return null})(e):void 0;return(0,i.jsxs)("li",{className:s("group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",n),...R,"data-state":t?"checked":"unchecked",children:[b&&(0,i.jsx)("span",{className:"mr-2",children:b}),o&&(0,i.jsx)(P,{id:l,checked:t,onClick:d=>d.preventDefault()}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{children:r}),(0,i.jsx)("p",{className:"text-xs text-grey-80",children:f})]}),(0,i.jsx)(N.CheckIcon,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16})]})}var F=D;
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/ui/ListItem.tsx
31
+ var ListItem_exports = {};
32
+ __export(ListItem_exports, {
33
+ default: () => ListItem_default
34
+ });
35
+ module.exports = __toCommonJS(ListItem_exports);
36
+
37
+ // src/lib/utils.ts
38
+ var import_clsx = require("clsx");
39
+ var import_tailwind_merge = require("tailwind-merge");
40
+ function cn(...inputs) {
41
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
42
+ }
43
+
44
+ // src/components/ui/ListItem.tsx
45
+ var import_lucide_react2 = require("lucide-react");
46
+
47
+ // src/components/ui/Checkbox.tsx
48
+ var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
49
+ var import_lucide_react = require("lucide-react");
50
+ var import_react = require("react");
51
+ var import_jsx_runtime = require("react/jsx-runtime");
52
+ var CheckboxToggle = (0, import_react.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
53
+ CheckboxPrimitive.Root,
54
+ {
55
+ ref,
56
+ className: cn(
57
+ "group",
58
+ "peer",
59
+ "h-5",
60
+ "w-5",
61
+ "shrink-0",
62
+ "rounded-md",
63
+ "border",
64
+ "border-grey-10",
65
+ "outline",
66
+ "outline-1",
67
+ "outline-offset-2",
68
+ "outline-transparent",
69
+ "hover:border-grey-20",
70
+ "focus:outline-purple-100",
71
+ "active:border-green-80",
72
+ "disabled:cursor-not-allowed",
73
+ "disabled:opacity-50",
74
+ "data-[state=checked]:bg-green-80",
75
+ "data-[state=indeterminate]:bg-green-80",
76
+ "data-[state=checked]:text-white",
77
+ "data-[state=indeterminate]:text-primary-foreground",
78
+ props.disabled && "data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",
79
+ className
80
+ ),
81
+ ...props,
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
83
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }),
84
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" })
85
+ ] })
86
+ }
87
+ ));
88
+ CheckboxToggle.displayName = CheckboxPrimitive.Root.displayName;
89
+ var Checkbox = (0, import_react.forwardRef)(
90
+ ({ classNames, children, ...props }, ref) => {
91
+ const { disabled } = props;
92
+ const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`;
93
+ const labelClassName = disabled ? "text-grey-40 pointer-events-none" : "";
94
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: cn("flex space-x-2", classNames?.wrapper), children: [
95
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CheckboxToggle, { id, disabled, ref, ...props }),
96
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", { htmlFor: id, className: cn(labelClassName, classNames?.label), children })
97
+ ] });
98
+ }
99
+ );
100
+ Checkbox.displayName = "Checkbox";
101
+ var Checkbox_default = Checkbox;
102
+
103
+ // src/components/ui/ListItem.tsx
104
+ var import_lucide_react3 = require("lucide-react");
105
+ var import_jsx_runtime2 = require("react/jsx-runtime");
106
+ function ListItem({
107
+ icon,
108
+ hasCheckbox,
109
+ isSelected,
110
+ className,
111
+ title,
112
+ value,
113
+ description,
114
+ ...props
115
+ }) {
116
+ const getIconIfValid = (icon2) => {
117
+ if (icon2 in import_lucide_react3.icons) {
118
+ const IconComponent = import_lucide_react3.icons[icon2];
119
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IconComponent, { size: 14 });
120
+ }
121
+ return null;
122
+ };
123
+ const optionIcon = icon ? getIconIfValid(icon) : void 0;
124
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
125
+ "li",
126
+ {
127
+ className: cn(
128
+ "group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",
129
+ className
130
+ ),
131
+ ...props,
132
+ "data-state": isSelected ? "checked" : "unchecked",
133
+ children: [
134
+ optionIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "mr-2", children: optionIcon }),
135
+ hasCheckbox && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Checkbox_default, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
136
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
137
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: title }),
138
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-xs text-grey-80", children: description })
139
+ ] }),
140
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
141
+ import_lucide_react2.CheckIcon,
142
+ {
143
+ className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
144
+ size: 16
145
+ }
146
+ )
147
+ ]
148
+ }
149
+ );
150
+ }
151
+ var ListItem_default = ListItem;
2
152
  //# sourceMappingURL=ListItem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/ListItem.tsx","../../../src/lib/utils.ts","../../../src/components/ui/Checkbox.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\nimport { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport Checkbox from '@/components/ui/Checkbox'\nimport { icons } from 'lucide-react'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox id={value} checked={isSelected} onClick={(e) => e.preventDefault()} />\n )}\n <div>\n <p>{title}</p>\n <p className=\"text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check, Minus } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst CheckboxToggle = forwardRef<\n ElementRef<typeof CheckboxPrimitive.Root>,\n ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'group',\n 'peer',\n 'h-5',\n 'w-5',\n 'shrink-0',\n 'rounded-md',\n 'border',\n 'border-grey-10',\n 'outline',\n 'outline-1',\n 'outline-offset-2',\n 'outline-transparent',\n 'hover:border-grey-20',\n 'focus:outline-purple-100',\n 'active:border-green-80',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=checked]:bg-green-80',\n 'data-[state=indeterminate]:bg-green-80',\n 'data-[state=checked]:text-white',\n 'data-[state=indeterminate]:text-primary-foreground',\n props.disabled &&\n 'data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className=\"hidden h-4 w-4 group-data-[state=checked]:block\" />\n <Minus className=\"hidden h-4 w-4 group-data-[state=indeterminate]:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckboxToggle.displayName = CheckboxPrimitive.Root.displayName\n\ninterface Props extends CheckboxPrimitive.CheckboxProps, PropsWithChildren {\n error?: string\n classNames?: {\n wrapper?: string\n label?: string\n }\n}\n\nconst Checkbox = forwardRef<ElementRef<typeof CheckboxPrimitive.Root>, Props>(\n ({ classNames, children, ...props }, ref) => {\n const { disabled } = props\n const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`\n const labelClassName = disabled ? 'text-grey-40 pointer-events-none' : ''\n return (\n <div className={cn('flex space-x-2', classNames?.wrapper)}>\n <CheckboxToggle id={id} disabled={disabled} ref={ref} {...props} />\n <label htmlFor={id} className={cn(labelClassName, classNames?.label)}>\n {children}\n </label>\n </div>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GCAA,IAAAI,EAAsC,gBACtCC,EAAwB,0BAEjB,SAASC,KAAMC,EAAsB,CAC1C,SAAO,cAAQ,QAAKA,CAAM,CAAC,CAC7B,CDJA,IAAAC,EAA0B,wBEC1B,IAAAC,EAAmC,yCACnCC,EAA6B,wBAC7BC,EAKO,iBAsCH,IAAAC,EAAA,6BAlCEC,KAAiB,cAGrB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,OAC1B,OAAmB,OAAlB,CACC,IAAKA,EACL,UAAWC,EACT,QACA,OACA,MACA,MACA,WACA,aACA,SACA,iBACA,UACA,YACA,mBACA,sBACA,uBACA,2BACA,yBACA,8BACA,sBACA,mCACA,yCACA,kCACA,qDACAF,EAAM,UACJ,kFACFD,CACF,EACC,GAAGC,EAEJ,oBAAmB,YAAlB,CAA4B,UAAU,gDACrC,oBAAC,SAAM,UAAU,kDAAkD,KACnE,OAAC,SAAM,UAAU,wDAAwD,GAC3E,EACF,CACD,EACDF,EAAe,YAAgC,OAAK,YAUpD,IAAMK,KAAW,cACf,CAAC,CAAE,WAAAC,EAAY,SAAAC,EAAU,GAAGL,CAAM,EAAGC,IAAQ,CAC3C,GAAM,CAAE,SAAAK,CAAS,EAAIN,EACfO,EAAKP,EAAM,IAAM,GAAGA,EAAM,MAAQA,EAAM,OAAO,SAAS,CAAC,YACzDQ,EAAiBF,EAAW,mCAAqC,GACvE,SACE,QAAC,OAAI,UAAWJ,EAAG,iBAAkBE,GAAY,OAAO,EACtD,oBAACN,EAAA,CAAe,GAAIS,EAAI,SAAUD,EAAU,IAAKL,EAAM,GAAGD,EAAO,KACjE,OAAC,SAAM,QAASO,EAAI,UAAWL,EAAGM,EAAgBJ,GAAY,KAAK,EAChE,SAAAC,EACH,GACF,CAEJ,CACF,EACAF,EAAS,YAAc,WAEvB,IAAOM,EAAQN,EF5Ef,IAAAO,EAAsB,wBA0BTC,EAAA,6BAbb,SAASC,EAAS,CAChB,KAAAC,EACA,YAAAC,EACA,WAAAC,EACA,UAAAC,EACA,MAAAC,EACA,MAAAC,EACA,YAAAC,EACA,GAAGC,CACL,EAAkB,CAShB,IAAMC,EAAaR,GARKA,GAA4B,CAClD,GAAIA,KAAQ,QAAO,CACjB,IAAMS,EAAgB,QAAMT,CAAe,EAC3C,SAAO,OAACS,EAAA,CAAc,KAAM,GAAI,CAClC,CACA,OAAO,IACT,GAEyCT,CAAI,EAAI,OAEjD,SACE,QAAC,MACC,UAAWU,EACT,kFACAP,CACF,EACC,GAAGI,EACJ,aAAYL,EAAa,UAAY,YAEpC,UAAAM,MAAc,OAAC,QAAK,UAAU,OAAQ,SAAAA,EAAW,EACjDP,MACC,OAACU,EAAA,CAAS,GAAIN,EAAO,QAASH,EAAY,QAAUU,GAAMA,EAAE,eAAe,EAAG,KAEhF,QAAC,OACC,oBAAC,KAAG,SAAAR,EAAM,KACV,OAAC,KAAE,UAAU,uBAAwB,SAAAE,EAAY,GACnD,KAEA,OAAC,aACC,UAAU,gGACV,KAAM,GACR,GACF,CAEJ,CAEA,IAAOO,EAAQd","names":["ListItem_exports","__export","ListItem_default","__toCommonJS","import_clsx","import_tailwind_merge","cn","inputs","import_lucide_react","CheckboxPrimitive","import_lucide_react","import_react","import_jsx_runtime","CheckboxToggle","className","props","ref","cn","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","import_lucide_react","import_jsx_runtime","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","ListItem_default"]}
1
+ {"version":3,"sources":["../../../src/components/ui/ListItem.tsx","../../../src/lib/utils.ts","../../../src/components/ui/Checkbox.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\nimport { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport Checkbox from '@/components/ui/Checkbox'\nimport { icons } from 'lucide-react'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox id={value} checked={isSelected} onClick={(e) => e.preventDefault()} />\n )}\n <div>\n <p>{title}</p>\n <p className=\"text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check, Minus } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst CheckboxToggle = forwardRef<\n ElementRef<typeof CheckboxPrimitive.Root>,\n ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'group',\n 'peer',\n 'h-5',\n 'w-5',\n 'shrink-0',\n 'rounded-md',\n 'border',\n 'border-grey-10',\n 'outline',\n 'outline-1',\n 'outline-offset-2',\n 'outline-transparent',\n 'hover:border-grey-20',\n 'focus:outline-purple-100',\n 'active:border-green-80',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=checked]:bg-green-80',\n 'data-[state=indeterminate]:bg-green-80',\n 'data-[state=checked]:text-white',\n 'data-[state=indeterminate]:text-primary-foreground',\n props.disabled &&\n 'data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className=\"hidden h-4 w-4 group-data-[state=checked]:block\" />\n <Minus className=\"hidden h-4 w-4 group-data-[state=indeterminate]:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckboxToggle.displayName = CheckboxPrimitive.Root.displayName\n\ninterface Props extends CheckboxPrimitive.CheckboxProps, PropsWithChildren {\n error?: string\n classNames?: {\n wrapper?: string\n label?: string\n }\n}\n\nconst Checkbox = forwardRef<ElementRef<typeof CheckboxPrimitive.Root>, Props>(\n ({ classNames, children, ...props }, ref) => {\n const { disabled } = props\n const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`\n const labelClassName = disabled ? 'text-grey-40 pointer-events-none' : ''\n return (\n <div className={cn('flex space-x-2', classNames?.wrapper)}>\n <CheckboxToggle id={id} disabled={disabled} ref={ref} {...props} />\n <label htmlFor={id} className={cn(labelClassName, classNames?.label)}>\n {children}\n </label>\n </div>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADJA,IAAAA,uBAA0B;;;AEC1B,wBAAmC;AACnC,0BAA6B;AAC7B,mBAKO;AAsCH;AAlCJ,IAAM,qBAAiB,yBAGrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAmB;AAAA,EAAlB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,YACJ;AAAA,MACF;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,uDAAmB,6BAAlB,EAA4B,WAAU,iDACrC;AAAA,kDAAC,6BAAM,WAAU,mDAAkD;AAAA,MACnE,4CAAC,6BAAM,WAAU,yDAAwD;AAAA,OAC3E;AAAA;AACF,CACD;AACD,eAAe,cAAgC,uBAAK;AAUpD,IAAM,eAAW;AAAA,EACf,CAAC,EAAE,YAAY,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC3C,UAAM,EAAE,SAAS,IAAI;AACrB,UAAM,KAAK,MAAM,MAAM,GAAG,MAAM,QAAQ,MAAM,OAAO,SAAS,CAAC;AAC/D,UAAM,iBAAiB,WAAW,qCAAqC;AACvE,WACE,6CAAC,SAAI,WAAW,GAAG,kBAAkB,YAAY,OAAO,GACtD;AAAA,kDAAC,kBAAe,IAAQ,UAAoB,KAAW,GAAG,OAAO;AAAA,MACjE,4CAAC,WAAM,SAAS,IAAI,WAAW,GAAG,gBAAgB,YAAY,KAAK,GAChE,UACH;AAAA,OACF;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;AAEvB,IAAO,mBAAQ;;;AF5Ef,IAAAC,uBAAsB;AA0BT,IAAAC,sBAAA;AAbb,SAAS,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAkB;AAChB,QAAM,iBAAiB,CAACC,UAA4B;AAClD,QAAIA,SAAQ,4BAAO;AACjB,YAAM,gBAAgB,2BAAMA,KAAe;AAC3C,aAAO,6CAAC,iBAAc,MAAM,IAAI;AAAA,IAClC;AACA,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,OAAO,eAAe,IAAI,IAAI;AAEjD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MACJ,cAAY,aAAa,YAAY;AAAA,MAEpC;AAAA,sBAAc,6CAAC,UAAK,WAAU,QAAQ,sBAAW;AAAA,QACjD,eACC,6CAAC,oBAAS,IAAI,OAAO,SAAS,YAAY,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG;AAAA,QAEhF,8CAAC,SACC;AAAA,uDAAC,OAAG,iBAAM;AAAA,UACV,6CAAC,OAAE,WAAU,wBAAwB,uBAAY;AAAA,WACnD;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAM;AAAA;AAAA,QACR;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,mBAAQ;","names":["import_lucide_react","import_lucide_react","import_jsx_runtime","icon"]}
@@ -1,2 +1,121 @@
1
- import{clsx as N}from"clsx";import{twMerge as R}from"tailwind-merge";function r(...t){return R(N(t))}import{CheckIcon as W}from"lucide-react";import*as n from"@radix-ui/react-checkbox";import{Check as I,Minus as w}from"lucide-react";import{forwardRef as u}from"react";import{jsx as a,jsxs as k}from"react/jsx-runtime";var b=u(({className:t,...o},e)=>a(n.Root,{ref:e,className:r("group","peer","h-5","w-5","shrink-0","rounded-md","border","border-grey-10","outline","outline-1","outline-offset-2","outline-transparent","hover:border-grey-20","focus:outline-purple-100","active:border-green-80","disabled:cursor-not-allowed","disabled:opacity-50","data-[state=checked]:bg-green-80","data-[state=indeterminate]:bg-green-80","data-[state=checked]:text-white","data-[state=indeterminate]:text-primary-foreground",o.disabled&&"data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",t),...o,children:k(n.Indicator,{className:"flex items-center justify-center text-current",children:[a(I,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),a(w,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"})]})}));b.displayName=n.Root.displayName;var x=u(({classNames:t,children:o,...e},d)=>{let{disabled:s}=e,c=e.id??`${e.name??e.value?.toString()}-checkbox`,m=s?"text-grey-40 pointer-events-none":"";return k("div",{className:r("flex space-x-2",t?.wrapper),children:[a(b,{id:c,disabled:s,ref:d,...e}),a("label",{htmlFor:c,className:r(m,t?.label),children:o})]})});x.displayName="Checkbox";var g=x;import{icons as C}from"lucide-react";import{jsx as i,jsxs as y}from"react/jsx-runtime";function V({icon:t,hasCheckbox:o,isSelected:e,className:d,title:s,value:c,description:m,...v}){let p=t?(l=>{if(l in C){let P=C[l];return i(P,{size:14})}return null})(t):void 0;return y("li",{className:r("group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",d),...v,"data-state":e?"checked":"unchecked",children:[p&&i("span",{className:"mr-2",children:p}),o&&i(g,{id:c,checked:e,onClick:l=>l.preventDefault()}),y("div",{children:[i("p",{children:s}),i("p",{className:"text-xs text-grey-80",children:m})]}),i(W,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16})]})}var J=V;export{J as default};
1
+ // src/lib/utils.ts
2
+ import { clsx } from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+
8
+ // src/components/ui/ListItem.tsx
9
+ import { CheckIcon } from "lucide-react";
10
+
11
+ // src/components/ui/Checkbox.tsx
12
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
13
+ import { Check, Minus } from "lucide-react";
14
+ import {
15
+ forwardRef
16
+ } from "react";
17
+ import { jsx, jsxs } from "react/jsx-runtime";
18
+ var CheckboxToggle = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
19
+ CheckboxPrimitive.Root,
20
+ {
21
+ ref,
22
+ className: cn(
23
+ "group",
24
+ "peer",
25
+ "h-5",
26
+ "w-5",
27
+ "shrink-0",
28
+ "rounded-md",
29
+ "border",
30
+ "border-grey-10",
31
+ "outline",
32
+ "outline-1",
33
+ "outline-offset-2",
34
+ "outline-transparent",
35
+ "hover:border-grey-20",
36
+ "focus:outline-purple-100",
37
+ "active:border-green-80",
38
+ "disabled:cursor-not-allowed",
39
+ "disabled:opacity-50",
40
+ "data-[state=checked]:bg-green-80",
41
+ "data-[state=indeterminate]:bg-green-80",
42
+ "data-[state=checked]:text-white",
43
+ "data-[state=indeterminate]:text-primary-foreground",
44
+ props.disabled && "data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",
45
+ className
46
+ ),
47
+ ...props,
48
+ children: /* @__PURE__ */ jsxs(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
49
+ /* @__PURE__ */ jsx(Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }),
50
+ /* @__PURE__ */ jsx(Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" })
51
+ ] })
52
+ }
53
+ ));
54
+ CheckboxToggle.displayName = CheckboxPrimitive.Root.displayName;
55
+ var Checkbox = forwardRef(
56
+ ({ classNames, children, ...props }, ref) => {
57
+ const { disabled } = props;
58
+ const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`;
59
+ const labelClassName = disabled ? "text-grey-40 pointer-events-none" : "";
60
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex space-x-2", classNames?.wrapper), children: [
61
+ /* @__PURE__ */ jsx(CheckboxToggle, { id, disabled, ref, ...props }),
62
+ /* @__PURE__ */ jsx("label", { htmlFor: id, className: cn(labelClassName, classNames?.label), children })
63
+ ] });
64
+ }
65
+ );
66
+ Checkbox.displayName = "Checkbox";
67
+ var Checkbox_default = Checkbox;
68
+
69
+ // src/components/ui/ListItem.tsx
70
+ import { icons } from "lucide-react";
71
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
72
+ function ListItem({
73
+ icon,
74
+ hasCheckbox,
75
+ isSelected,
76
+ className,
77
+ title,
78
+ value,
79
+ description,
80
+ ...props
81
+ }) {
82
+ const getIconIfValid = (icon2) => {
83
+ if (icon2 in icons) {
84
+ const IconComponent = icons[icon2];
85
+ return /* @__PURE__ */ jsx2(IconComponent, { size: 14 });
86
+ }
87
+ return null;
88
+ };
89
+ const optionIcon = icon ? getIconIfValid(icon) : void 0;
90
+ return /* @__PURE__ */ jsxs2(
91
+ "li",
92
+ {
93
+ className: cn(
94
+ "group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",
95
+ className
96
+ ),
97
+ ...props,
98
+ "data-state": isSelected ? "checked" : "unchecked",
99
+ children: [
100
+ optionIcon && /* @__PURE__ */ jsx2("span", { className: "mr-2", children: optionIcon }),
101
+ hasCheckbox && /* @__PURE__ */ jsx2(Checkbox_default, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
102
+ /* @__PURE__ */ jsxs2("div", { children: [
103
+ /* @__PURE__ */ jsx2("p", { children: title }),
104
+ /* @__PURE__ */ jsx2("p", { className: "text-xs text-grey-80", children: description })
105
+ ] }),
106
+ /* @__PURE__ */ jsx2(
107
+ CheckIcon,
108
+ {
109
+ className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
110
+ size: 16
111
+ }
112
+ )
113
+ ]
114
+ }
115
+ );
116
+ }
117
+ var ListItem_default = ListItem;
118
+ export {
119
+ ListItem_default as default
120
+ };
2
121
  //# sourceMappingURL=ListItem.js.map