@next-degree/pickle-shared-js 0.2.2 → 0.2.4
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/primitives/command.d.mts +83 -0
- package/dist/primitives/command.d.ts +83 -0
- package/dist/primitives/command.js +2 -0
- package/dist/primitives/command.js.map +1 -0
- package/dist/primitives/command.mjs +2 -0
- package/dist/primitives/command.mjs.map +1 -0
- package/dist/primitives/dialog.d.mts +21 -0
- package/dist/primitives/dialog.d.ts +21 -0
- package/dist/primitives/dialog.js +2 -0
- package/dist/primitives/dialog.js.map +1 -0
- package/dist/primitives/dialog.mjs +2 -0
- package/dist/primitives/dialog.mjs.map +1 -0
- package/dist/primitives/popover.d.mts +8 -0
- package/dist/primitives/popover.d.ts +8 -0
- package/dist/primitives/popover.js +2 -0
- package/dist/primitives/popover.js.map +1 -0
- package/dist/primitives/popover.mjs +2 -0
- package/dist/primitives/popover.mjs.map +1 -0
- package/dist/primitives/separator.d.mts +6 -0
- package/dist/primitives/separator.d.ts +6 -0
- package/dist/primitives/separator.js +2 -0
- package/dist/primitives/separator.js.map +1 -0
- package/dist/primitives/separator.mjs +2 -0
- package/dist/primitives/separator.mjs.map +1 -0
- package/dist/ui/Badge.d.mts +12 -0
- package/dist/ui/Badge.d.ts +12 -0
- package/dist/ui/Badge.js +2 -0
- package/dist/ui/Badge.js.map +1 -0
- package/dist/ui/Badge.mjs +2 -0
- package/dist/ui/Badge.mjs.map +1 -0
- package/dist/ui/Button.d.mts +14 -0
- package/dist/ui/Button.d.ts +14 -0
- package/dist/ui/Button.js +2 -0
- package/dist/ui/Button.js.map +1 -0
- package/dist/ui/Button.mjs +2 -0
- package/dist/ui/Button.mjs.map +1 -0
- package/dist/ui/Checkbox.d.mts +14 -0
- package/dist/ui/Checkbox.d.ts +14 -0
- package/dist/ui/Checkbox.js +2 -0
- package/dist/ui/Checkbox.js.map +1 -0
- package/dist/ui/Checkbox.mjs +2 -0
- package/dist/ui/Checkbox.mjs.map +1 -0
- package/dist/ui/Chip.d.mts +13 -0
- package/dist/ui/Chip.d.ts +13 -0
- package/dist/ui/Chip.js +2 -0
- package/dist/ui/Chip.js.map +1 -0
- package/dist/ui/Chip.mjs +2 -0
- package/dist/ui/Chip.mjs.map +1 -0
- package/dist/ui/Combobox.d.mts +44 -0
- package/dist/ui/Combobox.d.ts +44 -0
- package/dist/ui/Combobox.js +2 -0
- package/dist/ui/Combobox.js.map +1 -0
- package/dist/ui/Combobox.mjs +2 -0
- package/dist/ui/Combobox.mjs.map +1 -0
- package/dist/ui/Label.d.mts +9 -0
- package/dist/ui/Label.d.ts +9 -0
- package/dist/ui/Label.js +2 -0
- package/dist/ui/Label.js.map +1 -0
- package/dist/ui/Label.mjs +2 -0
- package/dist/ui/Label.mjs.map +1 -0
- package/dist/ui/ListItem.d.mts +14 -0
- package/dist/ui/ListItem.d.ts +14 -0
- package/dist/ui/ListItem.js +2 -0
- package/dist/ui/ListItem.js.map +1 -0
- package/dist/ui/ListItem.mjs +2 -0
- package/dist/ui/ListItem.mjs.map +1 -0
- package/dist/ui/Select.d.mts +21 -0
- package/dist/ui/Select.d.ts +21 -0
- package/dist/ui/Select.js +2 -0
- package/dist/ui/Select.js.map +1 -0
- package/dist/ui/Select.mjs +2 -0
- package/dist/ui/Select.mjs.map +1 -0
- package/package.json +2 -2
- package/next-env.d.ts +0 -5
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var R=Object.create;var l=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var E=(e,o)=>{for(var t in o)l(e,t,{get:o[t],enumerable:!0})},u=(e,o,t,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of w(o))!V.call(e,r)&&r!==t&&l(e,r,{get:()=>o[r],enumerable:!(i=I(o,r))||i.enumerable});return e};var L=(e,o,t)=>(t=e!=null?R(W(e)):{},u(o||!e||!e.__esModule?l(t,"default",{value:e,enumerable:!0}):t,e)),z=e=>u(l({},"__esModule",{value:!0}),e);var j={};E(j,{default:()=>M});module.exports=z(j);var x=require("clsx"),g=require("tailwind-merge");function a(...e){return(0,g.twMerge)((0,x.clsx)(e))}var v=require("lucide-react");var n=L(require("@radix-ui/react-checkbox")),d=require("lucide-react"),p=require("react");var k=(0,p.forwardRef)(({className:e,...o},t)=>React.createElement(n.Root,{ref:t,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",o.disabled&&"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",e),...o},React.createElement(n.Indicator,{className:"flex items-center justify-center text-current"},React.createElement(d.Check,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),React.createElement(d.Minus,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"}))));k.displayName=n.Root.displayName;var C=(0,p.forwardRef)(({classNames:e,children:o,...t},i)=>{let{disabled:r}=t,s=t.id??`${t.name??t.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(k,{id:s,disabled:r,ref:i,...t}),React.createElement("label",{htmlFor:s,className:a(m,e?.label)},o))});C.displayName="Checkbox";var y=C;var f=require("lucide-react");function K({icon:e,hasCheckbox:o,isSelected:t,className:i,title:r,value:s,description:m,...P}){let h=e?(c=>{if(c in f.icons){let N=f.icons[c];return React.createElement(N,{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),...P,"data-state":t?"checked":"unchecked"},h&&React.createElement("span",{className:"mr-2"},h),o&&React.createElement(y,{id:s,checked:t,onClick:c=>c.preventDefault()}),React.createElement("div",null,React.createElement("p",null,r),React.createElement("p",{className:"text-xs text-grey-80"},m)),React.createElement(v.CheckIcon,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16}))}var M=K;
|
|
2
|
+
//# sourceMappingURL=ListItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/ui/ListItem.tsx","../../src/lib/utils.ts","../../src/components/ui/Checkbox.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\nimport { ComponentPropsWithoutRef, ReactNode } from \"react\";\nimport Checkbox from \"@/components/ui/Checkbox\";\nimport { icons } from \"lucide-react\";\n\ntype IconKey = keyof typeof icons;\n\ninterface ListItemProps extends ComponentPropsWithoutRef<\"li\"> {\n icon?: string;\n hasCheckbox?: boolean;\n isSelected?: boolean;\n title: string;\n value: string;\n description?: string;\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey];\n return <IconComponent size={14} />;\n }\n return null;\n };\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined;\n\n return (\n <li\n className={cn(\n \"group relative 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 '@/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,2 @@
|
|
|
1
|
+
import{clsx as C}from"clsx";import{twMerge as y}from"tailwind-merge";function r(...t){return y(C(t))}import{CheckIcon as N}from"lucide-react";import*as i from"@radix-ui/react-checkbox";import{Check as v,Minus as P}from"lucide-react";import{forwardRef as f}from"react";var h=f(({className:t,...o},e)=>React.createElement(i.Root,{ref:e,className:r("group","peer","h-5","w-5","shrink-0","rounded-md","border","border-grey-10","outline","outline-1","outline-offset-2","outline-transparent","hover:border-grey-20","focus:outline-purple-100","active:border-green-80","disabled:cursor-not-allowed","disabled:opacity-50","data-[state=checked]:bg-green-80","data-[state=indeterminate]:bg-green-80","data-[state=checked]:text-white","data-[state=indeterminate]:text-primary-foreground",o.disabled&&"bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",t),...o},React.createElement(i.Indicator,{className:"flex items-center justify-center text-current"},React.createElement(v,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),React.createElement(P,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"}))));h.displayName=i.Root.displayName;var u=f(({classNames:t,children:o,...e},c)=>{let{disabled:a}=e,n=e.id??`${e.name??e.value?.toString()}-checkbox`,l=a?"text-grey-40 pointer-events-none":"";return React.createElement("div",{className:r("flex space-x-2",t?.wrapper)},React.createElement(h,{id:n,disabled:a,ref:c,...e}),React.createElement("label",{htmlFor:n,className:r(l,t?.label)},o))});u.displayName="Checkbox";var b=u;import{icons as x}from"lucide-react";function R({icon:t,hasCheckbox:o,isSelected:e,className:c,title:a,value:n,description:l,...g}){let d=t?(s=>{if(s in x){let k=x[s];return React.createElement(k,{size:14})}return null})(t):void 0;return React.createElement("li",{className:r("group relative text-left flex w-72 flex-row items-center text-sm cursor-pointer",c),...g,"data-state":e?"checked":"unchecked"},d&&React.createElement("span",{className:"mr-2"},d),o&&React.createElement(b,{id:n,checked:e,onClick:s=>s.preventDefault()}),React.createElement("div",null,React.createElement("p",null,a),React.createElement("p",{className:"text-xs text-grey-80"},l)),React.createElement(N,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16}))}var $=R;export{$ as default};
|
|
2
|
+
//# sourceMappingURL=ListItem.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/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 \"@/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 '@/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,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
3
|
+
|
|
4
|
+
interface Props extends Omit<ComponentPropsWithoutRef<"select">, "value" | "onChange"> {
|
|
5
|
+
label: string;
|
|
6
|
+
value?: string | string[];
|
|
7
|
+
options?: {
|
|
8
|
+
id: string | number;
|
|
9
|
+
value: string;
|
|
10
|
+
title: string;
|
|
11
|
+
}[];
|
|
12
|
+
placeholder?: string;
|
|
13
|
+
multiselect?: boolean;
|
|
14
|
+
onChange?: (value: string | string[]) => void;
|
|
15
|
+
classNames?: {
|
|
16
|
+
label?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
declare const Select: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLButtonElement>>;
|
|
20
|
+
|
|
21
|
+
export { Select as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
3
|
+
|
|
4
|
+
interface Props extends Omit<ComponentPropsWithoutRef<"select">, "value" | "onChange"> {
|
|
5
|
+
label: string;
|
|
6
|
+
value?: string | string[];
|
|
7
|
+
options?: {
|
|
8
|
+
id: string | number;
|
|
9
|
+
value: string;
|
|
10
|
+
title: string;
|
|
11
|
+
}[];
|
|
12
|
+
placeholder?: string;
|
|
13
|
+
multiselect?: boolean;
|
|
14
|
+
onChange?: (value: string | string[]) => void;
|
|
15
|
+
classNames?: {
|
|
16
|
+
label?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
declare const Select: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLButtonElement>>;
|
|
20
|
+
|
|
21
|
+
export { Select as default };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";"use client";var J=Object.create;var g=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty;var _=(t,r)=>{for(var a in r)g(t,a,{get:r[a],enumerable:!0})},E=(t,r,a,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of U(r))!Z.call(t,l)&&l!==a&&g(t,l,{get:()=>r[l],enumerable:!(o=Q(r,l))||o.enumerable});return t};var v=(t,r,a)=>(a=t!=null?J(Y(t)):{},E(r||!t||!t.__esModule?g(a,"default",{value:t,enumerable:!0}):a,t)),ee=t=>E(g({},"__esModule",{value:!0}),t);var oe={};_(oe,{default:()=>ae});module.exports=ee(oe);var i=v(require("@radix-ui/react-select")),m=require("lucide-react"),s=require("react");var V=require("clsx"),z=require("tailwind-merge");function c(...t){return(0,z.twMerge)((0,V.clsx)(t))}function te({text:t,className:r,...a}){return t?React.createElement("label",{className:c("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",r),...a},t):null}var L=te;var O=require("cva"),T=v(require("react")),D=require("tailwind-merge"),re=({className:t,variant:r,size:a,...o})=>T.default.createElement("div",{className:(0,D.twMerge)(ie({variant:r,size:a,className:t})),...o}),ie=(0,O.cva)(["flex","items-center","rounded-3xl","border","w-fit"],{variants:{variant:{neutral:["text-grey-80","border-grey-10"],primary:["text-purple-100","border-purple-20"],danger:["text-pumpkin-100","border-pumpkin-20"],onboarding:["text-green-100","bg-green-10","cursor-pointer"],onboardingSelected:["text-white","bg-green-90","cursor-pointer"]},size:{small:["text-sm","leading-5","px-2","py-1","gap-1.5"],medium:["text-base","leading-6","px-3","py-2","gap-2"]}},defaultVariants:{variant:"neutral",size:"medium"}}),I=re;var S=v(require("@radix-ui/react-separator")),x=v(require("react"));var C=x.forwardRef(({className:t,orientation:r="horizontal",decorative:a=!0,...o},l)=>x.createElement(S.Root,{ref:l,decorative:a,orientation:r,className:c("shrink-0 bg-grey-10",r==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",t),...o}));C.displayName=S.Root.displayName;var M=(0,s.forwardRef)(({label:t,options:r,placeholder:a,multiselect:o,classNames:l,...W},K)=>{let{value:d,defaultValue:w,dir:j,className:H,onChange:A,...B}=W,[u,b]=(0,s.useState)([]),[G,y]=(0,s.useState)(!1),R=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!d)return b([]);b(Array.isArray(d)?d:[d])},[d]);let $=()=>y(e=>!e),X=e=>e.key==="Escape"&&y(!1),q=(e,n)=>e.key==="Enter"&&f(n),k=u?.map(e=>r?.find(({value:n})=>n===e)).filter(Boolean);function N(){return o?u.map(e=>r?.find(n=>n.value===e)?.title).join(", "):r?.find(e=>e.value===u.join())?.title}function F(e){(!o||e)&&y(e)}function f(e){let n=[];b(p=>(n=p.includes(e)?p.filter(P=>P!==e):[...p,e],o?n:[e])),A?.(o?n:e)}return React.createElement("div",{className:c("flex flex-col space-y-2",H),ref:R},React.createElement(L,{text:t,className:l?.label}),React.createElement(i.Root,{open:G,value:u.join(","),onOpenChange:F,onValueChange:o?void 0:f,defaultValue:typeof w=="string"?w:void 0,dir:j==="rtl"?"rtl":"ltr",...B},React.createElement(i.Trigger,{ref:K,"data-testid":`${t.toLowerCase()}-select-element`,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"},React.createElement("span",{className:"truncate"},React.createElement(i.Value,{placeholder:a??"Select an option","aria-label":N()},N())),React.createElement(m.ChevronDownIcon,{className:"transform text-black group-data-[state=open]:rotate-180",size:"16"})),React.createElement(i.Portal,{container:R.current},React.createElement(i.Content,{hideWhenDetached:!0,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",position:"popper",sideOffset:4,onPointerDownOutside:$,onKeyDown:X},React.createElement(i.Viewport,null,o&&!!k?.length&&React.createElement(i.Group,{className:"mb-2 flex flex-row flex-wrap gap-1 px-2","data-testid":"selected-labels"},k?.map(e=>e&&React.createElement(I,{key:e.title,size:"small",variant:"primary"},React.createElement("span",null,e.title),React.createElement(m.X,{size:18,"data-testid":`chip-remove-${e.value}`,className:"cursor-pointer",onClick:()=>f(e.value)})))),React.createElement(C,null),r?.map(({id:e,title:n,value:p})=>React.createElement(i.Item,{key:e,value:p,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","data-state":u.includes(p)?"checked":"unchecked",onKeyDown:P=>q(P,p),onClick:()=>f(p)},React.createElement(i.ItemText,null,n),React.createElement(m.CheckIcon,{className:"absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block",size:16}))))))))});M.displayName="Select";var ae=M;
|
|
2
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/ui/Select.tsx","../../src/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 \"@/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 '@/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 '@/lib/utils'\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n 'shrink-0 bg-grey-10',\r\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName\r\n\r\nexport { Separator }\r\n"],"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,2 @@
|
|
|
1
|
+
"use client";import*as t from"@radix-ui/react-select";import{CheckIcon as J,ChevronDownIcon as Q,X as U}from"lucide-react";import{forwardRef as Y,useEffect as Z,useRef as _,useState as N}from"react";import{clsx as H}from"clsx";import{twMerge as A}from"tailwind-merge";function s(...r){return A(H(r))}function B({text:r,className:i,...l}){return r?React.createElement("label",{className:s("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",i),...l},r):null}var R=B;import{cva as G}from"cva";import $ from"react";import{twMerge as X}from"tailwind-merge";var q=({className:r,variant:i,size:l,...o})=>$.createElement("div",{className:X(F({variant:i,size:l,className:r})),...o}),F=G(["flex","items-center","rounded-3xl","border","w-fit"],{variants:{variant:{neutral:["text-grey-80","border-grey-10"],primary:["text-purple-100","border-purple-20"],danger:["text-pumpkin-100","border-pumpkin-20"],onboarding:["text-green-100","bg-green-10","cursor-pointer"],onboardingSelected:["text-white","bg-green-90","cursor-pointer"]},size:{small:["text-sm","leading-5","px-2","py-1","gap-1.5"],medium:["text-base","leading-6","px-3","py-2","gap-2"]}},defaultVariants:{variant:"neutral",size:"medium"}}),k=q;import*as b from"@radix-ui/react-separator";import*as f from"react";var y=f.forwardRef(({className:r,orientation:i="horizontal",decorative:l=!0,...o},g)=>f.createElement(b.Root,{ref:g,decorative:l,orientation:i,className:s("shrink-0 bg-grey-10",i==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",r),...o}));y.displayName=b.Root.displayName;var E=Y(({label:r,options:i,placeholder:l,multiselect:o,classNames:g,...V},z)=>{let{value:p,defaultValue:P,dir:L,className:O,onChange:T,...D}=V,[c,v]=N([]),[I,h]=N(!1),S=_(null);Z(()=>{if(!p)return v([]);v(Array.isArray(p)?p:[p])},[p]);let M=()=>h(e=>!e),W=e=>e.key==="Escape"&&h(!1),K=(e,a)=>e.key==="Enter"&&m(a),C=c?.map(e=>i?.find(({value:a})=>a===e)).filter(Boolean);function w(){return o?c.map(e=>i?.find(a=>a.value===e)?.title).join(", "):i?.find(e=>e.value===c.join())?.title}function j(e){(!o||e)&&h(e)}function m(e){let a=[];v(n=>(a=n.includes(e)?n.filter(x=>x!==e):[...n,e],o?a:[e])),T?.(o?a:e)}return React.createElement("div",{className:s("flex flex-col space-y-2",O),ref:S},React.createElement(R,{text:r,className:g?.label}),React.createElement(t.Root,{open:I,value:c.join(","),onOpenChange:j,onValueChange:o?void 0:m,defaultValue:typeof P=="string"?P:void 0,dir:L==="rtl"?"rtl":"ltr",...D},React.createElement(t.Trigger,{ref:z,"data-testid":`${r.toLowerCase()}-select-element`,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"},React.createElement("span",{className:"truncate"},React.createElement(t.Value,{placeholder:l??"Select an option","aria-label":w()},w())),React.createElement(Q,{className:"transform text-black group-data-[state=open]:rotate-180",size:"16"})),React.createElement(t.Portal,{container:S.current},React.createElement(t.Content,{hideWhenDetached:!0,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",position:"popper",sideOffset:4,onPointerDownOutside:M,onKeyDown:W},React.createElement(t.Viewport,null,o&&!!C?.length&&React.createElement(t.Group,{className:"mb-2 flex flex-row flex-wrap gap-1 px-2","data-testid":"selected-labels"},C?.map(e=>e&&React.createElement(k,{key:e.title,size:"small",variant:"primary"},React.createElement("span",null,e.title),React.createElement(U,{size:18,"data-testid":`chip-remove-${e.value}`,className:"cursor-pointer",onClick:()=>m(e.value)})))),React.createElement(y,null),i?.map(({id:e,title:a,value:n})=>React.createElement(t.Item,{key:e,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","data-state":c.includes(n)?"checked":"unchecked",onKeyDown:x=>K(x,n),onClick:()=>m(n)},React.createElement(t.ItemText,null,a),React.createElement(J,{className:"absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block",size:16}))))))))});E.displayName="Select";var Pe=E;export{Pe as default};
|
|
2
|
+
//# sourceMappingURL=Select.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/ui/Select.tsx","../../src/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 \"@/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 '@/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 '@/lib/utils'\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n 'shrink-0 bg-grey-10',\r\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName\r\n\r\nexport { Separator }\r\n"],"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,aAGtB,CAAC,CAAE,UAAAC,EAAW,YAAAC,EAAc,aAAc,WAAAC,EAAa,GAAM,GAAGC,CAAM,EAAGC,IACzE,gBAAoB,OAAnB,CACC,IAAKA,EACL,WAAYF,EACZ,YAAaD,EACb,UAAWI,EACT,sBACAJ,IAAgB,aAAe,iBAAmB,iBAClDD,CACF,EACC,GAAGG,EACN,CACD,EACDJ,EAAU,YAAiC,OAAK,YJMhD,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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-degree/pickle-shared-js",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"build": "next build",
|
|
14
14
|
"start": "next start",
|
|
15
15
|
"lint": "next lint",
|
|
16
|
-
"bundle": "tsup ./src"
|
|
16
|
+
"bundle": "tsup ./src/components"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@radix-ui/react-dialog": "^1.1.2",
|