@next-degree/pickle-shared-js 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AmbitBold-3SZZPYLH.otf +0 -0
- package/dist/AmbitBoldItalic-JSHFTN4A.otf +0 -0
- package/dist/AmbitRegular-MB5U7O3L.otf +0 -0
- package/dist/app/layout.css +2 -0
- package/dist/app/layout.css.map +1 -0
- package/dist/app/layout.d.mts +11 -0
- package/dist/app/layout.d.ts +11 -0
- package/dist/app/layout.js +2 -0
- package/dist/app/layout.js.map +1 -0
- package/dist/app/layout.mjs +2 -0
- package/dist/app/layout.mjs.map +1 -0
- package/dist/app/page.d.mts +5 -0
- package/dist/app/page.d.ts +5 -0
- package/dist/app/page.js +2 -0
- package/dist/app/page.js.map +1 -0
- package/dist/app/page.mjs +2 -0
- package/dist/app/page.mjs.map +1 -0
- package/dist/assets/fonts/AmbitBold.d.mts +2 -0
- package/dist/assets/fonts/AmbitBold.d.ts +2 -0
- package/dist/assets/fonts/AmbitBold.js +2 -0
- package/dist/assets/fonts/AmbitBold.js.map +1 -0
- package/dist/assets/fonts/AmbitBold.mjs +2 -0
- package/dist/assets/fonts/AmbitBold.mjs.map +1 -0
- package/dist/assets/fonts/AmbitBoldItalic.d.mts +2 -0
- package/dist/assets/fonts/AmbitBoldItalic.d.ts +2 -0
- package/dist/assets/fonts/AmbitBoldItalic.js +2 -0
- package/dist/assets/fonts/AmbitBoldItalic.js.map +1 -0
- package/dist/assets/fonts/AmbitBoldItalic.mjs +2 -0
- package/dist/assets/fonts/AmbitBoldItalic.mjs.map +1 -0
- package/dist/assets/fonts/AmbitRegular.d.mts +2 -0
- package/dist/assets/fonts/AmbitRegular.d.ts +2 -0
- package/dist/assets/fonts/AmbitRegular.js +2 -0
- package/dist/assets/fonts/AmbitRegular.js.map +1 -0
- package/dist/assets/fonts/AmbitRegular.mjs +2 -0
- package/dist/assets/fonts/AmbitRegular.mjs.map +1 -0
- package/dist/components/lib/utils.js.map +1 -0
- package/dist/components/lib/utils.mjs.map +1 -0
- package/dist/{primitives → components/primitives}/command.d.mts +3 -3
- package/dist/{primitives → components/primitives}/command.d.ts +3 -3
- package/dist/components/primitives/command.js.map +1 -0
- package/dist/components/primitives/command.mjs.map +1 -0
- package/dist/components/primitives/dialog.js.map +1 -0
- package/dist/components/primitives/dialog.mjs.map +1 -0
- package/dist/components/primitives/popover.js.map +1 -0
- package/dist/components/primitives/popover.mjs.map +1 -0
- package/dist/components/primitives/separator.js.map +1 -0
- package/dist/components/primitives/separator.mjs.map +1 -0
- package/dist/components/ui/Badge.js.map +1 -0
- package/dist/components/ui/Badge.mjs.map +1 -0
- package/dist/components/ui/Button.js.map +1 -0
- package/dist/components/ui/Button.mjs.map +1 -0
- package/dist/components/ui/Checkbox.js.map +1 -0
- package/dist/components/ui/Checkbox.mjs.map +1 -0
- package/dist/components/ui/Chip.js.map +1 -0
- package/dist/components/ui/Chip.mjs.map +1 -0
- package/dist/components/ui/Combobox.js.map +1 -0
- package/dist/components/ui/Combobox.mjs.map +1 -0
- package/dist/components/ui/Label.js.map +1 -0
- package/dist/components/ui/Label.mjs.map +1 -0
- package/dist/components/ui/ListItem.js.map +1 -0
- package/dist/components/ui/ListItem.mjs.map +1 -0
- package/dist/components/ui/Select.js.map +1 -0
- package/dist/components/ui/Select.mjs.map +1 -0
- package/dist/demos/ComboboxDemo.d.mts +5 -0
- package/dist/demos/ComboboxDemo.d.ts +5 -0
- package/dist/demos/ComboboxDemo.js +2 -0
- package/dist/demos/ComboboxDemo.js.map +1 -0
- package/dist/demos/ComboboxDemo.mjs +2 -0
- package/dist/demos/ComboboxDemo.mjs.map +1 -0
- package/dist/demos/index.d.mts +5 -0
- package/dist/demos/index.d.ts +5 -0
- package/dist/demos/index.js +2 -0
- package/dist/demos/index.js.map +1 -0
- package/dist/demos/index.mjs +2 -0
- package/dist/demos/index.mjs.map +1 -0
- package/dist/index.d.mts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/styles/globals.css +2 -0
- package/dist/styles/globals.css.map +1 -0
- package/dist/styles/globals.d.mts +2 -0
- package/dist/styles/globals.d.ts +2 -0
- package/package.json +2 -2
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/utils.mjs.map +0 -1
- package/dist/primitives/command.js.map +0 -1
- package/dist/primitives/command.mjs.map +0 -1
- package/dist/primitives/dialog.js.map +0 -1
- package/dist/primitives/dialog.mjs.map +0 -1
- package/dist/primitives/popover.js.map +0 -1
- package/dist/primitives/popover.mjs.map +0 -1
- package/dist/primitives/separator.js.map +0 -1
- package/dist/primitives/separator.mjs.map +0 -1
- package/dist/ui/Badge.js.map +0 -1
- package/dist/ui/Badge.mjs.map +0 -1
- package/dist/ui/Button.js.map +0 -1
- package/dist/ui/Button.mjs.map +0 -1
- package/dist/ui/Checkbox.js.map +0 -1
- package/dist/ui/Checkbox.mjs.map +0 -1
- package/dist/ui/Chip.js.map +0 -1
- package/dist/ui/Chip.mjs.map +0 -1
- package/dist/ui/Combobox.js.map +0 -1
- package/dist/ui/Combobox.mjs.map +0 -1
- package/dist/ui/Label.js.map +0 -1
- package/dist/ui/Label.mjs.map +0 -1
- package/dist/ui/ListItem.js.map +0 -1
- package/dist/ui/ListItem.mjs.map +0 -1
- package/dist/ui/Select.js.map +0 -1
- package/dist/ui/Select.mjs.map +0 -1
- /package/dist/{lib → components/lib}/utils.d.mts +0 -0
- /package/dist/{lib → components/lib}/utils.d.ts +0 -0
- /package/dist/{lib → components/lib}/utils.js +0 -0
- /package/dist/{lib → components/lib}/utils.mjs +0 -0
- /package/dist/{primitives → components/primitives}/command.js +0 -0
- /package/dist/{primitives → components/primitives}/command.mjs +0 -0
- /package/dist/{primitives → components/primitives}/dialog.d.mts +0 -0
- /package/dist/{primitives → components/primitives}/dialog.d.ts +0 -0
- /package/dist/{primitives → components/primitives}/dialog.js +0 -0
- /package/dist/{primitives → components/primitives}/dialog.mjs +0 -0
- /package/dist/{primitives → components/primitives}/popover.d.mts +0 -0
- /package/dist/{primitives → components/primitives}/popover.d.ts +0 -0
- /package/dist/{primitives → components/primitives}/popover.js +0 -0
- /package/dist/{primitives → components/primitives}/popover.mjs +0 -0
- /package/dist/{primitives → components/primitives}/separator.d.mts +0 -0
- /package/dist/{primitives → components/primitives}/separator.d.ts +0 -0
- /package/dist/{primitives → components/primitives}/separator.js +0 -0
- /package/dist/{primitives → components/primitives}/separator.mjs +0 -0
- /package/dist/{ui → components/ui}/Badge.d.mts +0 -0
- /package/dist/{ui → components/ui}/Badge.d.ts +0 -0
- /package/dist/{ui → components/ui}/Badge.js +0 -0
- /package/dist/{ui → components/ui}/Badge.mjs +0 -0
- /package/dist/{ui → components/ui}/Button.d.mts +0 -0
- /package/dist/{ui → components/ui}/Button.d.ts +0 -0
- /package/dist/{ui → components/ui}/Button.js +0 -0
- /package/dist/{ui → components/ui}/Button.mjs +0 -0
- /package/dist/{ui → components/ui}/Checkbox.d.mts +0 -0
- /package/dist/{ui → components/ui}/Checkbox.d.ts +0 -0
- /package/dist/{ui → components/ui}/Checkbox.js +0 -0
- /package/dist/{ui → components/ui}/Checkbox.mjs +0 -0
- /package/dist/{ui → components/ui}/Chip.d.mts +0 -0
- /package/dist/{ui → components/ui}/Chip.d.ts +0 -0
- /package/dist/{ui → components/ui}/Chip.js +0 -0
- /package/dist/{ui → components/ui}/Chip.mjs +0 -0
- /package/dist/{ui → components/ui}/Combobox.d.mts +0 -0
- /package/dist/{ui → components/ui}/Combobox.d.ts +0 -0
- /package/dist/{ui → components/ui}/Combobox.js +0 -0
- /package/dist/{ui → components/ui}/Combobox.mjs +0 -0
- /package/dist/{ui → components/ui}/Label.d.mts +0 -0
- /package/dist/{ui → components/ui}/Label.d.ts +0 -0
- /package/dist/{ui → components/ui}/Label.js +0 -0
- /package/dist/{ui → components/ui}/Label.mjs +0 -0
- /package/dist/{ui → components/ui}/ListItem.d.mts +0 -0
- /package/dist/{ui → components/ui}/ListItem.d.ts +0 -0
- /package/dist/{ui → components/ui}/ListItem.js +0 -0
- /package/dist/{ui → components/ui}/ListItem.mjs +0 -0
- /package/dist/{ui → components/ui}/Select.d.mts +0 -0
- /package/dist/{ui → components/ui}/Select.d.ts +0 -0
- /package/dist/{ui → components/ui}/Select.js +0 -0
- /package/dist/{ui → components/ui}/Select.mjs +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ui/ListItem.tsx","../../../src/components/lib/utils.ts","../../../src/components/ui/Checkbox.tsx"],"sourcesContent":["import { cn } from \"@/components/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 text-left flex w-72 flex-row items-center text-sm cursor-pointer\",\n className\n )}\n {...props}\n data-state={isSelected ? \"checked\" : \"unchecked\"}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox\n id={value}\n checked={isSelected}\n onClick={(e) => e.preventDefault()}\n />\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 \"@/components/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 \"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground\",\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,uCACnCC,EAA6B,wBAC7BC,EAKO,iBAIP,IAAMC,KAAiB,cAGrB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC1B,oBAAmB,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,GAEJ,oBAAmB,YAAlB,CAA4B,UAAU,iDACrC,oBAAC,SAAM,UAAU,kDAAkD,EACnE,oBAAC,SAAM,UAAU,wDAAwD,CAC3E,CACF,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,OACE,oBAAC,OAAI,UAAWJ,EAAG,iBAAkBE,GAAY,OAAO,GACtD,oBAACN,EAAA,CAAe,GAAIS,EAAI,SAAUD,EAAU,IAAKL,EAAM,GAAGD,EAAO,EACjE,oBAAC,SAAM,QAASO,EAAI,UAAWL,EAAGM,EAAgBJ,GAAY,KAAK,GAChEC,CACH,CACF,CAEJ,CACF,EACAF,EAAS,YAAc,WAEvB,IAAOM,EAAQN,EF5Ef,IAAAO,EAAsB,wBAatB,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,OAAO,oBAACS,EAAA,CAAc,KAAM,GAAI,CAClC,CACA,OAAO,IACT,GAEyCT,CAAI,EAAI,OAEjD,OACE,oBAAC,MACC,UAAWU,EACT,kFACAP,CACF,EACC,GAAGI,EACJ,aAAYL,EAAa,UAAY,aAEpCM,GAAc,oBAAC,QAAK,UAAU,QAAQA,CAAW,EACjDP,GACC,oBAACU,EAAA,CACC,GAAIN,EACJ,QAASH,EACT,QAAUU,GAAMA,EAAE,eAAe,EACnC,EAEF,oBAAC,WACC,oBAAC,SAAGR,CAAM,EACV,oBAAC,KAAE,UAAU,wBAAwBE,CAAY,CACnD,EAEA,oBAAC,aACC,UAAU,gGACV,KAAM,GACR,CACF,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","CheckboxToggle","className","props","ref","cn","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","import_lucide_react","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","ListItem_default"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/lib/utils.ts","../../../src/components/ui/ListItem.tsx","../../../src/components/ui/Checkbox.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 { cn } from \"@/components/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 text-left flex w-72 flex-row items-center text-sm cursor-pointer\",\n className\n )}\n {...props}\n data-state={isSelected ? \"checked\" : \"unchecked\"}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox\n id={value}\n checked={isSelected}\n onClick={(e) => e.preventDefault()}\n />\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 \"@/components/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 \"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground\",\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,OAA0B,QAAAA,MAAY,OACtC,OAAS,WAAAC,MAAe,iBAEjB,SAASC,KAAMC,EAAsB,CAC1C,OAAOF,EAAQD,EAAKG,CAAM,CAAC,CAC7B,CCJA,OAAS,aAAAC,MAAiB,eCC1B,UAAYC,MAAuB,2BACnC,OAAS,SAAAC,EAAO,SAAAC,MAAa,eAC7B,OAGE,cAAAC,MAEK,QAIP,IAAMC,EAAiBC,EAGrB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC1B,oBAAmB,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,GAEJ,oBAAmB,YAAlB,CAA4B,UAAU,iDACrC,oBAACG,EAAA,CAAM,UAAU,kDAAkD,EACnE,oBAACC,EAAA,CAAM,UAAU,wDAAwD,CAC3E,CACF,CACD,EACDP,EAAe,YAAgC,OAAK,YAUpD,IAAMQ,EAAWP,EACf,CAAC,CAAE,WAAAQ,EAAY,SAAAC,EAAU,GAAGP,CAAM,EAAGC,IAAQ,CAC3C,GAAM,CAAE,SAAAO,CAAS,EAAIR,EACfS,EAAKT,EAAM,IAAM,GAAGA,EAAM,MAAQA,EAAM,OAAO,SAAS,CAAC,YACzDU,EAAiBF,EAAW,mCAAqC,GACvE,OACE,oBAAC,OAAI,UAAWN,EAAG,iBAAkBI,GAAY,OAAO,GACtD,oBAACT,EAAA,CAAe,GAAIY,EAAI,SAAUD,EAAU,IAAKP,EAAM,GAAGD,EAAO,EACjE,oBAAC,SAAM,QAASS,EAAI,UAAWP,EAAGQ,EAAgBJ,GAAY,KAAK,GAChEC,CACH,CACF,CAEJ,CACF,EACAF,EAAS,YAAc,WAEvB,IAAOM,EAAQN,ED5Ef,OAAS,SAAAO,MAAa,eAatB,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,KAAQF,EAAO,CACjB,IAAMW,EAAgBX,EAAME,CAAe,EAC3C,OAAO,oBAACS,EAAA,CAAc,KAAM,GAAI,CAClC,CACA,OAAO,IACT,GAEyCT,CAAI,EAAI,OAEjD,OACE,oBAAC,MACC,UAAWU,EACT,kFACAP,CACF,EACC,GAAGI,EACJ,aAAYL,EAAa,UAAY,aAEpCM,GAAc,oBAAC,QAAK,UAAU,QAAQA,CAAW,EACjDP,GACC,oBAACU,EAAA,CACC,GAAIN,EACJ,QAASH,EACT,QAAUU,GAAMA,EAAE,eAAe,EACnC,EAEF,oBAAC,WACC,oBAAC,SAAGR,CAAM,EACV,oBAAC,KAAE,UAAU,wBAAwBE,CAAY,CACnD,EAEA,oBAACO,EAAA,CACC,UAAU,gGACV,KAAM,GACR,CACF,CAEJ,CAEA,IAAOC,EAAQf","names":["clsx","twMerge","cn","inputs","CheckIcon","CheckboxPrimitive","Check","Minus","forwardRef","CheckboxToggle","forwardRef","className","props","ref","cn","Check","Minus","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","icons","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","CheckIcon","ListItem_default"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ui/Select.tsx","../../../src/components/lib/utils.ts","../../../src/components/ui/Label.tsx","../../../src/components/ui/Chip.tsx","../../../src/components/primitives/separator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, X } from \"lucide-react\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type KeyboardEvent,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport Label from \"@/components/ui/Label\";\nimport Chip from \"@/components/ui/Chip\";\nimport { Separator } from \"@/components/primitives/separator\";\nimport { cn } from \"@/components/lib/utils\";\n\ninterface Props\n extends Omit<ComponentPropsWithoutRef<\"select\">, \"value\" | \"onChange\"> {\n label: string;\n value?: string | string[];\n options?: { id: string | number; value: string; title: string }[];\n placeholder?: string;\n multiselect?: boolean;\n onChange?: (value: string | string[]) => void;\n classNames?: { label?: string };\n}\n\nconst Select = forwardRef<HTMLButtonElement, Props>(\n ({ label, options, placeholder, multiselect, classNames, ...props }, ref) => {\n const { value, defaultValue, dir, className, onChange, ...rest } = props;\n const [selected, setSelected] = useState<string[]>([]);\n const [open, setOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!value) return setSelected([]);\n setSelected(Array.isArray(value) ? value : [value]);\n }, [value]);\n\n const toggleOpen = () => setOpen((prev) => !prev);\n const closeOnEscape = (event: KeyboardEvent) =>\n event.key === \"Escape\" && setOpen(false);\n const setValueOnEnter = (event: KeyboardEvent, value: string) =>\n event.key === \"Enter\" && handleChange(value);\n\n const chipLabels = selected\n ?.map((s) => options?.find(({ value }) => value === s))\n .filter(Boolean);\n\n function handleLabels() {\n if (multiselect) {\n return selected\n .map((o) => options?.find((option) => option.value === o)?.title)\n .join(\", \");\n }\n return options?.find((option) => option.value === selected.join())?.title;\n }\n\n function handleOnOpenChange(isOpen: boolean) {\n if (!multiselect || isOpen) setOpen(isOpen);\n }\n\n function handleChange(newValue: string) {\n let newSelected: string[] = [];\n setSelected((prev) => {\n newSelected = prev.includes(newValue)\n ? prev.filter((item) => item !== newValue)\n : [...prev, newValue];\n return multiselect ? newSelected : [newValue];\n });\n onChange?.(multiselect ? newSelected : newValue);\n }\n\n return (\n <div\n className={cn(\"flex flex-col space-y-2\", className)}\n ref={containerRef}\n >\n <Label text={label} className={classNames?.label} />\n\n <SelectPrimitive.Root\n open={open}\n value={selected.join(\",\")}\n onOpenChange={handleOnOpenChange}\n onValueChange={multiselect ? undefined : handleChange}\n defaultValue={\n typeof defaultValue === \"string\" ? defaultValue : undefined\n }\n dir={dir === \"rtl\" ? \"rtl\" : \"ltr\"}\n {...rest}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n data-testid={`${label.toLowerCase()}-select-element`}\n className=\"group flex min-w-80 flex-row items-center justify-between gap-3 rounded-lg border border-grey-20 px-4 py-3 text-sm font-normal focus:outline-purple-100 disabled:bg-grey-5 data-[placeholder]:text-grey-50 data-[placeholder]:disabled:text-grey-40\"\n >\n <span className=\"truncate\">\n <SelectPrimitive.Value\n placeholder={placeholder ?? \"Select an option\"}\n aria-label={handleLabels()}\n >\n {handleLabels()}\n </SelectPrimitive.Value>\n </span>\n\n <ChevronDownIcon\n className=\"transform text-black group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n </SelectPrimitive.Trigger>\n\n <SelectPrimitive.Portal container={containerRef.current}>\n <SelectPrimitive.Content\n hideWhenDetached\n className=\"z-10 max-h-[var(--radix-select-content-available-height)] w-[var(--radix-select-trigger-width)] overflow-hidden rounded-md bg-white py-2 shadow-lg\"\n position=\"popper\"\n sideOffset={4}\n onPointerDownOutside={toggleOpen}\n onKeyDown={closeOnEscape}\n >\n <SelectPrimitive.Viewport>\n {multiselect && !!chipLabels?.length && (\n <SelectPrimitive.Group\n className=\"mb-2 flex flex-row flex-wrap gap-1 px-2\"\n data-testid=\"selected-labels\"\n >\n {chipLabels?.map(\n (chip) =>\n chip && (\n <Chip key={chip.title} size=\"small\" variant=\"primary\">\n <span>{chip.title}</span>\n <X\n size={18}\n data-testid={`chip-remove-${chip.value}`}\n className=\"cursor-pointer\"\n onClick={() => handleChange(chip.value)}\n />\n </Chip>\n )\n )}\n </SelectPrimitive.Group>\n )}\n <Separator />\n {options?.map(({ id, title, value }) => (\n <SelectPrimitive.Item\n key={id}\n value={value}\n className=\"group relative cursor-pointer px-4 py-2 text-left text-sm hover:bg-purple-50 focus:bg-purple-50 focus:outline-none data-[state=checked]:bg-purple-50 data-[state=checked]:pr-10 data-[state=checked]:text-purple-100\"\n data-state={\n selected.includes(value) ? \"checked\" : \"unchecked\"\n }\n onKeyDown={(e) => setValueOnEnter(e, value)}\n onClick={() => handleChange(value)}\n >\n <SelectPrimitive.ItemText>{title}</SelectPrimitive.ItemText>\n <CheckIcon\n className=\"absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block\"\n size={16}\n />\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n </div>\n );\n }\n);\n\nSelect.displayName = \"Select\";\n\nexport default Select;\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","import { type ComponentPropsWithoutRef } from \"react\";\n\nimport { cn } from \"@/components/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 { cva, type VariantProps } from 'cva'\nimport React from 'react'\nimport { twMerge } from 'tailwind-merge'\n\ninterface ChipProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof chipVariants> {}\n\nconst Chip = ({ className, variant, size, ...props }: ChipProps) => (\n <div className={twMerge(chipVariants({ variant, size, className }))} {...props} />\n)\n\nconst chipVariants = cva(['flex', 'items-center', 'rounded-3xl', 'border', 'w-fit'], {\n variants: {\n variant: {\n neutral: ['text-grey-80', 'border-grey-10'],\n primary: ['text-purple-100', 'border-purple-20'],\n danger: ['text-pumpkin-100', 'border-pumpkin-20'],\n onboarding: ['text-green-100', 'bg-green-10', 'cursor-pointer'],\n onboardingSelected: ['text-white', 'bg-green-90', 'cursor-pointer'],\n },\n size: {\n small: ['text-sm', 'leading-5', 'px-2', 'py-1', 'gap-1.5'],\n medium: ['text-base', 'leading-6', 'px-3', 'py-2', 'gap-2'],\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: 'medium',\n },\n})\n\nexport default Chip\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 \"@/components/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>(\r\n (\r\n { className, orientation = \"horizontal\", decorative = true, ...props },\r\n ref\r\n ) => (\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\n);\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\r\n\r\nexport { Separator };\r\n"],"mappings":"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","names":["Select_exports","__export","Select_default","__toCommonJS","SelectPrimitive","import_lucide_react","import_react","import_clsx","import_tailwind_merge","cn","inputs","Label","text","className","props","cn","Label_default","import_cva","import_react","import_tailwind_merge","Chip","className","variant","size","props","React","chipVariants","Chip_default","SeparatorPrimitive","React","Separator","className","orientation","decorative","props","ref","cn","Select","label","options","placeholder","multiselect","classNames","props","ref","value","defaultValue","dir","className","onChange","rest","selected","setSelected","open","setOpen","containerRef","toggleOpen","prev","closeOnEscape","event","setValueOnEnter","handleChange","chipLabels","s","handleLabels","o","option","handleOnOpenChange","isOpen","newValue","newSelected","item","cn","Label_default","chip","Chip_default","Separator","id","title","e","Select_default"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ui/Select.tsx","../../../src/components/lib/utils.ts","../../../src/components/ui/Label.tsx","../../../src/components/ui/Chip.tsx","../../../src/components/primitives/separator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, X } from \"lucide-react\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type KeyboardEvent,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport Label from \"@/components/ui/Label\";\nimport Chip from \"@/components/ui/Chip\";\nimport { Separator } from \"@/components/primitives/separator\";\nimport { cn } from \"@/components/lib/utils\";\n\ninterface Props\n extends Omit<ComponentPropsWithoutRef<\"select\">, \"value\" | \"onChange\"> {\n label: string;\n value?: string | string[];\n options?: { id: string | number; value: string; title: string }[];\n placeholder?: string;\n multiselect?: boolean;\n onChange?: (value: string | string[]) => void;\n classNames?: { label?: string };\n}\n\nconst Select = forwardRef<HTMLButtonElement, Props>(\n ({ label, options, placeholder, multiselect, classNames, ...props }, ref) => {\n const { value, defaultValue, dir, className, onChange, ...rest } = props;\n const [selected, setSelected] = useState<string[]>([]);\n const [open, setOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!value) return setSelected([]);\n setSelected(Array.isArray(value) ? value : [value]);\n }, [value]);\n\n const toggleOpen = () => setOpen((prev) => !prev);\n const closeOnEscape = (event: KeyboardEvent) =>\n event.key === \"Escape\" && setOpen(false);\n const setValueOnEnter = (event: KeyboardEvent, value: string) =>\n event.key === \"Enter\" && handleChange(value);\n\n const chipLabels = selected\n ?.map((s) => options?.find(({ value }) => value === s))\n .filter(Boolean);\n\n function handleLabels() {\n if (multiselect) {\n return selected\n .map((o) => options?.find((option) => option.value === o)?.title)\n .join(\", \");\n }\n return options?.find((option) => option.value === selected.join())?.title;\n }\n\n function handleOnOpenChange(isOpen: boolean) {\n if (!multiselect || isOpen) setOpen(isOpen);\n }\n\n function handleChange(newValue: string) {\n let newSelected: string[] = [];\n setSelected((prev) => {\n newSelected = prev.includes(newValue)\n ? prev.filter((item) => item !== newValue)\n : [...prev, newValue];\n return multiselect ? newSelected : [newValue];\n });\n onChange?.(multiselect ? newSelected : newValue);\n }\n\n return (\n <div\n className={cn(\"flex flex-col space-y-2\", className)}\n ref={containerRef}\n >\n <Label text={label} className={classNames?.label} />\n\n <SelectPrimitive.Root\n open={open}\n value={selected.join(\",\")}\n onOpenChange={handleOnOpenChange}\n onValueChange={multiselect ? undefined : handleChange}\n defaultValue={\n typeof defaultValue === \"string\" ? defaultValue : undefined\n }\n dir={dir === \"rtl\" ? \"rtl\" : \"ltr\"}\n {...rest}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n data-testid={`${label.toLowerCase()}-select-element`}\n className=\"group flex min-w-80 flex-row items-center justify-between gap-3 rounded-lg border border-grey-20 px-4 py-3 text-sm font-normal focus:outline-purple-100 disabled:bg-grey-5 data-[placeholder]:text-grey-50 data-[placeholder]:disabled:text-grey-40\"\n >\n <span className=\"truncate\">\n <SelectPrimitive.Value\n placeholder={placeholder ?? \"Select an option\"}\n aria-label={handleLabels()}\n >\n {handleLabels()}\n </SelectPrimitive.Value>\n </span>\n\n <ChevronDownIcon\n className=\"transform text-black group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n </SelectPrimitive.Trigger>\n\n <SelectPrimitive.Portal container={containerRef.current}>\n <SelectPrimitive.Content\n hideWhenDetached\n className=\"z-10 max-h-[var(--radix-select-content-available-height)] w-[var(--radix-select-trigger-width)] overflow-hidden rounded-md bg-white py-2 shadow-lg\"\n position=\"popper\"\n sideOffset={4}\n onPointerDownOutside={toggleOpen}\n onKeyDown={closeOnEscape}\n >\n <SelectPrimitive.Viewport>\n {multiselect && !!chipLabels?.length && (\n <SelectPrimitive.Group\n className=\"mb-2 flex flex-row flex-wrap gap-1 px-2\"\n data-testid=\"selected-labels\"\n >\n {chipLabels?.map(\n (chip) =>\n chip && (\n <Chip key={chip.title} size=\"small\" variant=\"primary\">\n <span>{chip.title}</span>\n <X\n size={18}\n data-testid={`chip-remove-${chip.value}`}\n className=\"cursor-pointer\"\n onClick={() => handleChange(chip.value)}\n />\n </Chip>\n )\n )}\n </SelectPrimitive.Group>\n )}\n <Separator />\n {options?.map(({ id, title, value }) => (\n <SelectPrimitive.Item\n key={id}\n value={value}\n className=\"group relative cursor-pointer px-4 py-2 text-left text-sm hover:bg-purple-50 focus:bg-purple-50 focus:outline-none data-[state=checked]:bg-purple-50 data-[state=checked]:pr-10 data-[state=checked]:text-purple-100\"\n data-state={\n selected.includes(value) ? \"checked\" : \"unchecked\"\n }\n onKeyDown={(e) => setValueOnEnter(e, value)}\n onClick={() => handleChange(value)}\n >\n <SelectPrimitive.ItemText>{title}</SelectPrimitive.ItemText>\n <CheckIcon\n className=\"absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block\"\n size={16}\n />\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n </div>\n );\n }\n);\n\nSelect.displayName = \"Select\";\n\nexport default Select;\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","import { type ComponentPropsWithoutRef } from \"react\";\n\nimport { cn } from \"@/components/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 { cva, type VariantProps } from 'cva'\nimport React from 'react'\nimport { twMerge } from 'tailwind-merge'\n\ninterface ChipProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof chipVariants> {}\n\nconst Chip = ({ className, variant, size, ...props }: ChipProps) => (\n <div className={twMerge(chipVariants({ variant, size, className }))} {...props} />\n)\n\nconst chipVariants = cva(['flex', 'items-center', 'rounded-3xl', 'border', 'w-fit'], {\n variants: {\n variant: {\n neutral: ['text-grey-80', 'border-grey-10'],\n primary: ['text-purple-100', 'border-purple-20'],\n danger: ['text-pumpkin-100', 'border-pumpkin-20'],\n onboarding: ['text-green-100', 'bg-green-10', 'cursor-pointer'],\n onboardingSelected: ['text-white', 'bg-green-90', 'cursor-pointer'],\n },\n size: {\n small: ['text-sm', 'leading-5', 'px-2', 'py-1', 'gap-1.5'],\n medium: ['text-base', 'leading-6', 'px-3', 'py-2', 'gap-2'],\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: 'medium',\n },\n})\n\nexport default Chip\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 \"@/components/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>(\r\n (\r\n { className, orientation = \"horizontal\", decorative = true, ...props },\r\n ref\r\n ) => (\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\n);\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\r\n\r\nexport { Separator };\r\n"],"mappings":"aAEA,UAAYA,MAAqB,yBACjC,OAAS,aAAAC,EAAW,mBAAAC,EAAiB,KAAAC,MAAS,eAC9C,OAEE,cAAAC,EAEA,aAAAC,EACA,UAAAC,EACA,YAAAC,MACK,QCXP,OAA0B,QAAAC,MAAY,OACtC,OAAS,WAAAC,MAAe,iBAEjB,SAASC,KAAMC,EAAsB,CAC1C,OAAOF,EAAQD,EAAKG,CAAM,CAAC,CAC7B,CCGA,SAASC,EAAM,CAAE,KAAAC,EAAM,UAAAC,EAAW,GAAGC,CAAM,EAAoB,CAC7D,OAAKF,EAGH,oBAAC,SACC,UAAWG,EACT,iFACAF,CACF,EACC,GAAGC,GAEHF,CACH,EAXgB,IAapB,CAEA,IAAOI,EAAQL,ECxBf,OAAS,OAAAM,MAA8B,MACvC,OAAOC,MAAW,QAClB,OAAS,WAAAC,MAAe,iBAMxB,IAAMC,EAAO,CAAC,CAAE,UAAAC,EAAW,QAAAC,EAAS,KAAAC,EAAM,GAAGC,CAAM,IACjDN,EAAA,cAAC,OAAI,UAAWC,EAAQM,EAAa,CAAE,QAAAH,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,CAAC,EAAI,GAAGG,EAAO,EAG5EC,EAAeR,EAAI,CAAC,OAAQ,eAAgB,cAAe,SAAU,OAAO,EAAG,CACnF,SAAU,CACR,QAAS,CACP,QAAS,CAAC,eAAgB,gBAAgB,EAC1C,QAAS,CAAC,kBAAmB,kBAAkB,EAC/C,OAAQ,CAAC,mBAAoB,mBAAmB,EAChD,WAAY,CAAC,iBAAkB,cAAe,gBAAgB,EAC9D,mBAAoB,CAAC,aAAc,cAAe,gBAAgB,CACpE,EACA,KAAM,CACJ,MAAO,CAAC,UAAW,YAAa,OAAQ,OAAQ,SAAS,EACzD,OAAQ,CAAC,YAAa,YAAa,OAAQ,OAAQ,OAAO,CAC5D,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,QACR,CACF,CAAC,EAEMS,EAAQN,EC9Bf,UAAYO,MAAwB,4BACpC,UAAYC,MAAW,QAIvB,IAAMC,EAAkB,aAItB,CACE,CAAE,UAAAC,EAAW,YAAAC,EAAc,aAAc,WAAAC,EAAa,GAAM,GAAGC,CAAM,EACrEC,IAEA,gBAAoB,OAAnB,CACC,IAAKA,EACL,WAAYF,EACZ,YAAaD,EACb,UAAWI,EACT,sBACAJ,IAAgB,aAAe,iBAAmB,iBAClDD,CACF,EACC,GAAGG,EACN,CAEJ,EACAJ,EAAU,YAAiC,OAAK,YJChD,IAAMO,EAASC,EACb,CAAC,CAAE,MAAAC,EAAO,QAAAC,EAAS,YAAAC,EAAa,YAAAC,EAAa,WAAAC,EAAY,GAAGC,CAAM,EAAGC,IAAQ,CAC3E,GAAM,CAAE,MAAAC,EAAO,aAAAC,EAAc,IAAAC,EAAK,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAK,EAAIP,EAC7D,CAACQ,EAAUC,CAAW,EAAIC,EAAmB,CAAC,CAAC,EAC/C,CAACC,EAAMC,CAAO,EAAIF,EAAS,EAAK,EAChCG,EAAeC,EAAuB,IAAI,EAEhDC,EAAU,IAAM,CACd,GAAI,CAACb,EAAO,OAAOO,EAAY,CAAC,CAAC,EACjCA,EAAY,MAAM,QAAQP,CAAK,EAAIA,EAAQ,CAACA,CAAK,CAAC,CACpD,EAAG,CAACA,CAAK,CAAC,EAEV,IAAMc,EAAa,IAAMJ,EAASK,GAAS,CAACA,CAAI,EAC1CC,EAAiBC,GACrBA,EAAM,MAAQ,UAAYP,EAAQ,EAAK,EACnCQ,EAAkB,CAACD,EAAsBjB,IAC7CiB,EAAM,MAAQ,SAAWE,EAAanB,CAAK,EAEvCoB,EAAad,GACf,IAAKe,GAAM3B,GAAS,KAAK,CAAC,CAAE,MAAAM,CAAM,IAAMA,IAAUqB,CAAC,CAAC,EACrD,OAAO,OAAO,EAEjB,SAASC,GAAe,CACtB,OAAI1B,EACKU,EACJ,IAAKiB,GAAM7B,GAAS,KAAM8B,GAAWA,EAAO,QAAUD,CAAC,GAAG,KAAK,EAC/D,KAAK,IAAI,EAEP7B,GAAS,KAAM8B,GAAWA,EAAO,QAAUlB,EAAS,KAAK,CAAC,GAAG,KACtE,CAEA,SAASmB,EAAmBC,EAAiB,EACvC,CAAC9B,GAAe8B,IAAQhB,EAAQgB,CAAM,CAC5C,CAEA,SAASP,EAAaQ,EAAkB,CACtC,IAAIC,EAAwB,CAAC,EAC7BrB,EAAaQ,IACXa,EAAcb,EAAK,SAASY,CAAQ,EAChCZ,EAAK,OAAQc,GAASA,IAASF,CAAQ,EACvC,CAAC,GAAGZ,EAAMY,CAAQ,EACf/B,EAAcgC,EAAc,CAACD,CAAQ,EAC7C,EACDvB,IAAWR,EAAcgC,EAAcD,CAAQ,CACjD,CAEA,OACE,oBAAC,OACC,UAAWG,EAAG,0BAA2B3B,CAAS,EAClD,IAAKQ,GAEL,oBAACoB,EAAA,CAAM,KAAMtC,EAAO,UAAWI,GAAY,MAAO,EAElD,oBAAiB,OAAhB,CACC,KAAMY,EACN,MAAOH,EAAS,KAAK,GAAG,EACxB,aAAcmB,EACd,cAAe7B,EAAc,OAAYuB,EACzC,aACE,OAAOlB,GAAiB,SAAWA,EAAe,OAEpD,IAAKC,IAAQ,MAAQ,MAAQ,MAC5B,GAAGG,GAEJ,oBAAiB,UAAhB,CACC,IAAKN,EACL,cAAa,GAAGN,EAAM,YAAY,CAAC,kBACnC,UAAU,uPAEV,oBAAC,QAAK,UAAU,YACd,oBAAiB,QAAhB,CACC,YAAaE,GAAe,mBAC5B,aAAY2B,EAAa,GAExBA,EAAa,CAChB,CACF,EAEA,oBAACU,EAAA,CACC,UAAU,0DACV,KAAK,KACP,CACF,EAEA,oBAAiB,SAAhB,CAAuB,UAAWrB,EAAa,SAC9C,oBAAiB,UAAhB,CACC,iBAAgB,GAChB,UAAU,qJACV,SAAS,SACT,WAAY,EACZ,qBAAsBG,EACtB,UAAWE,GAEX,oBAAiB,WAAhB,KACEpB,GAAe,CAAC,CAACwB,GAAY,QAC5B,oBAAiB,QAAhB,CACC,UAAU,0CACV,cAAY,mBAEXA,GAAY,IACVa,GACCA,GACE,oBAACC,EAAA,CAAK,IAAKD,EAAK,MAAO,KAAK,QAAQ,QAAQ,WAC1C,oBAAC,YAAMA,EAAK,KAAM,EAClB,oBAACE,EAAA,CACC,KAAM,GACN,cAAa,eAAeF,EAAK,KAAK,GACtC,UAAU,iBACV,QAAS,IAAMd,EAAac,EAAK,KAAK,EACxC,CACF,CAEN,CACF,EAEF,oBAACG,EAAA,IAAU,EACV1C,GAAS,IAAI,CAAC,CAAE,GAAA2C,EAAI,MAAAC,EAAO,MAAAtC,CAAM,IAChC,oBAAiB,OAAhB,CACC,IAAKqC,EACL,MAAOrC,EACP,UAAU,uNACV,aACEM,EAAS,SAASN,CAAK,EAAI,UAAY,YAEzC,UAAYuC,GAAMrB,EAAgBqB,EAAGvC,CAAK,EAC1C,QAAS,IAAMmB,EAAanB,CAAK,GAEjC,oBAAiB,WAAhB,KAA0BsC,CAAM,EACjC,oBAACE,EAAA,CACC,UAAU,iGACV,KAAM,GACR,CACF,CACD,CACH,CACF,CACF,CACF,CACF,CAEJ,CACF,EAEAjD,EAAO,YAAc,SAErB,IAAOkD,GAAQlD","names":["SelectPrimitive","CheckIcon","ChevronDownIcon","X","forwardRef","useEffect","useRef","useState","clsx","twMerge","cn","inputs","Label","text","className","props","cn","Label_default","cva","React","twMerge","Chip","className","variant","size","props","chipVariants","Chip_default","SeparatorPrimitive","React","Separator","className","orientation","decorative","props","ref","cn","Select","forwardRef","label","options","placeholder","multiselect","classNames","props","ref","value","defaultValue","dir","className","onChange","rest","selected","setSelected","useState","open","setOpen","containerRef","useRef","useEffect","toggleOpen","prev","closeOnEscape","event","setValueOnEnter","handleChange","chipLabels","s","handleLabels","o","option","handleOnOpenChange","isOpen","newValue","newSelected","item","cn","Label_default","ChevronDownIcon","chip","Chip_default","X","Separator","id","title","e","CheckIcon","Select_default"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";"use client";var Re=Object.create;var R=Object.defineProperty;var ke=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var we=Object.getPrototypeOf,De=Object.prototype.hasOwnProperty;var Se=(e,t)=>{for(var o in t)R(e,o,{get:t[o],enumerable:!0})},Y=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ne(t))!De.call(e,r)&&r!==o&&R(e,r,{get:()=>t[r],enumerable:!(i=ke(t,r))||i.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Re(we(e)):{},Y(t||!e||!e.__esModule?R(o,"default",{value:e,enumerable:!0}):o,e)),Te=e=>Y(R({},"__esModule",{value:!0}),e);var je={};Se(je,{default:()=>Fe});module.exports=Te(je);var G=require("react");var y=require("react"),pe=require("lucide-react"),ce=require("cva");var K=require("clsx"),J=require("tailwind-merge");function a(...e){return(0,J.twMerge)((0,K.clsx)(e))}var m=require("cmdk"),q=require("lucide-react"),n=f(require("react"));var s=f(require("@radix-ui/react-dialog")),U=require("lucide-react"),l=f(require("react"));var Ee=s.Portal;var X=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Overlay,{ref:o,className:a("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",e),...t}));X.displayName=s.Overlay.displayName;var $=l.forwardRef(({className:e,children:t,...o},i)=>l.createElement(Ee,null,l.createElement(X,null),l.createElement(s.Content,{ref:i,className:a("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",e),...o},t,l.createElement(s.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"},l.createElement(U.X,{className:"h-4 w-4"}),l.createElement("span",{className:"sr-only"},"Close")))));$.displayName=s.Content.displayName;var Ie=({className:e,...t})=>l.createElement("div",{className:a("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Ie.displayName="DialogHeader";var Le=({className:e,...t})=>l.createElement("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Le.displayName="DialogFooter";var We=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Title,{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));We.displayName=s.Title.displayName;var _e=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Description,{ref:o,className:a("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));_e.displayName=s.Description.displayName;var I=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command,{ref:o,className:a("flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",e),...t}));I.displayName=m.Command.displayName;var L=n.forwardRef(({className:e,...t},o)=>n.createElement("div",{className:"m-1 flex items-center rounded-lg border px-3","cmdk-input-wrapper":""},n.createElement(q.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),n.createElement(m.Command.Input,{ref:o,className:a("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",e),...t})));L.displayName=m.Command.Input.displayName;var W=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.List,{ref:o,className:a("overflow-y-auto overflow-x-hidden",e),...t}));W.displayName=m.Command.List.displayName;var _=n.forwardRef((e,t)=>n.createElement(m.Command.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));_.displayName=m.Command.Empty.displayName;var H=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.Group,{ref:o,className:a("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",e),...t}));H.displayName=m.Command.Group.displayName;var He=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.Separator,{ref:o,className:a("-mx-1 h-px bg-neutral-200",e),...t}));He.displayName=m.Command.Separator.displayName;var B=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.Item,{ref:o,className:a("relative flex cursor-default select-none items-center rounded-sm 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",e),...t}));B.displayName=m.Command.Item.displayName;var Be=({className:e,...t})=>n.createElement("span",{className:a("ml-auto text-xs tracking-widest text-neutral-500",e),...t});Be.displayName="CommandShortcut";var C=f(require("react")),u=f(require("@radix-ui/react-popover"));var Q=u.Root,Z=u.Trigger,M=C.forwardRef(({className:e,align:t="center",sideOffset:o=4,...i},r)=>C.createElement(u.Portal,null,C.createElement(u.Content,{ref:r,align:t,sideOffset:o,className:a("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground 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",e),...i})));M.displayName=u.Content.displayName;var A=f(require("@radix-ui/react-separator")),k=f(require("react"));var z=k.forwardRef(({className:e,orientation:t="horizontal",decorative:o=!0,...i},r)=>k.createElement(A.Root,{ref:r,decorative:o,orientation:t,className:a("shrink-0 bg-grey-10",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...i}));z.displayName=A.Root.displayName;var ae=require("lucide-react");var P=f(require("@radix-ui/react-checkbox")),N=require("lucide-react"),V=require("react");var ee=(0,V.forwardRef)(({className:e,...t},o)=>React.createElement(P.Root,{ref:o,className:a("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",t.disabled&&"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",e),...t},React.createElement(P.Indicator,{className:"flex items-center justify-center text-current"},React.createElement(N.Check,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),React.createElement(N.Minus,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"}))));ee.displayName=P.Root.displayName;var te=(0,V.forwardRef)(({classNames:e,children:t,...o},i)=>{let{disabled:r}=o,p=o.id??`${o.name??o.value?.toString()}-checkbox`,d=r?"text-grey-40 pointer-events-none":"";return React.createElement("div",{className:a("flex space-x-2",e?.wrapper)},React.createElement(ee,{id:p,disabled:r,ref:i,...o}),React.createElement("label",{htmlFor:p,className:a(d,e?.label)},t))});te.displayName="Checkbox";var oe=te;var O=require("lucide-react");function Me({icon:e,hasCheckbox:t,isSelected:o,className:i,title:r,value:p,description:d,...g}){let v=e?(x=>{if(x in O.icons){let S=O.icons[x];return React.createElement(S,{size:14})}return null})(e):void 0;return React.createElement("li",{className:a("group relative text-left flex w-72 flex-row items-center text-sm cursor-pointer",i),...g,"data-state":o?"checked":"unchecked"},v&&React.createElement("span",{className:"mr-2"},v),t&&React.createElement(oe,{id:p,checked:o,onClick:x=>x.preventDefault()}),React.createElement("div",null,React.createElement("p",null,r),React.createElement("p",{className:"text-xs text-grey-80"},d)),React.createElement(ae.CheckIcon,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16}))}var ie=Me;var re=require("cva"),ne=f(require("react"));var Ae=(0,re.cva)("rounded-full px-2 py-0.5 text-xs font-semibold",{variants:{variant:{green:"bg-green-90 text-white",pickle:"bg-pickle-100 text-black",purple:"bg-purple-100 text-white"}},defaultVariants:{variant:"green"}});function se({className:e,variant:t,...o}){return ne.createElement("div",{className:a(Ae({variant:t}),e),...o})}var le=require("@radix-ui/react-slot"),me=require("cva"),w=f(require("react")),D=(0,w.forwardRef)(({className:e,variant:t,size:o,asChild:i=!1,...r},p)=>w.default.createElement(i?le.Slot:"button",{className:a(ze({variant:t,size:o,className:e})),ref:p,...r}));D.displayName="Button";var ze=(0,me.cva)(["flex","items-center","justify-center","gap-2","rounded-full","font-bold","outline-2","outline-offset-2","outline-dashed","outline-transparent"],{variants:{variant:{neutral:["bg-black","text-white","hover:bg-grey-90","active:bg-grey-80","focus:outline-purple-100","disabled:text-grey-40","disabled:bg-grey-10"],primary:["bg-pickle-100","text-black","hover:bg-pickle-80","active:bg-pickle-60","focus:outline-purple-100","disabled:text-grey-40","disabled:bg-grey-10"],secondary:["bg-green-80","text-white","hover:bg-green-90","active:bg-green-100","focus:outline-pickle-100","disabled:text-grey-40","disabled:bg-grey-10"],transparent:["text-white","hover:bg-green-80","active:bg-green-100","focus:outline-pickle-100","disabled:text-grey-40"],link:["leading-tight","text-black","underline","hover:text-purple-100","focus:text-black","focus:outline-purple-100","active:text-purple-80"]},size:{small:["h-10","text-sm","px-4","py-2"],medium:["h-12","text-base","px-6","py-3"],large:["h-14","text-lg","px-8","py-4"]}},defaultVariants:{variant:"neutral",size:"medium"},compoundVariants:[{variant:"link",size:"small",class:["h-3","text-xs","p-0"]},{variant:"link",size:"medium",class:["h-4","text-sm","p-0"]},{variant:"link",size:"large",class:["h-6","text-base","p-0"]}]});function Ve({text:e,className:t,...o}){return e?React.createElement("label",{className:a("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o},e):null}var de=Ve;function fe(e){let{onChange:t,value:o}=e,[i,r]=(0,y.useState)(o??"");return(0,y.useEffect)(()=>t(i),[t,i]),React.createElement(ge,{...e,value:i,handler:d=>r(d===i?"":d),badgeCount:i?1:0})}function ue(e){let{onChange:t,onApply:o,value:i}=e,[r,p]=(0,y.useState)(i??[]);(0,y.useEffect)(()=>t(r),[t,r]);let d=h=>p(v=>v.includes(h)?v.filter(x=>x!==h):[...v,h]),g=()=>p([]);return React.createElement(ge,{...e,value:r,handler:d,isMultiselect:!0,badgeCount:r.length,onClear:g,onApply:o})}function ge({title:e,label:t,options:o,isMultiselect:i,variant:r,hideSearch:p,className:d,classNames:g,onApply:h,onClear:v,applyBtnText:x,clearBtnText:S,value:T,badgeCount:F,handler:ve}){let[j,E]=(0,y.useState)(!1),xe=p??o?.length<=5,be=b=>{ve?.(b),i||E(!1)},ye=()=>{E(!1),h?.()};return React.createElement("div",{className:a("flex flex-col",d)},t&&React.createElement(de,{text:t,className:g?.label}),React.createElement(Q,{open:j,onOpenChange:E},React.createElement(Z,{asChild:!0},React.createElement("div",{className:a(Oe({variant:r}),g?.trigger),"aria-expanded":j},!!F&&React.createElement(se,{variant:"purple",className:"pt-1"},F),React.createElement("span",{className:"truncate leading-normal"},e),React.createElement(pe.ChevronDownIcon,{className:"transform group-data-[state=open]:rotate-180",size:"16"}))),React.createElement(M,{className:a(g?.content,"p-0 ml-5"),sideOffset:4},React.createElement(I,null,!xe&&React.createElement(L,{placeholder:"Search..."}),React.createElement(W,null,React.createElement(_,null,"No results"),React.createElement(H,null,o.map(({value:b,title:he,description:Ce,icon:Pe})=>React.createElement(B,{key:b,value:b,onSelect:be},React.createElement(ie,{className:a(g?.items,"py-1","truncate"),title:he,value:b,isSelected:Array.isArray(T)&&T.includes(b)||T===b,icon:Pe,description:Ce,hasCheckbox:i})))))),React.createElement(z,null),i&&React.createElement("div",{className:"flex flex-row justify-between items-center p-4"},React.createElement(D,{variant:"link",onClick:v},S??"Clear"),React.createElement(D,{variant:"primary",onClick:ye},x??"Apply")))))}var Oe=(0,ce.cva)(["group relative cursor-pointer flex flex-row items-center justify-between gap-2 rounded-3xl border border-grey-20 h-9 pl-3 pr-2 py-2 text-sm font-bold focus:outline-green-80 disabled:bg-grey-5"],{variants:{variant:{default:["data-[state=open]:bg-black","data-[state=open]:text-white"]}},defaultVariants:{variant:"default"}});function Ge(){let[e,t]=(0,G.useState)([]),[o,i]=(0,G.useState)("");return React.createElement("div",{className:"p-4 flex flex-row flex-wrap gap-4 items-center"},React.createElement(ue,{title:"US bands from the 90's",options:[{title:"Nirvana",value:"Nirvana",description:"Come As You Are",id:1},{title:"Pearl Jam",value:"Pearl Jam",description:"Jeremy",id:2},{title:"Soundgarden",value:"Soundgarden",description:"Rusty Cage",id:3},{title:"Alice in Chains",value:"Alice in Chains",description:"Would?",id:4},{title:"Stone Temple Pilots",value:"Stone Temple Pilots",id:5},{title:"Hole",value:"Hole",id:6},{title:"Mudhoney",value:"Mudhoney",id:7},{title:"Screaming Trees",value:"Screaming Trees",id:8},{title:"L7",value:"L7",id:9},{title:"Sonic Youth",value:"Sonic Youth",id:10},{title:"And You Will Know Us by the Trail of Dead",value:"And You Will Know Us by the Trail of Dead",id:11}],onChange:t,value:e}),React.createElement(fe,{title:"Fruit",options:[{title:"Cherry",value:"Cherry",id:1,icon:"Cherry"},{title:"Grape",value:"Grape",id:2,icon:"Grape"}],value:o,onChange:i,classNames:{content:"w-32"}}),e.map(d=>React.createElement("span",{key:d,className:"text-green-80"},d)),React.createElement("span",{className:"text-purple-100"},o))}var Fe=Ge;
|
|
2
|
+
//# sourceMappingURL=ComboboxDemo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/demos/ComboboxDemo.tsx","../../src/components/ui/Combobox.tsx","../../src/components/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/Button.tsx","../../src/components/ui/Label.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { ComboboxMulti, ComboboxSingle } from \"@/components/ui/Combobox\";\n\nfunction ComboboxDemo() {\n const [selectedBands, setSelectedBands] = useState<string[]>([]);\n const [selectedFruit, setSelectedFruit] = useState<string>(\"\");\n\n const bands = [\n {\n title: \"Nirvana\",\n value: \"Nirvana\",\n description: \"Come As You Are\",\n id: 1,\n },\n { title: \"Pearl Jam\", value: \"Pearl Jam\", description: \"Jeremy\", id: 2 },\n {\n title: \"Soundgarden\",\n value: \"Soundgarden\",\n description: \"Rusty Cage\",\n id: 3,\n },\n {\n title: \"Alice in Chains\",\n value: \"Alice in Chains\",\n description: \"Would?\",\n id: 4,\n },\n { title: \"Stone Temple Pilots\", value: \"Stone Temple Pilots\", id: 5 },\n { title: \"Hole\", value: \"Hole\", id: 6 },\n { title: \"Mudhoney\", value: \"Mudhoney\", id: 7 },\n { title: \"Screaming Trees\", value: \"Screaming Trees\", id: 8 },\n { title: \"L7\", value: \"L7\", id: 9 },\n { title: \"Sonic Youth\", value: \"Sonic Youth\", id: 10 },\n {\n title: \"And You Will Know Us by the Trail of Dead\",\n value: \"And You Will Know Us by the Trail of Dead\",\n id: 11,\n },\n ];\n\n const fruits = [\n { title: \"Cherry\", value: \"Cherry\", id: 1, icon: \"Cherry\" },\n { title: \"Grape\", value: \"Grape\", id: 2, icon: \"Grape\" },\n ];\n\n return (\n <div className=\"p-4 flex flex-row flex-wrap gap-4 items-center\">\n <ComboboxMulti\n title=\"US bands from the 90's\"\n options={bands}\n onChange={setSelectedBands}\n value={selectedBands}\n />\n <ComboboxSingle\n title=\"Fruit\"\n options={fruits}\n value={selectedFruit}\n onChange={setSelectedFruit}\n classNames={{content: 'w-32'}}\n />\n {selectedBands.map((band) => (\n <span key={band} className=\"text-green-80\">\n {band}\n </span>\n ))}\n <span className=\"text-purple-100\">{selectedFruit}</span>\n </div>\n );\n}\n\nexport default ComboboxDemo;\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cva, type VariantProps } from \"cva\";\nimport { cn } from \"@/components/lib/utils\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/primitives/command\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/primitives/popover\";\nimport { Separator } from \"@/components/primitives/separator\";\n\nimport ListItem from \"@/components/ui/ListItem\";\nimport { Badge } from \"@/components/ui/Badge\";\nimport { Button } from \"@/components/ui/Button\";\nimport Label from \"@/components/ui/Label\";\n\ntype Option = {\n id: string | number;\n value: string;\n title: string;\n description?: string;\n icon?: string;\n};\n\ntype ComboboxClassNames = {\n label?: string;\n trigger?: string;\n items?: string;\n content?: string;\n};\n\ninterface ComboboxProps extends VariantProps<typeof triggerVariants> {\n label?: string;\n options: Option[];\n title: string;\n placeholder?: string;\n hideSearch?: boolean;\n onClear?: () => void;\n clearBtnText?: string;\n onApply?: () => void;\n applyBtnText?: string;\n className?: string;\n classNames?: ComboboxClassNames;\n value?: string | string[];\n}\n\ninterface ComboboxSingleProps extends ComboboxProps {\n onChange: (value: string) => void;\n}\n\ninterface ComboboxMultiProps extends ComboboxProps {\n onChange: (value: string[]) => void;\n}\n\nfunction ComboboxSingle(props: ComboboxSingleProps) {\n const { onChange, value } = props;\n const [currentValue, setCurrentValue] = useState<string>(\n (value as string) ?? \"\"\n );\n\n useEffect(() => onChange(currentValue), [onChange, currentValue]);\n\n const singleHandler = (newValue: string) =>\n setCurrentValue(newValue === currentValue ? \"\" : newValue);\n\n return (\n <Combobox\n {...props}\n value={currentValue}\n handler={singleHandler}\n badgeCount={!!currentValue ? 1 : 0}\n />\n );\n}\n\nfunction ComboboxMulti(props: ComboboxMultiProps) {\n const { onChange, onApply, value } = props;\n const [currentValues, setCurrentValues] = useState<string[]>(\n (value as string[]) ?? []\n );\n\n useEffect(() => onChange(currentValues), [onChange, currentValues]);\n\n const multiHandler = (newValue: string) =>\n setCurrentValues((prev) =>\n prev.includes(newValue)\n ? prev.filter((v) => v !== newValue)\n : [...prev, newValue]\n );\n\n const onClearHandler = () => setCurrentValues([]);\n\n return (\n <Combobox\n {...props}\n value={currentValues}\n handler={multiHandler}\n isMultiselect\n badgeCount={currentValues.length}\n onClear={onClearHandler}\n onApply={onApply}\n />\n );\n}\n\ninterface ComboboxComponentProps extends ComboboxProps {\n handler: (value: string) => void;\n isMultiselect?: boolean;\n badgeCount?: number;\n}\n\nfunction Combobox({\n title,\n label,\n options,\n isMultiselect,\n variant,\n hideSearch,\n className,\n classNames,\n onApply,\n onClear,\n applyBtnText,\n clearBtnText,\n value,\n badgeCount,\n handler,\n}: ComboboxComponentProps) {\n const [open, setOpen] = useState(false);\n\n const hideSearchBox = hideSearch ?? options?.length <= 5;\n\n const clickHandler = (option: string) => {\n handler?.(option);\n if (!isMultiselect) setOpen(false);\n };\n\n const onApplyHandler = () => {\n setOpen(false);\n onApply?.();\n };\n\n return (\n <div className={cn(\"flex flex-col\", className)}>\n {label && <Label text={label} className={classNames?.label} />}\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <div\n className={cn(triggerVariants({ variant }), classNames?.trigger)}\n aria-expanded={open}\n >\n {!!badgeCount && (\n <Badge variant=\"purple\" className=\"pt-1\">\n {badgeCount}\n </Badge>\n )}\n <span className=\"truncate leading-normal\">{title}</span>\n <ChevronDownIcon\n className=\"transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n </div>\n </PopoverTrigger>\n <PopoverContent\n className={cn(classNames?.content, \"p-0 ml-5\")}\n sideOffset={4}\n >\n <Command>\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(\n ({ value: optionValue, title, description, icon }) => (\n <CommandItem\n key={optionValue}\n value={optionValue}\n onSelect={clickHandler}\n >\n <ListItem\n className={cn(classNames?.items, \"py-1\", \"truncate\")}\n title={title}\n value={optionValue}\n isSelected={\n (Array.isArray(value) &&\n value.includes(optionValue)) ||\n value === optionValue\n }\n icon={icon}\n description={description}\n hasCheckbox={isMultiselect}\n />\n </CommandItem>\n )\n )}\n </CommandGroup>\n </CommandList>\n </Command>\n <Separator />\n {isMultiselect && (\n <div className=\"flex flex-row justify-between items-center p-4\">\n <Button variant=\"link\" onClick={onClear}>\n {clearBtnText ?? \"Clear\"}\n </Button>\n <Button variant=\"primary\" onClick={onApplyHandler}>\n {applyBtnText ?? \"Apply\"}\n </Button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n\nconst triggerVariants = cva(\n [\n \"group relative cursor-pointer flex flex-row items-center justify-between gap-2 rounded-3xl border border-grey-20 h-9 pl-3 pr-2 py-2 text-sm font-bold focus:outline-green-80 disabled:bg-grey-5\",\n ],\n {\n variants: {\n variant: {\n default: [\"data-[state=open]:bg-black\", \"data-[state=open]:text-white\"],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport { ComboboxSingle, ComboboxMulti };\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 \"@/components/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\n className=\"m-1 flex items-center rounded-lg border px-3\"\n cmdk-input-wrapper=\"\"\n >\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\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\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-default select-none items-center rounded-sm 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 = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-neutral-500\",\n className\n )}\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 \"@/components/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 = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\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(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\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 \"@/components/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 w-72 rounded-md border bg-popover p-4 text-popover-foreground 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 \"@/components/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>(\r\n (\r\n { className, orientation = \"horizontal\", decorative = true, ...props },\r\n ref\r\n ) => (\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\n);\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\r\n\r\nexport { Separator };\r\n","import { cn } from \"@/components/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 text-left flex w-72 flex-row items-center text-sm cursor-pointer\",\n className\n )}\n {...props}\n data-state={isSelected ? \"checked\" : \"unchecked\"}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox\n id={value}\n checked={isSelected}\n onClick={(e) => e.preventDefault()}\n />\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 \"@/components/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 \"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground\",\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 \"@/components/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 (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import { cn } from \"@/components/lib/utils\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"cva\";\nimport React, { forwardRef } from \"react\";\n\ninterface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nButton.displayName = \"Button\";\n\nconst buttonVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"justify-center\",\n \"gap-2\",\n \"rounded-full\",\n \"font-bold\",\n \"outline-2\",\n \"outline-offset-2\",\n \"outline-dashed\",\n \"outline-transparent\",\n ],\n {\n variants: {\n variant: {\n neutral: [\n \"bg-black\",\n \"text-white\",\n \"hover:bg-grey-90\",\n \"active:bg-grey-80\",\n \"focus:outline-purple-100\",\n \"disabled:text-grey-40\",\n \"disabled:bg-grey-10\",\n ],\n primary: [\n \"bg-pickle-100\",\n \"text-black\",\n \"hover:bg-pickle-80\",\n \"active:bg-pickle-60\",\n \"focus:outline-purple-100\",\n \"disabled:text-grey-40\",\n \"disabled:bg-grey-10\",\n ],\n secondary: [\n \"bg-green-80\",\n \"text-white\",\n \"hover:bg-green-90\",\n \"active:bg-green-100\",\n \"focus:outline-pickle-100\",\n \"disabled:text-grey-40\",\n \"disabled:bg-grey-10\",\n ],\n transparent: [\n \"text-white\",\n \"hover:bg-green-80\",\n \"active:bg-green-100\",\n \"focus:outline-pickle-100\",\n \"disabled:text-grey-40\",\n ],\n link: [\n \"leading-tight\",\n \"text-black\",\n \"underline\",\n \"hover:text-purple-100\",\n \"focus:text-black\",\n \"focus:outline-purple-100\",\n \"active:text-purple-80\",\n ],\n },\n size: {\n small: [\"h-10\", \"text-sm\", \"px-4\", \"py-2\"],\n medium: [\"h-12\", \"text-base\", \"px-6\", \"py-3\"],\n large: [\"h-14\", \"text-lg\", \"px-8\", \"py-4\"],\n },\n },\n defaultVariants: {\n variant: \"neutral\",\n size: \"medium\",\n },\n compoundVariants: [\n {\n variant: \"link\",\n size: \"small\",\n class: [\"h-3\", \"text-xs\", \"p-0\"],\n },\n {\n variant: \"link\",\n size: \"medium\",\n class: [\"h-4\", \"text-sm\", \"p-0\"],\n },\n {\n variant: \"link\",\n size: \"large\",\n class: [\"h-6\", \"text-base\", \"p-0\"],\n },\n ],\n }\n);\n","import { type ComponentPropsWithoutRef } from \"react\";\n\nimport { cn } from \"@/components/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":["ComboboxDemo_exports","__export","ComboboxDemo_default","__toCommonJS","import_react","import_react","import_lucide_react","import_cva","import_clsx","import_tailwind_merge","cn","inputs","import_cmdk","import_lucide_react","React","DialogPrimitive","import_lucide_react","React","DialogPortal","DialogOverlay","className","props","ref","cn","DialogContent","children","DialogPortal","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Command","className","props","ref","CommandPrimitive","cn","CommandInput","className","props","ref","CommandPrimitive","cn","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","React","PopoverPrimitive","Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","cn","SeparatorPrimitive","React","Separator","className","orientation","decorative","props","ref","cn","import_lucide_react","CheckboxPrimitive","import_lucide_react","import_react","CheckboxToggle","className","props","ref","cn","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","import_lucide_react","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","ListItem_default","import_cva","React","badgeVariants","Badge","className","variant","props","cn","import_react_slot","import_cva","import_react","Button","className","variant","size","asChild","props","ref","React","cn","buttonVariants","Label","text","className","props","cn","Label_default","ComboboxSingle","props","onChange","value","currentValue","setCurrentValue","Combobox","newValue","ComboboxMulti","onApply","currentValues","setCurrentValues","multiHandler","prev","v","onClearHandler","title","label","options","isMultiselect","variant","hideSearch","className","classNames","onClear","applyBtnText","clearBtnText","badgeCount","handler","open","setOpen","hideSearchBox","clickHandler","option","onApplyHandler","cn","Label_default","Popover","PopoverTrigger","triggerVariants","Badge","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","optionValue","description","icon","CommandItem","ListItem_default","Separator","Button","ComboboxDemo","selectedBands","setSelectedBands","selectedFruit","setSelectedFruit","ComboboxMulti","ComboboxSingle","band","ComboboxDemo_default"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{useState as oe}from"react";import{useEffect as Q,useState as B}from"react";import{ChevronDownIcon as We}from"lucide-react";import{cva as _e}from"cva";import{clsx as de}from"clsx";import{twMerge as pe}from"tailwind-merge";function a(...e){return pe(de(e))}import{Command as d}from"cmdk";import{Search as be}from"lucide-react";import*as n from"react";import*as s from"@radix-ui/react-dialog";import{X as ce}from"lucide-react";import*as l from"react";var fe=s.Portal;var z=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Overlay,{ref:o,className:a("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",e),...t}));z.displayName=s.Overlay.displayName;var V=l.forwardRef(({className:e,children:t,...o},i)=>l.createElement(fe,null,l.createElement(z,null),l.createElement(s.Content,{ref:i,className:a("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",e),...o},t,l.createElement(s.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"},l.createElement(ce,{className:"h-4 w-4"}),l.createElement("span",{className:"sr-only"},"Close")))));V.displayName=s.Content.displayName;var ue=({className:e,...t})=>l.createElement("div",{className:a("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});ue.displayName="DialogHeader";var ge=({className:e,...t})=>l.createElement("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});ge.displayName="DialogFooter";var ve=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Title,{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));ve.displayName=s.Title.displayName;var xe=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Description,{ref:o,className:a("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));xe.displayName=s.Description.displayName;var D=n.forwardRef(({className:e,...t},o)=>n.createElement(d,{ref:o,className:a("flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",e),...t}));D.displayName=d.displayName;var S=n.forwardRef(({className:e,...t},o)=>n.createElement("div",{className:"m-1 flex items-center rounded-lg border px-3","cmdk-input-wrapper":""},n.createElement(be,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),n.createElement(d.Input,{ref:o,className:a("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",e),...t})));S.displayName=d.Input.displayName;var T=n.forwardRef(({className:e,...t},o)=>n.createElement(d.List,{ref:o,className:a("overflow-y-auto overflow-x-hidden",e),...t}));T.displayName=d.List.displayName;var E=n.forwardRef((e,t)=>n.createElement(d.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));E.displayName=d.Empty.displayName;var I=n.forwardRef(({className:e,...t},o)=>n.createElement(d.Group,{ref:o,className:a("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",e),...t}));I.displayName=d.Group.displayName;var ye=n.forwardRef(({className:e,...t},o)=>n.createElement(d.Separator,{ref:o,className:a("-mx-1 h-px bg-neutral-200",e),...t}));ye.displayName=d.Separator.displayName;var L=n.forwardRef(({className:e,...t},o)=>n.createElement(d.Item,{ref:o,className:a("relative flex cursor-default select-none items-center rounded-sm 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",e),...t}));L.displayName=d.Item.displayName;var he=({className:e,...t})=>n.createElement("span",{className:a("ml-auto text-xs tracking-widest text-neutral-500",e),...t});he.displayName="CommandShortcut";import*as h from"react";import*as u from"@radix-ui/react-popover";var O=u.Root,G=u.Trigger,W=h.forwardRef(({className:e,align:t="center",sideOffset:o=4,...i},r)=>h.createElement(u.Portal,null,h.createElement(u.Content,{ref:r,align:t,sideOffset:o,className:a("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground 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",e),...i})));W.displayName=u.Content.displayName;import*as _ from"@radix-ui/react-separator";import*as P from"react";var H=P.forwardRef(({className:e,orientation:t="horizontal",decorative:o=!0,...i},r)=>P.createElement(_.Root,{ref:r,decorative:o,orientation:t,className:a("shrink-0 bg-grey-10",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...i}));H.displayName=_.Root.displayName;import{CheckIcon as Re}from"lucide-react";import*as C from"@radix-ui/react-checkbox";import{Check as Ce,Minus as Pe}from"lucide-react";import{forwardRef as F}from"react";var j=F(({className:e,...t},o)=>React.createElement(C.Root,{ref:o,className:a("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",t.disabled&&"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",e),...t},React.createElement(C.Indicator,{className:"flex items-center justify-center text-current"},React.createElement(Ce,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),React.createElement(Pe,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"}))));j.displayName=C.Root.displayName;var Y=F(({classNames:e,children:t,...o},i)=>{let{disabled:r}=o,p=o.id??`${o.name??o.value?.toString()}-checkbox`,m=r?"text-grey-40 pointer-events-none":"";return React.createElement("div",{className:a("flex space-x-2",e?.wrapper)},React.createElement(j,{id:p,disabled:r,ref:i,...o}),React.createElement("label",{htmlFor:p,className:a(m,e?.label)},t))});Y.displayName="Checkbox";var K=Y;import{icons as J}from"lucide-react";function ke({icon:e,hasCheckbox:t,isSelected:o,className:i,title:r,value:p,description:m,...g}){let v=e?(x=>{if(x in J){let k=J[x];return React.createElement(k,{size:14})}return null})(e):void 0;return React.createElement("li",{className:a("group relative text-left flex w-72 flex-row items-center text-sm cursor-pointer",i),...g,"data-state":o?"checked":"unchecked"},v&&React.createElement("span",{className:"mr-2"},v),t&&React.createElement(K,{id:p,checked:o,onClick:x=>x.preventDefault()}),React.createElement("div",null,React.createElement("p",null,r),React.createElement("p",{className:"text-xs text-grey-80"},m)),React.createElement(Re,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16}))}var U=ke;import{cva as Ne}from"cva";import*as X from"react";var we=Ne("rounded-full px-2 py-0.5 text-xs font-semibold",{variants:{variant:{green:"bg-green-90 text-white",pickle:"bg-pickle-100 text-black",purple:"bg-purple-100 text-white"}},defaultVariants:{variant:"green"}});function $({className:e,variant:t,...o}){return X.createElement("div",{className:a(we({variant:t}),e),...o})}import{Slot as De}from"@radix-ui/react-slot";import{cva as Se}from"cva";import Te,{forwardRef as Ee}from"react";var R=Ee(({className:e,variant:t,size:o,asChild:i=!1,...r},p)=>Te.createElement(i?De:"button",{className:a(Ie({variant:t,size:o,className:e})),ref:p,...r}));R.displayName="Button";var Ie=Se(["flex","items-center","justify-center","gap-2","rounded-full","font-bold","outline-2","outline-offset-2","outline-dashed","outline-transparent"],{variants:{variant:{neutral:["bg-black","text-white","hover:bg-grey-90","active:bg-grey-80","focus:outline-purple-100","disabled:text-grey-40","disabled:bg-grey-10"],primary:["bg-pickle-100","text-black","hover:bg-pickle-80","active:bg-pickle-60","focus:outline-purple-100","disabled:text-grey-40","disabled:bg-grey-10"],secondary:["bg-green-80","text-white","hover:bg-green-90","active:bg-green-100","focus:outline-pickle-100","disabled:text-grey-40","disabled:bg-grey-10"],transparent:["text-white","hover:bg-green-80","active:bg-green-100","focus:outline-pickle-100","disabled:text-grey-40"],link:["leading-tight","text-black","underline","hover:text-purple-100","focus:text-black","focus:outline-purple-100","active:text-purple-80"]},size:{small:["h-10","text-sm","px-4","py-2"],medium:["h-12","text-base","px-6","py-3"],large:["h-14","text-lg","px-8","py-4"]}},defaultVariants:{variant:"neutral",size:"medium"},compoundVariants:[{variant:"link",size:"small",class:["h-3","text-xs","p-0"]},{variant:"link",size:"medium",class:["h-4","text-sm","p-0"]},{variant:"link",size:"large",class:["h-6","text-base","p-0"]}]});function Le({text:e,className:t,...o}){return e?React.createElement("label",{className:a("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o},e):null}var q=Le;function Z(e){let{onChange:t,value:o}=e,[i,r]=B(o??"");return Q(()=>t(i),[t,i]),React.createElement(te,{...e,value:i,handler:m=>r(m===i?"":m),badgeCount:i?1:0})}function ee(e){let{onChange:t,onApply:o,value:i}=e,[r,p]=B(i??[]);Q(()=>t(r),[t,r]);let m=y=>p(v=>v.includes(y)?v.filter(x=>x!==y):[...v,y]),g=()=>p([]);return React.createElement(te,{...e,value:r,handler:m,isMultiselect:!0,badgeCount:r.length,onClear:g,onApply:o})}function te({title:e,label:t,options:o,isMultiselect:i,variant:r,hideSearch:p,className:m,classNames:g,onApply:y,onClear:v,applyBtnText:x,clearBtnText:k,value:N,badgeCount:M,handler:ae}){let[A,w]=B(!1),ie=p??o?.length<=5,re=b=>{ae?.(b),i||w(!1)},ne=()=>{w(!1),y?.()};return React.createElement("div",{className:a("flex flex-col",m)},t&&React.createElement(q,{text:t,className:g?.label}),React.createElement(O,{open:A,onOpenChange:w},React.createElement(G,{asChild:!0},React.createElement("div",{className:a(He({variant:r}),g?.trigger),"aria-expanded":A},!!M&&React.createElement($,{variant:"purple",className:"pt-1"},M),React.createElement("span",{className:"truncate leading-normal"},e),React.createElement(We,{className:"transform group-data-[state=open]:rotate-180",size:"16"}))),React.createElement(W,{className:a(g?.content,"p-0 ml-5"),sideOffset:4},React.createElement(D,null,!ie&&React.createElement(S,{placeholder:"Search..."}),React.createElement(T,null,React.createElement(E,null,"No results"),React.createElement(I,null,o.map(({value:b,title:se,description:le,icon:me})=>React.createElement(L,{key:b,value:b,onSelect:re},React.createElement(U,{className:a(g?.items,"py-1","truncate"),title:se,value:b,isSelected:Array.isArray(N)&&N.includes(b)||N===b,icon:me,description:le,hasCheckbox:i})))))),React.createElement(H,null),i&&React.createElement("div",{className:"flex flex-row justify-between items-center p-4"},React.createElement(R,{variant:"link",onClick:v},k??"Clear"),React.createElement(R,{variant:"primary",onClick:ne},x??"Apply")))))}var He=_e(["group relative cursor-pointer flex flex-row items-center justify-between gap-2 rounded-3xl border border-grey-20 h-9 pl-3 pr-2 py-2 text-sm font-bold focus:outline-green-80 disabled:bg-grey-5"],{variants:{variant:{default:["data-[state=open]:bg-black","data-[state=open]:text-white"]}},defaultVariants:{variant:"default"}});function Be(){let[e,t]=oe([]),[o,i]=oe("");return React.createElement("div",{className:"p-4 flex flex-row flex-wrap gap-4 items-center"},React.createElement(ee,{title:"US bands from the 90's",options:[{title:"Nirvana",value:"Nirvana",description:"Come As You Are",id:1},{title:"Pearl Jam",value:"Pearl Jam",description:"Jeremy",id:2},{title:"Soundgarden",value:"Soundgarden",description:"Rusty Cage",id:3},{title:"Alice in Chains",value:"Alice in Chains",description:"Would?",id:4},{title:"Stone Temple Pilots",value:"Stone Temple Pilots",id:5},{title:"Hole",value:"Hole",id:6},{title:"Mudhoney",value:"Mudhoney",id:7},{title:"Screaming Trees",value:"Screaming Trees",id:8},{title:"L7",value:"L7",id:9},{title:"Sonic Youth",value:"Sonic Youth",id:10},{title:"And You Will Know Us by the Trail of Dead",value:"And You Will Know Us by the Trail of Dead",id:11}],onChange:t,value:e}),React.createElement(Z,{title:"Fruit",options:[{title:"Cherry",value:"Cherry",id:1,icon:"Cherry"},{title:"Grape",value:"Grape",id:2,icon:"Grape"}],value:o,onChange:i,classNames:{content:"w-32"}}),e.map(m=>React.createElement("span",{key:m,className:"text-green-80"},m)),React.createElement("span",{className:"text-purple-100"},o))}var Ft=Be;export{Ft as default};
|
|
2
|
+
//# sourceMappingURL=ComboboxDemo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/demos/ComboboxDemo.tsx","../../src/components/ui/Combobox.tsx","../../src/components/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/Button.tsx","../../src/components/ui/Label.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { ComboboxMulti, ComboboxSingle } from \"@/components/ui/Combobox\";\n\nfunction ComboboxDemo() {\n const [selectedBands, setSelectedBands] = useState<string[]>([]);\n const [selectedFruit, setSelectedFruit] = useState<string>(\"\");\n\n const bands = [\n {\n title: \"Nirvana\",\n value: \"Nirvana\",\n description: \"Come As You Are\",\n id: 1,\n },\n { title: \"Pearl Jam\", value: \"Pearl Jam\", description: \"Jeremy\", id: 2 },\n {\n title: \"Soundgarden\",\n value: \"Soundgarden\",\n description: \"Rusty Cage\",\n id: 3,\n },\n {\n title: \"Alice in Chains\",\n value: \"Alice in Chains\",\n description: \"Would?\",\n id: 4,\n },\n { title: \"Stone Temple Pilots\", value: \"Stone Temple Pilots\", id: 5 },\n { title: \"Hole\", value: \"Hole\", id: 6 },\n { title: \"Mudhoney\", value: \"Mudhoney\", id: 7 },\n { title: \"Screaming Trees\", value: \"Screaming Trees\", id: 8 },\n { title: \"L7\", value: \"L7\", id: 9 },\n { title: \"Sonic Youth\", value: \"Sonic Youth\", id: 10 },\n {\n title: \"And You Will Know Us by the Trail of Dead\",\n value: \"And You Will Know Us by the Trail of Dead\",\n id: 11,\n },\n ];\n\n const fruits = [\n { title: \"Cherry\", value: \"Cherry\", id: 1, icon: \"Cherry\" },\n { title: \"Grape\", value: \"Grape\", id: 2, icon: \"Grape\" },\n ];\n\n return (\n <div className=\"p-4 flex flex-row flex-wrap gap-4 items-center\">\n <ComboboxMulti\n title=\"US bands from the 90's\"\n options={bands}\n onChange={setSelectedBands}\n value={selectedBands}\n />\n <ComboboxSingle\n title=\"Fruit\"\n options={fruits}\n value={selectedFruit}\n onChange={setSelectedFruit}\n classNames={{content: 'w-32'}}\n />\n {selectedBands.map((band) => (\n <span key={band} className=\"text-green-80\">\n {band}\n </span>\n ))}\n <span className=\"text-purple-100\">{selectedFruit}</span>\n </div>\n );\n}\n\nexport default ComboboxDemo;\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cva, type VariantProps } from \"cva\";\nimport { cn } from \"@/components/lib/utils\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/primitives/command\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/primitives/popover\";\nimport { Separator } from \"@/components/primitives/separator\";\n\nimport ListItem from \"@/components/ui/ListItem\";\nimport { Badge } from \"@/components/ui/Badge\";\nimport { Button } from \"@/components/ui/Button\";\nimport Label from \"@/components/ui/Label\";\n\ntype Option = {\n id: string | number;\n value: string;\n title: string;\n description?: string;\n icon?: string;\n};\n\ntype ComboboxClassNames = {\n label?: string;\n trigger?: string;\n items?: string;\n content?: string;\n};\n\ninterface ComboboxProps extends VariantProps<typeof triggerVariants> {\n label?: string;\n options: Option[];\n title: string;\n placeholder?: string;\n hideSearch?: boolean;\n onClear?: () => void;\n clearBtnText?: string;\n onApply?: () => void;\n applyBtnText?: string;\n className?: string;\n classNames?: ComboboxClassNames;\n value?: string | string[];\n}\n\ninterface ComboboxSingleProps extends ComboboxProps {\n onChange: (value: string) => void;\n}\n\ninterface ComboboxMultiProps extends ComboboxProps {\n onChange: (value: string[]) => void;\n}\n\nfunction ComboboxSingle(props: ComboboxSingleProps) {\n const { onChange, value } = props;\n const [currentValue, setCurrentValue] = useState<string>(\n (value as string) ?? \"\"\n );\n\n useEffect(() => onChange(currentValue), [onChange, currentValue]);\n\n const singleHandler = (newValue: string) =>\n setCurrentValue(newValue === currentValue ? \"\" : newValue);\n\n return (\n <Combobox\n {...props}\n value={currentValue}\n handler={singleHandler}\n badgeCount={!!currentValue ? 1 : 0}\n />\n );\n}\n\nfunction ComboboxMulti(props: ComboboxMultiProps) {\n const { onChange, onApply, value } = props;\n const [currentValues, setCurrentValues] = useState<string[]>(\n (value as string[]) ?? []\n );\n\n useEffect(() => onChange(currentValues), [onChange, currentValues]);\n\n const multiHandler = (newValue: string) =>\n setCurrentValues((prev) =>\n prev.includes(newValue)\n ? prev.filter((v) => v !== newValue)\n : [...prev, newValue]\n );\n\n const onClearHandler = () => setCurrentValues([]);\n\n return (\n <Combobox\n {...props}\n value={currentValues}\n handler={multiHandler}\n isMultiselect\n badgeCount={currentValues.length}\n onClear={onClearHandler}\n onApply={onApply}\n />\n );\n}\n\ninterface ComboboxComponentProps extends ComboboxProps {\n handler: (value: string) => void;\n isMultiselect?: boolean;\n badgeCount?: number;\n}\n\nfunction Combobox({\n title,\n label,\n options,\n isMultiselect,\n variant,\n hideSearch,\n className,\n classNames,\n onApply,\n onClear,\n applyBtnText,\n clearBtnText,\n value,\n badgeCount,\n handler,\n}: ComboboxComponentProps) {\n const [open, setOpen] = useState(false);\n\n const hideSearchBox = hideSearch ?? options?.length <= 5;\n\n const clickHandler = (option: string) => {\n handler?.(option);\n if (!isMultiselect) setOpen(false);\n };\n\n const onApplyHandler = () => {\n setOpen(false);\n onApply?.();\n };\n\n return (\n <div className={cn(\"flex flex-col\", className)}>\n {label && <Label text={label} className={classNames?.label} />}\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <div\n className={cn(triggerVariants({ variant }), classNames?.trigger)}\n aria-expanded={open}\n >\n {!!badgeCount && (\n <Badge variant=\"purple\" className=\"pt-1\">\n {badgeCount}\n </Badge>\n )}\n <span className=\"truncate leading-normal\">{title}</span>\n <ChevronDownIcon\n className=\"transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n </div>\n </PopoverTrigger>\n <PopoverContent\n className={cn(classNames?.content, \"p-0 ml-5\")}\n sideOffset={4}\n >\n <Command>\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(\n ({ value: optionValue, title, description, icon }) => (\n <CommandItem\n key={optionValue}\n value={optionValue}\n onSelect={clickHandler}\n >\n <ListItem\n className={cn(classNames?.items, \"py-1\", \"truncate\")}\n title={title}\n value={optionValue}\n isSelected={\n (Array.isArray(value) &&\n value.includes(optionValue)) ||\n value === optionValue\n }\n icon={icon}\n description={description}\n hasCheckbox={isMultiselect}\n />\n </CommandItem>\n )\n )}\n </CommandGroup>\n </CommandList>\n </Command>\n <Separator />\n {isMultiselect && (\n <div className=\"flex flex-row justify-between items-center p-4\">\n <Button variant=\"link\" onClick={onClear}>\n {clearBtnText ?? \"Clear\"}\n </Button>\n <Button variant=\"primary\" onClick={onApplyHandler}>\n {applyBtnText ?? \"Apply\"}\n </Button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n\nconst triggerVariants = cva(\n [\n \"group relative cursor-pointer flex flex-row items-center justify-between gap-2 rounded-3xl border border-grey-20 h-9 pl-3 pr-2 py-2 text-sm font-bold focus:outline-green-80 disabled:bg-grey-5\",\n ],\n {\n variants: {\n variant: {\n default: [\"data-[state=open]:bg-black\", \"data-[state=open]:text-white\"],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport { ComboboxSingle, ComboboxMulti };\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 \"@/components/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\n className=\"m-1 flex items-center rounded-lg border px-3\"\n cmdk-input-wrapper=\"\"\n >\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\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\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-default select-none items-center rounded-sm 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 = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-neutral-500\",\n className\n )}\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 \"@/components/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 = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\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(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\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 \"@/components/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 w-72 rounded-md border bg-popover p-4 text-popover-foreground 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 \"@/components/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>(\r\n (\r\n { className, orientation = \"horizontal\", decorative = true, ...props },\r\n ref\r\n ) => (\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\n);\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\r\n\r\nexport { Separator };\r\n","import { cn } from \"@/components/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 text-left flex w-72 flex-row items-center text-sm cursor-pointer\",\n className\n )}\n {...props}\n data-state={isSelected ? \"checked\" : \"unchecked\"}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox\n id={value}\n checked={isSelected}\n onClick={(e) => e.preventDefault()}\n />\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 \"@/components/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 \"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground\",\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 \"@/components/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 (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import { cn } from \"@/components/lib/utils\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"cva\";\nimport React, { forwardRef } from \"react\";\n\ninterface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nButton.displayName = \"Button\";\n\nconst buttonVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"justify-center\",\n \"gap-2\",\n \"rounded-full\",\n \"font-bold\",\n \"outline-2\",\n \"outline-offset-2\",\n \"outline-dashed\",\n \"outline-transparent\",\n ],\n {\n variants: {\n variant: {\n neutral: [\n \"bg-black\",\n \"text-white\",\n \"hover:bg-grey-90\",\n \"active:bg-grey-80\",\n \"focus:outline-purple-100\",\n \"disabled:text-grey-40\",\n \"disabled:bg-grey-10\",\n ],\n primary: [\n \"bg-pickle-100\",\n \"text-black\",\n \"hover:bg-pickle-80\",\n \"active:bg-pickle-60\",\n \"focus:outline-purple-100\",\n \"disabled:text-grey-40\",\n \"disabled:bg-grey-10\",\n ],\n secondary: [\n \"bg-green-80\",\n \"text-white\",\n \"hover:bg-green-90\",\n \"active:bg-green-100\",\n \"focus:outline-pickle-100\",\n \"disabled:text-grey-40\",\n \"disabled:bg-grey-10\",\n ],\n transparent: [\n \"text-white\",\n \"hover:bg-green-80\",\n \"active:bg-green-100\",\n \"focus:outline-pickle-100\",\n \"disabled:text-grey-40\",\n ],\n link: [\n \"leading-tight\",\n \"text-black\",\n \"underline\",\n \"hover:text-purple-100\",\n \"focus:text-black\",\n \"focus:outline-purple-100\",\n \"active:text-purple-80\",\n ],\n },\n size: {\n small: [\"h-10\", \"text-sm\", \"px-4\", \"py-2\"],\n medium: [\"h-12\", \"text-base\", \"px-6\", \"py-3\"],\n large: [\"h-14\", \"text-lg\", \"px-8\", \"py-4\"],\n },\n },\n defaultVariants: {\n variant: \"neutral\",\n size: \"medium\",\n },\n compoundVariants: [\n {\n variant: \"link\",\n size: \"small\",\n class: [\"h-3\", \"text-xs\", \"p-0\"],\n },\n {\n variant: \"link\",\n size: \"medium\",\n class: [\"h-4\", \"text-sm\", \"p-0\"],\n },\n {\n variant: \"link\",\n size: \"large\",\n class: [\"h-6\", \"text-base\", \"p-0\"],\n },\n ],\n }\n);\n","import { type ComponentPropsWithoutRef } from \"react\";\n\nimport { cn } from \"@/components/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":["useState","useEffect","useState","ChevronDownIcon","cva","clsx","twMerge","cn","inputs","CommandPrimitive","Search","React","DialogPrimitive","X","React","DialogPortal","DialogOverlay","className","props","ref","cn","DialogContent","children","DialogPortal","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Command","className","props","ref","CommandPrimitive","cn","CommandInput","className","props","ref","Search","CommandPrimitive","cn","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","React","PopoverPrimitive","Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","cn","SeparatorPrimitive","React","Separator","className","orientation","decorative","props","ref","cn","CheckIcon","CheckboxPrimitive","Check","Minus","forwardRef","CheckboxToggle","forwardRef","className","props","ref","cn","Check","Minus","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","icons","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","CheckIcon","ListItem_default","cva","React","badgeVariants","cva","Badge","className","variant","props","cn","Slot","cva","React","forwardRef","Button","className","variant","size","asChild","props","ref","cn","buttonVariants","Label","text","className","props","cn","Label_default","ComboboxSingle","props","onChange","value","currentValue","setCurrentValue","useState","useEffect","Combobox","newValue","ComboboxMulti","onApply","currentValues","setCurrentValues","multiHandler","prev","v","onClearHandler","title","label","options","isMultiselect","variant","hideSearch","className","classNames","onClear","applyBtnText","clearBtnText","badgeCount","handler","open","setOpen","hideSearchBox","clickHandler","option","onApplyHandler","cn","Label_default","Popover","PopoverTrigger","triggerVariants","Badge","ChevronDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","optionValue","description","icon","CommandItem","ListItem_default","Separator","Button","cva","ComboboxDemo","selectedBands","setSelectedBands","useState","selectedFruit","setSelectedFruit","ComboboxMulti","ComboboxSingle","band","ComboboxDemo_default"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var ke=Object.create;var R=Object.defineProperty;var Ne=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames;var De=Object.getPrototypeOf,Se=Object.prototype.hasOwnProperty;var Te=(e,t)=>{for(var o in t)R(e,o,{get:t[o],enumerable:!0})},Y=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of we(t))!Se.call(e,r)&&r!==o&&R(e,r,{get:()=>t[r],enumerable:!(i=Ne(t,r))||i.enumerable});return e};var f=(e,t,o)=>(o=e!=null?ke(De(e)):{},Y(t||!e||!e.__esModule?R(o,"default",{value:e,enumerable:!0}):o,e)),Ee=e=>Y(R({},"__esModule",{value:!0}),e);var Ke={};Te(Ke,{default:()=>Ye});module.exports=Ee(Ke);var G=require("react");var y=require("react"),pe=require("lucide-react"),ce=require("cva");var K=require("clsx"),J=require("tailwind-merge");function a(...e){return(0,J.twMerge)((0,K.clsx)(e))}var m=require("cmdk"),q=require("lucide-react"),n=f(require("react"));var s=f(require("@radix-ui/react-dialog")),U=require("lucide-react"),l=f(require("react"));var Ie=s.Portal;var X=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Overlay,{ref:o,className:a("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",e),...t}));X.displayName=s.Overlay.displayName;var $=l.forwardRef(({className:e,children:t,...o},i)=>l.createElement(Ie,null,l.createElement(X,null),l.createElement(s.Content,{ref:i,className:a("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",e),...o},t,l.createElement(s.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"},l.createElement(U.X,{className:"h-4 w-4"}),l.createElement("span",{className:"sr-only"},"Close")))));$.displayName=s.Content.displayName;var Le=({className:e,...t})=>l.createElement("div",{className:a("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Le.displayName="DialogHeader";var We=({className:e,...t})=>l.createElement("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});We.displayName="DialogFooter";var _e=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Title,{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));_e.displayName=s.Title.displayName;var He=l.forwardRef(({className:e,...t},o)=>l.createElement(s.Description,{ref:o,className:a("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));He.displayName=s.Description.displayName;var I=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command,{ref:o,className:a("flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",e),...t}));I.displayName=m.Command.displayName;var L=n.forwardRef(({className:e,...t},o)=>n.createElement("div",{className:"m-1 flex items-center rounded-lg border px-3","cmdk-input-wrapper":""},n.createElement(q.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),n.createElement(m.Command.Input,{ref:o,className:a("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",e),...t})));L.displayName=m.Command.Input.displayName;var W=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.List,{ref:o,className:a("overflow-y-auto overflow-x-hidden",e),...t}));W.displayName=m.Command.List.displayName;var _=n.forwardRef((e,t)=>n.createElement(m.Command.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));_.displayName=m.Command.Empty.displayName;var H=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.Group,{ref:o,className:a("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",e),...t}));H.displayName=m.Command.Group.displayName;var Be=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.Separator,{ref:o,className:a("-mx-1 h-px bg-neutral-200",e),...t}));Be.displayName=m.Command.Separator.displayName;var B=n.forwardRef(({className:e,...t},o)=>n.createElement(m.Command.Item,{ref:o,className:a("relative flex cursor-default select-none items-center rounded-sm 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",e),...t}));B.displayName=m.Command.Item.displayName;var Me=({className:e,...t})=>n.createElement("span",{className:a("ml-auto text-xs tracking-widest text-neutral-500",e),...t});Me.displayName="CommandShortcut";var C=f(require("react")),u=f(require("@radix-ui/react-popover"));var Q=u.Root,Z=u.Trigger,M=C.forwardRef(({className:e,align:t="center",sideOffset:o=4,...i},r)=>C.createElement(u.Portal,null,C.createElement(u.Content,{ref:r,align:t,sideOffset:o,className:a("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground 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",e),...i})));M.displayName=u.Content.displayName;var A=f(require("@radix-ui/react-separator")),k=f(require("react"));var z=k.forwardRef(({className:e,orientation:t="horizontal",decorative:o=!0,...i},r)=>k.createElement(A.Root,{ref:r,decorative:o,orientation:t,className:a("shrink-0 bg-grey-10",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...i}));z.displayName=A.Root.displayName;var ae=require("lucide-react");var P=f(require("@radix-ui/react-checkbox")),N=require("lucide-react"),V=require("react");var ee=(0,V.forwardRef)(({className:e,...t},o)=>React.createElement(P.Root,{ref:o,className:a("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",t.disabled&&"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",e),...t},React.createElement(P.Indicator,{className:"flex items-center justify-center text-current"},React.createElement(N.Check,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),React.createElement(N.Minus,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"}))));ee.displayName=P.Root.displayName;var te=(0,V.forwardRef)(({classNames:e,children:t,...o},i)=>{let{disabled:r}=o,p=o.id??`${o.name??o.value?.toString()}-checkbox`,d=r?"text-grey-40 pointer-events-none":"";return React.createElement("div",{className:a("flex space-x-2",e?.wrapper)},React.createElement(ee,{id:p,disabled:r,ref:i,...o}),React.createElement("label",{htmlFor:p,className:a(d,e?.label)},t))});te.displayName="Checkbox";var oe=te;var O=require("lucide-react");function Ae({icon:e,hasCheckbox:t,isSelected:o,className:i,title:r,value:p,description:d,...g}){let v=e?(x=>{if(x in O.icons){let S=O.icons[x];return React.createElement(S,{size:14})}return null})(e):void 0;return React.createElement("li",{className:a("group relative text-left flex w-72 flex-row items-center text-sm cursor-pointer",i),...g,"data-state":o?"checked":"unchecked"},v&&React.createElement("span",{className:"mr-2"},v),t&&React.createElement(oe,{id:p,checked:o,onClick:x=>x.preventDefault()}),React.createElement("div",null,React.createElement("p",null,r),React.createElement("p",{className:"text-xs text-grey-80"},d)),React.createElement(ae.CheckIcon,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16}))}var ie=Ae;var re=require("cva"),ne=f(require("react"));var ze=(0,re.cva)("rounded-full px-2 py-0.5 text-xs font-semibold",{variants:{variant:{green:"bg-green-90 text-white",pickle:"bg-pickle-100 text-black",purple:"bg-purple-100 text-white"}},defaultVariants:{variant:"green"}});function se({className:e,variant:t,...o}){return ne.createElement("div",{className:a(ze({variant:t}),e),...o})}var le=require("@radix-ui/react-slot"),me=require("cva"),w=f(require("react")),D=(0,w.forwardRef)(({className:e,variant:t,size:o,asChild:i=!1,...r},p)=>w.default.createElement(i?le.Slot:"button",{className:a(Ve({variant:t,size:o,className:e})),ref:p,...r}));D.displayName="Button";var Ve=(0,me.cva)(["flex","items-center","justify-center","gap-2","rounded-full","font-bold","outline-2","outline-offset-2","outline-dashed","outline-transparent"],{variants:{variant:{neutral:["bg-black","text-white","hover:bg-grey-90","active:bg-grey-80","focus:outline-purple-100","disabled:text-grey-40","disabled:bg-grey-10"],primary:["bg-pickle-100","text-black","hover:bg-pickle-80","active:bg-pickle-60","focus:outline-purple-100","disabled:text-grey-40","disabled:bg-grey-10"],secondary:["bg-green-80","text-white","hover:bg-green-90","active:bg-green-100","focus:outline-pickle-100","disabled:text-grey-40","disabled:bg-grey-10"],transparent:["text-white","hover:bg-green-80","active:bg-green-100","focus:outline-pickle-100","disabled:text-grey-40"],link:["leading-tight","text-black","underline","hover:text-purple-100","focus:text-black","focus:outline-purple-100","active:text-purple-80"]},size:{small:["h-10","text-sm","px-4","py-2"],medium:["h-12","text-base","px-6","py-3"],large:["h-14","text-lg","px-8","py-4"]}},defaultVariants:{variant:"neutral",size:"medium"},compoundVariants:[{variant:"link",size:"small",class:["h-3","text-xs","p-0"]},{variant:"link",size:"medium",class:["h-4","text-sm","p-0"]},{variant:"link",size:"large",class:["h-6","text-base","p-0"]}]});function Oe({text:e,className:t,...o}){return e?React.createElement("label",{className:a("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o},e):null}var de=Oe;function fe(e){let{onChange:t,value:o}=e,[i,r]=(0,y.useState)(o??"");return(0,y.useEffect)(()=>t(i),[t,i]),React.createElement(ge,{...e,value:i,handler:d=>r(d===i?"":d),badgeCount:i?1:0})}function ue(e){let{onChange:t,onApply:o,value:i}=e,[r,p]=(0,y.useState)(i??[]);(0,y.useEffect)(()=>t(r),[t,r]);let d=h=>p(v=>v.includes(h)?v.filter(x=>x!==h):[...v,h]),g=()=>p([]);return React.createElement(ge,{...e,value:r,handler:d,isMultiselect:!0,badgeCount:r.length,onClear:g,onApply:o})}function ge({title:e,label:t,options:o,isMultiselect:i,variant:r,hideSearch:p,className:d,classNames:g,onApply:h,onClear:v,applyBtnText:x,clearBtnText:S,value:T,badgeCount:F,handler:xe}){let[j,E]=(0,y.useState)(!1),be=p??o?.length<=5,ye=b=>{xe?.(b),i||E(!1)},he=()=>{E(!1),h?.()};return React.createElement("div",{className:a("flex flex-col",d)},t&&React.createElement(de,{text:t,className:g?.label}),React.createElement(Q,{open:j,onOpenChange:E},React.createElement(Z,{asChild:!0},React.createElement("div",{className:a(Ge({variant:r}),g?.trigger),"aria-expanded":j},!!F&&React.createElement(se,{variant:"purple",className:"pt-1"},F),React.createElement("span",{className:"truncate leading-normal"},e),React.createElement(pe.ChevronDownIcon,{className:"transform group-data-[state=open]:rotate-180",size:"16"}))),React.createElement(M,{className:a(g?.content,"p-0 ml-5"),sideOffset:4},React.createElement(I,null,!be&&React.createElement(L,{placeholder:"Search..."}),React.createElement(W,null,React.createElement(_,null,"No results"),React.createElement(H,null,o.map(({value:b,title:Ce,description:Pe,icon:Re})=>React.createElement(B,{key:b,value:b,onSelect:ye},React.createElement(ie,{className:a(g?.items,"py-1","truncate"),title:Ce,value:b,isSelected:Array.isArray(T)&&T.includes(b)||T===b,icon:Re,description:Pe,hasCheckbox:i})))))),React.createElement(z,null),i&&React.createElement("div",{className:"flex flex-row justify-between items-center p-4"},React.createElement(D,{variant:"link",onClick:v},S??"Clear"),React.createElement(D,{variant:"primary",onClick:he},x??"Apply")))))}var Ge=(0,ce.cva)(["group relative cursor-pointer flex flex-row items-center justify-between gap-2 rounded-3xl border border-grey-20 h-9 pl-3 pr-2 py-2 text-sm font-bold focus:outline-green-80 disabled:bg-grey-5"],{variants:{variant:{default:["data-[state=open]:bg-black","data-[state=open]:text-white"]}},defaultVariants:{variant:"default"}});function Fe(){let[e,t]=(0,G.useState)([]),[o,i]=(0,G.useState)("");return React.createElement("div",{className:"p-4 flex flex-row flex-wrap gap-4 items-center"},React.createElement(ue,{title:"US bands from the 90's",options:[{title:"Nirvana",value:"Nirvana",description:"Come As You Are",id:1},{title:"Pearl Jam",value:"Pearl Jam",description:"Jeremy",id:2},{title:"Soundgarden",value:"Soundgarden",description:"Rusty Cage",id:3},{title:"Alice in Chains",value:"Alice in Chains",description:"Would?",id:4},{title:"Stone Temple Pilots",value:"Stone Temple Pilots",id:5},{title:"Hole",value:"Hole",id:6},{title:"Mudhoney",value:"Mudhoney",id:7},{title:"Screaming Trees",value:"Screaming Trees",id:8},{title:"L7",value:"L7",id:9},{title:"Sonic Youth",value:"Sonic Youth",id:10},{title:"And You Will Know Us by the Trail of Dead",value:"And You Will Know Us by the Trail of Dead",id:11}],onChange:t,value:e}),React.createElement(fe,{title:"Fruit",options:[{title:"Cherry",value:"Cherry",id:1,icon:"Cherry"},{title:"Grape",value:"Grape",id:2,icon:"Grape"}],value:o,onChange:i,classNames:{content:"w-32"}}),e.map(d=>React.createElement("span",{key:d,className:"text-green-80"},d)),React.createElement("span",{className:"text-purple-100"},o))}var ve=Fe;function je(){return React.createElement("div",null,React.createElement(ve,null))}var Ye=je;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|