@next-degree/pickle-shared-js 0.3.15 → 0.3.16
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/app/page.cjs +1 -1
- package/dist/app/page.cjs.map +1 -1
- package/dist/app/page.js +1 -1
- package/dist/app/page.js.map +1 -1
- package/dist/components/demos/ComboboxDemo.cjs +1 -1
- package/dist/components/demos/ComboboxDemo.cjs.map +1 -1
- package/dist/components/demos/ComboboxDemo.js +1 -1
- package/dist/components/demos/ComboboxDemo.js.map +1 -1
- package/dist/components/demos/index.cjs +1 -1
- package/dist/components/demos/index.cjs.map +1 -1
- package/dist/components/demos/index.js +1 -1
- package/dist/components/demos/index.js.map +1 -1
- package/dist/components/ui/Combobox.cjs +1 -1
- package/dist/components/ui/Combobox.cjs.map +1 -1
- package/dist/components/ui/Combobox.js +1 -1
- package/dist/components/ui/Combobox.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/app/page.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Ge=Object.create;var _=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ye=Object.getOwnPropertyNames;var Je=Object.getPrototypeOf,Ke=Object.prototype.hasOwnProperty;var Ue=(e,t)=>{for(var o in t)_(e,o,{get:t[o],enumerable:!0})},le=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ye(t))!Ke.call(e,i)&&i!==o&&_(e,i,{get:()=>t[i],enumerable:!(n=Fe(t,i))||n.enumerable});return e};var C=(e,t,o)=>(o=e!=null?Ge(Je(e)):{},le(t||!e||!e.__esModule?_(o,"default",{value:e,enumerable:!0}):o,e)),Xe=e=>le(_({},"__esModule",{value:!0}),e);var dt={};Ue(dt,{default:()=>pt});module.exports=Xe(dt);var ee=require("react");var k=require("react"),w=require("lucide-react"),Ie=require("cva");var se=require("clsx"),me=require("tailwind-merge");function a(...e){return(0,me.twMerge)((0,se.clsx)(e))}var m=require("cmdk"),fe=require("lucide-react"),P=C(require("react"),1);var l=C(require("@radix-ui/react-dialog"),1),pe=require("lucide-react"),I=C(require("react"),1),c=require("react/jsx-runtime");var $e=l.Portal;var de=I.forwardRef(({className:e,...t},o)=>(0,c.jsx)(l.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}));de.displayName=l.Overlay.displayName;var ce=I.forwardRef(({className:e,children:t,...o},n)=>(0,c.jsxs)($e,{children:[(0,c.jsx)(de,{}),(0,c.jsxs)(l.Content,{ref:n,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,children:[t,(0,c.jsxs)(l.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",children:[(0,c.jsx)(pe.X,{className:"h-4 w-4"}),(0,c.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));ce.displayName=l.Content.displayName;var qe=({className:e,...t})=>(0,c.jsx)("div",{className:a("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});qe.displayName="DialogHeader";var Qe=({className:e,...t})=>(0,c.jsx)("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Qe.displayName="DialogFooter";var Ze=I.forwardRef(({className:e,...t},o)=>(0,c.jsx)(l.Title,{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));Ze.displayName=l.Title.displayName;var je=I.forwardRef(({className:e,...t},o)=>(0,c.jsx)(l.Description,{ref:o,className:a("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));je.displayName=l.Description.displayName;var u=require("react/jsx-runtime"),G=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command,{ref:o,className:a("flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",e),...t}));G.displayName=m.Command.displayName;var F=P.forwardRef(({className:e,...t},o)=>(0,u.jsxs)("div",{className:"m-1 flex items-center rounded-xl border px-3","cmdk-input-wrapper":"",children:[(0,u.jsx)(fe.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,u.jsx)(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})]}));F.displayName=m.Command.Input.displayName;var Y=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command.List,{ref:o,className:a("overflow-y-auto overflow-x-hidden",e),...t}));Y.displayName=m.Command.List.displayName;var J=P.forwardRef((e,t)=>(0,u.jsx)(m.Command.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));J.displayName=m.Command.Empty.displayName;var K=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(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}));K.displayName=m.Command.Group.displayName;var et=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command.Separator,{ref:o,className:a("-mx-1 h-px bg-neutral-200",e),...t}));et.displayName=m.Command.Separator.displayName;var U=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command.Item,{ref:o,className:a("relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50",e),...t}));U.displayName=m.Command.Item.displayName;var tt=({className:e,...t})=>(0,u.jsx)("span",{className:a("ml-auto text-xs tracking-widest text-neutral-500",e),...t});tt.displayName="CommandShortcut";var ue=C(require("react"),1),b=C(require("@radix-ui/react-popover"),1);var X=require("react/jsx-runtime"),ge=b.Root,ve=b.Trigger,$=ue.forwardRef(({className:e,align:t="center",sideOffset:o=4,...n},i)=>(0,X.jsx)(b.Portal,{children:(0,X.jsx)(b.Content,{ref:i,align:t,sideOffset:o,className:a("z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));$.displayName=b.Content.displayName;var q=C(require("@radix-ui/react-separator"),1),he=C(require("react"),1);var ye=require("react/jsx-runtime"),Q=he.forwardRef(({className:e,orientation:t="horizontal",decorative:o=!0,...n},i)=>(0,ye.jsx)(q.Root,{ref:i,decorative:o,orientation:t,className:a("shrink-0 bg-grey-10",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));Q.displayName=q.Root.displayName;var Pe=require("lucide-react");var E=C(require("@radix-ui/react-checkbox"),1),M=require("lucide-react"),Z=require("react");var x=require("react/jsx-runtime"),be=(0,Z.forwardRef)(({className:e,...t},o)=>(0,x.jsx)(E.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&&"data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",e),...t,children:(0,x.jsxs)(E.Indicator,{className:"flex items-center justify-center text-current",children:[(0,x.jsx)(M.Check,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),(0,x.jsx)(M.Minus,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"})]})}));be.displayName=E.Root.displayName;var xe=(0,Z.forwardRef)(({classNames:e,children:t,...o},n)=>{let{disabled:i}=o,f=o.id??`${o.name??o.value?.toString()}-checkbox`,p=i?"text-grey-40 pointer-events-none":"";return(0,x.jsxs)("div",{className:a("flex space-x-2",e?.wrapper),children:[(0,x.jsx)(be,{id:f,disabled:i,ref:n,...o}),(0,x.jsx)("label",{htmlFor:f,className:a(p,e?.label),children:t})]})});xe.displayName="Checkbox";var Ce=xe;var j=require("lucide-react"),v=require("react/jsx-runtime");function ot({icon:e,hasCheckbox:t,isSelected:o,className:n,title:i,value:f,description:p,...H}){let W=e?(R=>{if(R in j.icons){let A=j.icons[R];return(0,v.jsx)(A,{size:14})}return null})(e):void 0;return(0,v.jsxs)("li",{className:a("group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",n),...H,"data-state":o?"checked":"unchecked",children:[W&&(0,v.jsx)("span",{className:"mr-2",children:W}),t&&(0,v.jsx)(Ce,{id:f,checked:o,onClick:R=>R.preventDefault()}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{children:i}),(0,v.jsx)("p",{className:"text-xs text-grey-80",children:p})]}),(0,v.jsx)(Pe.CheckIcon,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16})]})}var Re=ot;var Ne=require("cva");var we=require("react/jsx-runtime"),at=(0,Ne.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 ke({className:e,variant:t,...o}){return(0,we.jsx)("div",{className:a(at({variant:t}),e),...o})}var Se=require("react/jsx-runtime");function it({text:e,className:t,...o}){return e?(0,Se.jsx)("label",{className:a("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o,children:e}):null}var De=it;var r=require("react/jsx-runtime"),T=(0,k.forwardRef)((e,t)=>{let{value:o,label:n,options:i,classNames:f,multiselect:p,placeholder:H,variant:L="default",size:W,icon:R,className:A,onChange:V,children:O}=e,[h,z]=(0,k.useState)([]),[oe,ae]=(0,k.useState)(!1),ie=R&&w.icons[R],Me=i?.length<=5,D=L==="default",Be=L==="chip",re=()=>ae(!1);(0,k.useEffect)(()=>{z((p?o??[]:o?[o]:[]).map(s=>i.find(y=>y.value===s)).filter(s=>s!==void 0))},[o]);let He=N=>{let s=i.find(y=>y.value===N);if(s){if(p)return z(y=>{let ne=y.some(S=>S.value===N)?y.filter(S=>S!==s):[...y,s];return V?.(ne.map(S=>S.value)),ne});z([s]),V?.(s.value),re()}},Ae=()=>{z([]),V?.(p?[]:"")},Oe=()=>{let N=h.length>0?h.map(s=>s.title).join(", "):H;return D?N:n};return(0,r.jsxs)("div",{className:a("flex flex-col gap-2",A),children:[D&&n&&(0,r.jsx)(De,{text:n,className:f?.label}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)(ge,{open:oe,onOpenChange:ae,children:[(0,r.jsx)(ve,{asChild:!0,disabled:i.length===0,children:(0,r.jsxs)("div",{ref:t,className:a(rt({variant:L,size:W}),h.length>0&&"pr-10",f?.trigger),"aria-expanded":oe,children:[D&&ie&&(0,r.jsx)(ie,{className:"h-4 w-4 shrink-0"}),Be&&h.length>0&&(0,r.jsx)(ke,{variant:"purple",children:h.length}),(0,r.jsx)("span",{className:a("w-full truncate leading-normal",D&&h.length==0&&"text-grey-40"),children:Oe()}),h.length==0&&(0,r.jsx)(w.ChevronDownIcon,{className:"shrink-0 transform group-data-[state=open]:rotate-180",size:"16"})]})}),(0,r.jsx)(G,{children:(0,r.jsxs)($,{className:a("flex w-full max-w-xs flex-col overflow-hidden p-0","max-h-[--radix-popover-content-available-height]",f?.content),collisionPadding:8,sideOffset:4,align:"start",children:[!Me&&(0,r.jsx)(F,{placeholder:"Search..."}),(0,r.jsxs)(Y,{children:[(0,r.jsx)(J,{children:"No results"}),(0,r.jsx)(K,{children:i.map(({id:N,...s})=>(0,r.jsx)(U,{value:s.value,onSelect:He,children:(0,r.jsx)(Re,{className:a(f?.items,"truncate py-1"),isSelected:h.some(y=>y.value===s.value),hasCheckbox:p,...s})},N))})]}),!!O&&(0,r.jsx)(Q,{}),O&&O({close:re})]})})]}),D&&h.length>0&&(0,r.jsx)("button",{type:"button",className:"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",onClick:Ae,children:(0,r.jsx)(w.CircleX,{className:"h-4 w-4 text-green-100"})})]})]})});T.displayName="Combobox";var rt=(0,Ie.cva)("group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5",{variants:{variant:{default:["w-full","max-w-80","rounded-lg"],chip:["font-bold","rounded-3xl","data-[state=open]:bg-black","data-[state=open]:text-white"]},size:{small:["h-8","p-1","pl-2","text-xs"],normal:["h-9","p-2","pl-3","text-sm"],large:["h-10","p-3","pl-4","text-base"]}},defaultVariants:{variant:"default",size:"normal"}});var Ee=require("@radix-ui/react-slot"),Te=require("cva"),Le=require("react"),We=require("react/jsx-runtime"),B=(0,Le.forwardRef)(({className:e,variant:t,size:o,asChild:n=!1,...i},f)=>(0,We.jsx)(n?Ee.Slot:"button",{className:a(nt({variant:t,size:o,className:e})),ref:f,...i}));B.displayName="Button";var nt=(0,Te.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"]}]});var g=require("react/jsx-runtime");function lt(){let[e,t]=(0,ee.useState)([]),[o,n]=(0,ee.useState)(""),i=[{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}];return(0,g.jsxs)("div",{className:"flex flex-row flex-wrap items-center gap-4 p-4",children:[(0,g.jsx)(T,{label:"US bands from the 90's",placeholder:"Select a band",icon:"Music",options:i,multiselect:!0,onChange:t,value:e}),(0,g.jsx)(T,{label:"US bands from the 90's",options:i,variant:"chip",multiselect:!0,onChange:t,value:e}),(0,g.jsx)(T,{label:"Fruit label",variant:"chip",options:[{title:"Cherry",value:"Cherry",id:1,icon:"Cherry"},{title:"Grape",value:"Grape",id:2,icon:"Grape"}],value:o,onChange:n,children:({close:p})=>(0,g.jsxs)("div",{className:"flex flex-row items-center justify-between bg-white p-2 pl-4",children:[(0,g.jsx)(B,{variant:"link",tabIndex:-1,onClick:p,children:"Clear"}),(0,g.jsx)(B,{variant:"primary",size:"small",tabIndex:-1,children:"Apply"})]})}),e.map(p=>(0,g.jsx)("span",{className:"text-green-80",children:p},p)),(0,g.jsx)("span",{className:"text-purple-100",children:o})]})}var Ve=lt;var te=require("react/jsx-runtime");function st(){return(0,te.jsx)("div",{children:(0,te.jsx)(Ve,{})})}var ze=st;var _e=require("react/jsx-runtime");async function mt(){return(0,_e.jsx)(ze,{})}var pt=mt;
|
|
1
|
+
"use strict";var Ge=Object.create;var _=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ye=Object.getOwnPropertyNames;var Je=Object.getPrototypeOf,Ke=Object.prototype.hasOwnProperty;var Ue=(e,t)=>{for(var o in t)_(e,o,{get:t[o],enumerable:!0})},le=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ye(t))!Ke.call(e,i)&&i!==o&&_(e,i,{get:()=>t[i],enumerable:!(n=Fe(t,i))||n.enumerable});return e};var C=(e,t,o)=>(o=e!=null?Ge(Je(e)):{},le(t||!e||!e.__esModule?_(o,"default",{value:e,enumerable:!0}):o,e)),Xe=e=>le(_({},"__esModule",{value:!0}),e);var dt={};Ue(dt,{default:()=>pt});module.exports=Xe(dt);var ee=require("react");var k=require("react"),w=require("lucide-react"),Ie=require("cva");var se=require("clsx"),me=require("tailwind-merge");function a(...e){return(0,me.twMerge)((0,se.clsx)(e))}var m=require("cmdk"),fe=require("lucide-react"),P=C(require("react"),1);var l=C(require("@radix-ui/react-dialog"),1),pe=require("lucide-react"),I=C(require("react"),1),c=require("react/jsx-runtime");var $e=l.Portal;var de=I.forwardRef(({className:e,...t},o)=>(0,c.jsx)(l.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}));de.displayName=l.Overlay.displayName;var ce=I.forwardRef(({className:e,children:t,...o},n)=>(0,c.jsxs)($e,{children:[(0,c.jsx)(de,{}),(0,c.jsxs)(l.Content,{ref:n,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,children:[t,(0,c.jsxs)(l.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",children:[(0,c.jsx)(pe.X,{className:"h-4 w-4"}),(0,c.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));ce.displayName=l.Content.displayName;var qe=({className:e,...t})=>(0,c.jsx)("div",{className:a("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});qe.displayName="DialogHeader";var Qe=({className:e,...t})=>(0,c.jsx)("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Qe.displayName="DialogFooter";var Ze=I.forwardRef(({className:e,...t},o)=>(0,c.jsx)(l.Title,{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));Ze.displayName=l.Title.displayName;var je=I.forwardRef(({className:e,...t},o)=>(0,c.jsx)(l.Description,{ref:o,className:a("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));je.displayName=l.Description.displayName;var u=require("react/jsx-runtime"),G=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command,{ref:o,className:a("flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",e),...t}));G.displayName=m.Command.displayName;var F=P.forwardRef(({className:e,...t},o)=>(0,u.jsxs)("div",{className:"m-1 flex items-center rounded-xl border px-3","cmdk-input-wrapper":"",children:[(0,u.jsx)(fe.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,u.jsx)(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})]}));F.displayName=m.Command.Input.displayName;var Y=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command.List,{ref:o,className:a("overflow-y-auto overflow-x-hidden",e),...t}));Y.displayName=m.Command.List.displayName;var J=P.forwardRef((e,t)=>(0,u.jsx)(m.Command.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));J.displayName=m.Command.Empty.displayName;var K=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(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}));K.displayName=m.Command.Group.displayName;var et=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command.Separator,{ref:o,className:a("-mx-1 h-px bg-neutral-200",e),...t}));et.displayName=m.Command.Separator.displayName;var U=P.forwardRef(({className:e,...t},o)=>(0,u.jsx)(m.Command.Item,{ref:o,className:a("relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50",e),...t}));U.displayName=m.Command.Item.displayName;var tt=({className:e,...t})=>(0,u.jsx)("span",{className:a("ml-auto text-xs tracking-widest text-neutral-500",e),...t});tt.displayName="CommandShortcut";var ue=C(require("react"),1),b=C(require("@radix-ui/react-popover"),1);var X=require("react/jsx-runtime"),ge=b.Root,ve=b.Trigger,$=ue.forwardRef(({className:e,align:t="center",sideOffset:o=4,...n},i)=>(0,X.jsx)(b.Portal,{children:(0,X.jsx)(b.Content,{ref:i,align:t,sideOffset:o,className:a("z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));$.displayName=b.Content.displayName;var q=C(require("@radix-ui/react-separator"),1),he=C(require("react"),1);var ye=require("react/jsx-runtime"),Q=he.forwardRef(({className:e,orientation:t="horizontal",decorative:o=!0,...n},i)=>(0,ye.jsx)(q.Root,{ref:i,decorative:o,orientation:t,className:a("shrink-0 bg-grey-10",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));Q.displayName=q.Root.displayName;var Pe=require("lucide-react");var E=C(require("@radix-ui/react-checkbox"),1),M=require("lucide-react"),Z=require("react");var x=require("react/jsx-runtime"),be=(0,Z.forwardRef)(({className:e,...t},o)=>(0,x.jsx)(E.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&&"data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",e),...t,children:(0,x.jsxs)(E.Indicator,{className:"flex items-center justify-center text-current",children:[(0,x.jsx)(M.Check,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),(0,x.jsx)(M.Minus,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"})]})}));be.displayName=E.Root.displayName;var xe=(0,Z.forwardRef)(({classNames:e,children:t,...o},n)=>{let{disabled:i}=o,f=o.id??`${o.name??o.value?.toString()}-checkbox`,p=i?"text-grey-40 pointer-events-none":"";return(0,x.jsxs)("div",{className:a("flex space-x-2",e?.wrapper),children:[(0,x.jsx)(be,{id:f,disabled:i,ref:n,...o}),(0,x.jsx)("label",{htmlFor:f,className:a(p,e?.label),children:t})]})});xe.displayName="Checkbox";var Ce=xe;var j=require("lucide-react"),v=require("react/jsx-runtime");function ot({icon:e,hasCheckbox:t,isSelected:o,className:n,title:i,value:f,description:p,...H}){let W=e?(R=>{if(R in j.icons){let A=j.icons[R];return(0,v.jsx)(A,{size:14})}return null})(e):void 0;return(0,v.jsxs)("li",{className:a("group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",n),...H,"data-state":o?"checked":"unchecked",children:[W&&(0,v.jsx)("span",{className:"mr-2",children:W}),t&&(0,v.jsx)(Ce,{id:f,checked:o,onClick:R=>R.preventDefault()}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{children:i}),(0,v.jsx)("p",{className:"text-xs text-grey-80",children:p})]}),(0,v.jsx)(Pe.CheckIcon,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16})]})}var Re=ot;var Ne=require("cva");var we=require("react/jsx-runtime"),at=(0,Ne.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 ke({className:e,variant:t,...o}){return(0,we.jsx)("div",{className:a(at({variant:t}),e),...o})}var Se=require("react/jsx-runtime");function it({text:e,className:t,...o}){return e?(0,Se.jsx)("label",{className:a("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o,children:e}):null}var De=it;var r=require("react/jsx-runtime"),T=(0,k.forwardRef)((e,t)=>{let{value:o,label:n,options:i,classNames:f,multiselect:p,placeholder:H,variant:L="default",size:W,icon:R,className:A,onChange:V,children:O}=e,[h,z]=(0,k.useState)([]),[oe,ae]=(0,k.useState)(!1),ie=R&&w.icons[R],Me=i?.length<=5,D=L==="default",Be=L==="chip",re=()=>ae(!1);(0,k.useEffect)(()=>{z((p?o??[]:o?[o]:[]).map(s=>i.find(y=>y.value===s)).filter(s=>s!==void 0))},[o]);let He=N=>{let s=i.find(y=>y.value===N);if(s){if(p)return z(y=>{let ne=y.some(S=>S.value===N)?y.filter(S=>S!==s):[...y,s];return V?.(ne.map(S=>S.value)),ne});z([s]),V?.(s.value),re()}},Ae=()=>{z([]),V?.(p?[]:"")},Oe=()=>{let N=h.length>0?h.map(s=>s.title).join(", "):H;return D?N:n};return(0,r.jsxs)("div",{className:a("flex flex-col gap-2",A),children:[D&&n&&(0,r.jsx)(De,{text:n,className:f?.label}),(0,r.jsxs)("div",{className:"relative flex",children:[(0,r.jsxs)(ge,{open:oe,onOpenChange:ae,children:[(0,r.jsx)(ve,{asChild:!0,disabled:i.length===0,children:(0,r.jsxs)("div",{ref:t,className:a(rt({variant:L,size:W}),h.length>0&&"pr-10",f?.trigger),"aria-expanded":oe,children:[D&&ie&&(0,r.jsx)(ie,{className:"h-4 w-4 shrink-0"}),Be&&h.length>0&&(0,r.jsx)(ke,{variant:"purple",children:h.length}),(0,r.jsx)("span",{className:a("w-full truncate leading-normal",D&&h.length==0&&"text-grey-40"),children:Oe()}),h.length==0&&(0,r.jsx)(w.ChevronDownIcon,{className:"shrink-0 transform group-data-[state=open]:rotate-180",size:"16"})]})}),(0,r.jsx)(G,{children:(0,r.jsxs)($,{className:a("flex w-full max-w-xs flex-col overflow-hidden p-0","max-h-[--radix-popover-content-available-height]",f?.content),collisionPadding:8,sideOffset:4,align:"start",children:[!Me&&(0,r.jsx)(F,{placeholder:"Search..."}),(0,r.jsxs)(Y,{children:[(0,r.jsx)(J,{children:"No results"}),(0,r.jsx)(K,{children:i.map(({id:N,...s})=>(0,r.jsx)(U,{value:s.value,onSelect:He,children:(0,r.jsx)(Re,{className:a(f?.items,"truncate py-1"),isSelected:h.some(y=>y.value===s.value),hasCheckbox:p,...s})},N))})]}),!!O&&(0,r.jsx)(Q,{}),O&&O({close:re})]})})]}),D&&h.length>0&&(0,r.jsx)("button",{type:"button",className:"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",onClick:Ae,children:(0,r.jsx)(w.CircleX,{className:"h-4 w-4 text-green-100"})})]})]})});T.displayName="Combobox";var rt=(0,Ie.cva)("group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5",{variants:{variant:{default:["w-full","max-w-80","rounded-lg"],chip:["font-bold","rounded-3xl","data-[state=open]:bg-black","data-[state=open]:text-white"]},size:{small:["h-8","p-1","pl-2","text-xs"],normal:["h-9","p-2","pl-3","text-sm"],large:["h-10","p-3","pl-4","text-base"]}},defaultVariants:{variant:"default",size:"normal"}});var Ee=require("@radix-ui/react-slot"),Te=require("cva"),Le=require("react"),We=require("react/jsx-runtime"),B=(0,Le.forwardRef)(({className:e,variant:t,size:o,asChild:n=!1,...i},f)=>(0,We.jsx)(n?Ee.Slot:"button",{className:a(nt({variant:t,size:o,className:e})),ref:f,...i}));B.displayName="Button";var nt=(0,Te.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"]}]});var g=require("react/jsx-runtime");function lt(){let[e,t]=(0,ee.useState)([]),[o,n]=(0,ee.useState)(""),i=[{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}];return(0,g.jsxs)("div",{className:"flex flex-row flex-wrap items-center gap-4 p-4",children:[(0,g.jsx)(T,{label:"US bands from the 90's",placeholder:"Select a band",icon:"Music",options:i,multiselect:!0,onChange:t,value:e}),(0,g.jsx)(T,{label:"US bands from the 90's",options:i,variant:"chip",multiselect:!0,onChange:t,value:e}),(0,g.jsx)(T,{label:"Fruit label",variant:"chip",options:[{title:"Cherry",value:"Cherry",id:1,icon:"Cherry"},{title:"Grape",value:"Grape",id:2,icon:"Grape"}],value:o,onChange:n,children:({close:p})=>(0,g.jsxs)("div",{className:"flex flex-row items-center justify-between bg-white p-2 pl-4",children:[(0,g.jsx)(B,{variant:"link",tabIndex:-1,onClick:p,children:"Clear"}),(0,g.jsx)(B,{variant:"primary",size:"small",tabIndex:-1,children:"Apply"})]})}),e.map(p=>(0,g.jsx)("span",{className:"text-green-80",children:p},p)),(0,g.jsx)("span",{className:"text-purple-100",children:o})]})}var Ve=lt;var te=require("react/jsx-runtime");function st(){return(0,te.jsx)("div",{children:(0,te.jsx)(Ve,{})})}var ze=st;var _e=require("react/jsx-runtime");async function mt(){return(0,_e.jsx)(ze,{})}var pt=mt;
|
|
2
2
|
//# sourceMappingURL=page.cjs.map
|
package/dist/app/page.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/app/page.tsx","../../src/components/demos/ComboboxDemo.tsx","../../src/components/ui/Combobox.tsx","../../src/lib/utils.ts","../../src/components/primitives/command.tsx","../../src/components/primitives/dialog.tsx","../../src/components/primitives/popover.tsx","../../src/components/primitives/separator.tsx","../../src/components/ui/ListItem.tsx","../../src/components/ui/Checkbox.tsx","../../src/components/ui/Badge.tsx","../../src/components/ui/Label.tsx","../../src/components/ui/Button.tsx","../../src/components/demos/index.tsx"],"sourcesContent":["import Demos from '@/components/demos'\n\nasync function Page() {\n return <Demos />\n}\n\nexport default Page\n","'use client'\n\nimport { useState } from 'react'\nimport { Combobox } from '@/components/ui/Combobox'\nimport { Button } from '@/components/ui/Button'\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=\"flex flex-row flex-wrap items-center gap-4 p-4\">\n <Combobox\n label=\"US bands from the 90's\"\n placeholder=\"Select a band\"\n icon=\"Music\"\n options={bands}\n multiselect\n onChange={setSelectedBands}\n value={selectedBands}\n />\n <Combobox\n label=\"US bands from the 90's\"\n options={bands}\n variant=\"chip\"\n multiselect\n onChange={setSelectedBands}\n value={selectedBands}\n />\n <Combobox\n label=\"Fruit label\"\n variant=\"chip\"\n options={fruits}\n value={selectedFruit}\n onChange={setSelectedFruit}\n >\n {({ close }) => (\n <div className=\"flex flex-row items-center justify-between bg-white p-2 pl-4\">\n <Button variant=\"link\" tabIndex={-1} onClick={close}>\n Clear\n </Button>\n <Button variant=\"primary\" size=\"small\" tabIndex={-1}>\n Apply\n </Button>\n </div>\n )}\n </Combobox>\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 { ComponentProps, forwardRef, useEffect, useState } from 'react'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { cva, type VariantProps } from 'cva'\nimport { cn } from '@/lib/utils'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\n\nimport ListItem from '@/components/ui/ListItem'\nimport { Badge } from '@/components/ui/Badge'\nimport Label from '@/components/ui/Label'\n\ntype Icon = { icon?: keyof typeof icons }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: number; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { label?: string; options: Option[]; classNames?: ClassNames; placeholder?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n value,\n label,\n options,\n classNames,\n multiselect,\n placeholder,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const close = () => setOpen(false)\n\n useEffect(() => {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }, [value])\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n if (multiselect) {\n return setSelected((prev) => {\n const newSelected = prev.some((o) => o.value === value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n handleChange?.(newSelected.map((o) => o.value))\n return newSelected\n })\n }\n setSelected([option])\n handleChange?.(option.value)\n close()\n }\n\n const handleClear = () => {\n setSelected([])\n multiselect ? handleChange?.([]) : handleChange?.('')\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = selected.length > 0 ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n {isDefault && label && <Label text={label} className={classNames?.label} />}\n\n <div className=\"relative\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild disabled={options.length === 0}>\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n selected.length > 0 && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && selected.length > 0 && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && selected.length == 0 && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {selected.length == 0 && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <Command>\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem key={id} value={option.value} onSelect={handleSelect}>\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </PopoverContent>\n </Command>\n </Popover>\n\n {isDefault && selected.length > 0 && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'max-w-80', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'p-1', 'pl-2', 'text-xs'],\n normal: ['h-9', 'p-2', 'pl-3', 'text-sm'],\n large: ['h-10', 'p-3', 'pl-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\nimport * as React from 'react'\n\nimport { Dialog, DialogContent } from '@/components/primitives/dialog'\n\nimport { cn } from '@/lib/utils'\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ntype CommandDialogProps = DialogProps\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"m-1 flex items-center rounded-xl border px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-neutral-500 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-neutral-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500',\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-neutral-200', className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-neutral-500', className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n}\n","'use client'\n\nimport { cn } from '@/lib/utils'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport * as React from 'react'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-neutral-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-neutral-800 dark:bg-neutral-950',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-500 dark:text-neutral-400', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\n\nimport { cn } from '@/lib/utils'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","'use client'\r\n\r\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '@/lib/utils'\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n 'shrink-0 bg-grey-10',\r\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName\r\n\r\nexport { Separator }\r\n","import { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\nimport { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport Checkbox from '@/components/ui/Checkbox'\nimport { icons } from 'lucide-react'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox id={value} checked={isSelected} onClick={(e) => e.preventDefault()} />\n )}\n <div>\n <p>{title}</p>\n <p className=\"text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n","'use client'\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check, Minus } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst CheckboxToggle = forwardRef<\n ElementRef<typeof CheckboxPrimitive.Root>,\n ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'group',\n 'peer',\n 'h-5',\n 'w-5',\n 'shrink-0',\n 'rounded-md',\n 'border',\n 'border-grey-10',\n 'outline',\n 'outline-1',\n 'outline-offset-2',\n 'outline-transparent',\n 'hover:border-grey-20',\n 'focus:outline-purple-100',\n 'active:border-green-80',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=checked]:bg-green-80',\n 'data-[state=indeterminate]:bg-green-80',\n 'data-[state=checked]:text-white',\n 'data-[state=indeterminate]:text-primary-foreground',\n props.disabled &&\n 'data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className=\"hidden h-4 w-4 group-data-[state=checked]:block\" />\n <Minus className=\"hidden h-4 w-4 group-data-[state=indeterminate]:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckboxToggle.displayName = CheckboxPrimitive.Root.displayName\n\ninterface Props extends CheckboxPrimitive.CheckboxProps, PropsWithChildren {\n error?: string\n classNames?: {\n wrapper?: string\n label?: string\n }\n}\n\nconst Checkbox = forwardRef<ElementRef<typeof CheckboxPrimitive.Root>, Props>(\n ({ classNames, children, ...props }, ref) => {\n const { disabled } = props\n const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`\n const labelClassName = disabled ? 'text-grey-40 pointer-events-none' : ''\n return (\n <div className={cn('flex space-x-2', classNames?.wrapper)}>\n <CheckboxToggle id={id} disabled={disabled} ref={ref} {...props} />\n <label htmlFor={id} className={cn(labelClassName, classNames?.label)}>\n {children}\n </label>\n </div>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n","import { cva, type VariantProps } from 'cva'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva('rounded-full px-2 py-0.5 text-xs font-semibold', {\n variants: {\n variant: {\n green: 'bg-green-90 text-white',\n pickle: 'bg-pickle-100 text-black',\n purple: 'bg-purple-100 text-white',\n },\n },\n defaultVariants: {\n variant: 'green',\n },\n})\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n","import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n","import { cn } from '@/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 ComboboxDemo from '@/components/demos/ComboboxDemo'\n\nfunction Demos() {\n return (\n <div>\n <ComboboxDemo />\n </div>\n )\n}\n\nexport default Demos\n"],"mappings":"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","names":["page_exports","__export","page_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","import_jsx_runtime","DialogPortal","DialogOverlay","className","props","ref","cn","DialogContent","children","DialogPortal","DialogHeader","DialogFooter","DialogTitle","DialogDescription","import_jsx_runtime","Command","className","props","ref","CommandPrimitive","cn","CommandInput","className","props","ref","CommandPrimitive","cn","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","React","PopoverPrimitive","import_jsx_runtime","Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","cn","SeparatorPrimitive","React","import_jsx_runtime","Separator","className","orientation","decorative","props","ref","cn","import_lucide_react","CheckboxPrimitive","import_lucide_react","import_react","import_jsx_runtime","CheckboxToggle","className","props","ref","cn","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","import_lucide_react","import_jsx_runtime","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","ListItem_default","import_cva","import_jsx_runtime","badgeVariants","Badge","className","variant","props","cn","import_jsx_runtime","Label","text","className","props","cn","Label_default","import_jsx_runtime","Combobox","props","ref","value","label","options","classNames","multiselect","placeholder","variant","size","icon","className","handleChange","footer","selected","setSelected","open","setOpen","IconComponent","hideSearchBox","isDefault","isChip","close","v","o","handleSelect","option","prev","newSelected","handleClear","handleDisplayValue","defaultLabel","cn","Label_default","Popover","PopoverTrigger","triggerVariants","Badge","Command","PopoverContent","CommandInput","CommandList","CommandEmpty","CommandGroup","id","CommandItem","ListItem_default","s","Separator","import_react_slot","import_cva","import_react","import_jsx_runtime","Button","className","variant","size","asChild","props","ref","cn","buttonVariants","import_jsx_runtime","ComboboxDemo","selectedBands","setSelectedBands","selectedFruit","setSelectedFruit","bands","Combobox","close","Button","band","ComboboxDemo_default","import_jsx_runtime","Demos","ComboboxDemo_default","demos_default","import_jsx_runtime","Page","demos_default","page_default"]}
|
|
1
|
+
{"version":3,"sources":["../../src/app/page.tsx","../../src/components/demos/ComboboxDemo.tsx","../../src/components/ui/Combobox.tsx","../../src/lib/utils.ts","../../src/components/primitives/command.tsx","../../src/components/primitives/dialog.tsx","../../src/components/primitives/popover.tsx","../../src/components/primitives/separator.tsx","../../src/components/ui/ListItem.tsx","../../src/components/ui/Checkbox.tsx","../../src/components/ui/Badge.tsx","../../src/components/ui/Label.tsx","../../src/components/ui/Button.tsx","../../src/components/demos/index.tsx"],"sourcesContent":["import Demos from '@/components/demos'\n\nasync function Page() {\n return <Demos />\n}\n\nexport default Page\n","'use client'\n\nimport { useState } from 'react'\nimport { Combobox } from '@/components/ui/Combobox'\nimport { Button } from '@/components/ui/Button'\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=\"flex flex-row flex-wrap items-center gap-4 p-4\">\n <Combobox\n label=\"US bands from the 90's\"\n placeholder=\"Select a band\"\n icon=\"Music\"\n options={bands}\n multiselect\n onChange={setSelectedBands}\n value={selectedBands}\n />\n <Combobox\n label=\"US bands from the 90's\"\n options={bands}\n variant=\"chip\"\n multiselect\n onChange={setSelectedBands}\n value={selectedBands}\n />\n <Combobox\n label=\"Fruit label\"\n variant=\"chip\"\n options={fruits}\n value={selectedFruit}\n onChange={setSelectedFruit}\n >\n {({ close }) => (\n <div className=\"flex flex-row items-center justify-between bg-white p-2 pl-4\">\n <Button variant=\"link\" tabIndex={-1} onClick={close}>\n Clear\n </Button>\n <Button variant=\"primary\" size=\"small\" tabIndex={-1}>\n Apply\n </Button>\n </div>\n )}\n </Combobox>\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 { ComponentProps, forwardRef, useEffect, useState } from 'react'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { cva, type VariantProps } from 'cva'\nimport { cn } from '@/lib/utils'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\n\nimport ListItem from '@/components/ui/ListItem'\nimport { Badge } from '@/components/ui/Badge'\nimport Label from '@/components/ui/Label'\n\ntype Icon = { icon?: keyof typeof icons }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: number; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { label?: string; options: Option[]; classNames?: ClassNames; placeholder?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n value,\n label,\n options,\n classNames,\n multiselect,\n placeholder,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const close = () => setOpen(false)\n\n useEffect(() => {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }, [value])\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n if (multiselect) {\n return setSelected((prev) => {\n const newSelected = prev.some((o) => o.value === value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n handleChange?.(newSelected.map((o) => o.value))\n return newSelected\n })\n }\n setSelected([option])\n handleChange?.(option.value)\n close()\n }\n\n const handleClear = () => {\n setSelected([])\n multiselect ? handleChange?.([]) : handleChange?.('')\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = selected.length > 0 ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n {isDefault && label && <Label text={label} className={classNames?.label} />}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild disabled={options.length === 0}>\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n selected.length > 0 && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && selected.length > 0 && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && selected.length == 0 && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {selected.length == 0 && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <Command>\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem key={id} value={option.value} onSelect={handleSelect}>\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </PopoverContent>\n </Command>\n </Popover>\n\n {isDefault && selected.length > 0 && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'max-w-80', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'p-1', 'pl-2', 'text-xs'],\n normal: ['h-9', 'p-2', 'pl-3', 'text-sm'],\n large: ['h-10', 'p-3', 'pl-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\nimport * as React from 'react'\n\nimport { Dialog, DialogContent } from '@/components/primitives/dialog'\n\nimport { cn } from '@/lib/utils'\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ntype CommandDialogProps = DialogProps\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"m-1 flex items-center rounded-xl border px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-neutral-500 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-neutral-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500',\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-neutral-200', className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-neutral-500', className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n}\n","'use client'\n\nimport { cn } from '@/lib/utils'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport * as React from 'react'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-neutral-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-neutral-800 dark:bg-neutral-950',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-500 dark:text-neutral-400', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\n\nimport { cn } from '@/lib/utils'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","'use client'\r\n\r\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '@/lib/utils'\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n 'shrink-0 bg-grey-10',\r\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName\r\n\r\nexport { Separator }\r\n","import { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\nimport { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport Checkbox from '@/components/ui/Checkbox'\nimport { icons } from 'lucide-react'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <Checkbox id={value} checked={isSelected} onClick={(e) => e.preventDefault()} />\n )}\n <div>\n <p>{title}</p>\n <p className=\"text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n","'use client'\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check, Minus } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst CheckboxToggle = forwardRef<\n ElementRef<typeof CheckboxPrimitive.Root>,\n ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'group',\n 'peer',\n 'h-5',\n 'w-5',\n 'shrink-0',\n 'rounded-md',\n 'border',\n 'border-grey-10',\n 'outline',\n 'outline-1',\n 'outline-offset-2',\n 'outline-transparent',\n 'hover:border-grey-20',\n 'focus:outline-purple-100',\n 'active:border-green-80',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=checked]:bg-green-80',\n 'data-[state=indeterminate]:bg-green-80',\n 'data-[state=checked]:text-white',\n 'data-[state=indeterminate]:text-primary-foreground',\n props.disabled &&\n 'data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className=\"hidden h-4 w-4 group-data-[state=checked]:block\" />\n <Minus className=\"hidden h-4 w-4 group-data-[state=indeterminate]:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckboxToggle.displayName = CheckboxPrimitive.Root.displayName\n\ninterface Props extends CheckboxPrimitive.CheckboxProps, PropsWithChildren {\n error?: string\n classNames?: {\n wrapper?: string\n label?: string\n }\n}\n\nconst Checkbox = forwardRef<ElementRef<typeof CheckboxPrimitive.Root>, Props>(\n ({ classNames, children, ...props }, ref) => {\n const { disabled } = props\n const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`\n const labelClassName = disabled ? 'text-grey-40 pointer-events-none' : ''\n return (\n <div className={cn('flex space-x-2', classNames?.wrapper)}>\n <CheckboxToggle id={id} disabled={disabled} ref={ref} {...props} />\n <label htmlFor={id} className={cn(labelClassName, classNames?.label)}>\n {children}\n </label>\n </div>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n","import { cva, type VariantProps } from 'cva'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva('rounded-full px-2 py-0.5 text-xs font-semibold', {\n variants: {\n variant: {\n green: 'bg-green-90 text-white',\n pickle: 'bg-pickle-100 text-black',\n purple: 'bg-purple-100 text-white',\n },\n },\n defaultVariants: {\n variant: 'green',\n },\n})\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n","import { type ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ninterface Props extends ComponentPropsWithoutRef<'label'> {\n text?: string\n}\n\nfunction Label({ text, className, ...props }: Readonly<Props>) {\n if (!text) return null\n\n return (\n <label\n className={cn(\n 'text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n >\n {text}\n </label>\n )\n}\n\nexport default Label\n","import { cn } from '@/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 ComboboxDemo from '@/components/demos/ComboboxDemo'\n\nfunction Demos() {\n return (\n <div>\n <ComboboxDemo />\n </div>\n )\n}\n\nexport default Demos\n"],"mappings":"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","names":["page_exports","__export","page_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","import_jsx_runtime","DialogPortal","DialogOverlay","className","props","ref","cn","DialogContent","children","DialogPortal","DialogHeader","DialogFooter","DialogTitle","DialogDescription","import_jsx_runtime","Command","className","props","ref","CommandPrimitive","cn","CommandInput","className","props","ref","CommandPrimitive","cn","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","React","PopoverPrimitive","import_jsx_runtime","Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","cn","SeparatorPrimitive","React","import_jsx_runtime","Separator","className","orientation","decorative","props","ref","cn","import_lucide_react","CheckboxPrimitive","import_lucide_react","import_react","import_jsx_runtime","CheckboxToggle","className","props","ref","cn","Checkbox","classNames","children","disabled","id","labelClassName","Checkbox_default","import_lucide_react","import_jsx_runtime","ListItem","icon","hasCheckbox","isSelected","className","title","value","description","props","optionIcon","IconComponent","cn","Checkbox_default","e","ListItem_default","import_cva","import_jsx_runtime","badgeVariants","Badge","className","variant","props","cn","import_jsx_runtime","Label","text","className","props","cn","Label_default","import_jsx_runtime","Combobox","props","ref","value","label","options","classNames","multiselect","placeholder","variant","size","icon","className","handleChange","footer","selected","setSelected","open","setOpen","IconComponent","hideSearchBox","isDefault","isChip","close","v","o","handleSelect","option","prev","newSelected","handleClear","handleDisplayValue","defaultLabel","cn","Label_default","Popover","PopoverTrigger","triggerVariants","Badge","Command","PopoverContent","CommandInput","CommandList","CommandEmpty","CommandGroup","id","CommandItem","ListItem_default","s","Separator","import_react_slot","import_cva","import_react","import_jsx_runtime","Button","className","variant","size","asChild","props","ref","cn","buttonVariants","import_jsx_runtime","ComboboxDemo","selectedBands","setSelectedBands","selectedFruit","setSelectedFruit","bands","Combobox","close","Button","band","ComboboxDemo_default","import_jsx_runtime","Demos","ComboboxDemo_default","demos_default","import_jsx_runtime","Page","demos_default","page_default"]}
|
package/dist/app/page.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as ye}from"react";import{forwardRef as qe,useEffect as Qe,useState as he}from"react";import{ChevronDownIcon as Ze,CircleX as je,icons as et}from"lucide-react";import{cva as tt}from"cva";import{clsx as Se}from"clsx";import{twMerge as Ie}from"tailwind-merge";function a(...e){return Ie(Se(e))}import{Command as p}from"cmdk";import{Search as _e}from"lucide-react";import*as b from"react";import*as r from"@radix-ui/react-dialog";import{X as Ee}from"lucide-react";import*as D from"react";import{jsx as y,jsxs as H}from"react/jsx-runtime";var Te=r.Portal;var ee=D.forwardRef(({className:e,...t},o)=>y(r.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}));ee.displayName=r.Overlay.displayName;var te=D.forwardRef(({className:e,children:t,...o},n)=>H(Te,{children:[y(ee,{}),H(r.Content,{ref:n,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,children:[t,H(r.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",children:[y(Ee,{className:"h-4 w-4"}),y("span",{className:"sr-only",children:"Close"})]})]})]}));te.displayName=r.Content.displayName;var Le=({className:e,...t})=>y("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})=>y("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});We.displayName="DialogFooter";var Ve=D.forwardRef(({className:e,...t},o)=>y(r.Title,{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));Ve.displayName=r.Title.displayName;var ze=D.forwardRef(({className:e,...t},o)=>y(r.Description,{ref:o,className:a("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));ze.displayName=r.Description.displayName;import{jsx as v,jsxs as He}from"react/jsx-runtime";var A=b.forwardRef(({className:e,...t},o)=>v(p,{ref:o,className:a("flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",e),...t}));A.displayName=p.displayName;var O=b.forwardRef(({className:e,...t},o)=>He("div",{className:"m-1 flex items-center rounded-xl border px-3","cmdk-input-wrapper":"",children:[v(_e,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),v(p.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})]}));O.displayName=p.Input.displayName;var G=b.forwardRef(({className:e,...t},o)=>v(p.List,{ref:o,className:a("overflow-y-auto overflow-x-hidden",e),...t}));G.displayName=p.List.displayName;var F=b.forwardRef((e,t)=>v(p.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));F.displayName=p.Empty.displayName;var Y=b.forwardRef(({className:e,...t},o)=>v(p.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}));Y.displayName=p.Group.displayName;var Me=b.forwardRef(({className:e,...t},o)=>v(p.Separator,{ref:o,className:a("-mx-1 h-px bg-neutral-200",e),...t}));Me.displayName=p.Separator.displayName;var J=b.forwardRef(({className:e,...t},o)=>v(p.Item,{ref:o,className:a("relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50",e),...t}));J.displayName=p.Item.displayName;var Be=({className:e,...t})=>v("span",{className:a("ml-auto text-xs tracking-widest text-neutral-500",e),...t});Be.displayName="CommandShortcut";import*as ae from"react";import*as h from"@radix-ui/react-popover";import{jsx as oe}from"react/jsx-runtime";var ie=h.Root,re=h.Trigger,K=ae.forwardRef(({className:e,align:t="center",sideOffset:o=4,...n},i)=>oe(h.Portal,{children:oe(h.Content,{ref:i,align:t,sideOffset:o,className:a("z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));K.displayName=h.Content.displayName;import*as U from"@radix-ui/react-separator";import*as ne from"react";import{jsx as Ae}from"react/jsx-runtime";var X=ne.forwardRef(({className:e,orientation:t="horizontal",decorative:o=!0,...n},i)=>Ae(U.Root,{ref:i,decorative:o,orientation:t,className:a("shrink-0 bg-grey-10",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));X.displayName=U.Root.displayName;import{CheckIcon as Fe}from"lucide-react";import*as I from"@radix-ui/react-checkbox";import{Check as Oe,Minus as Ge}from"lucide-react";import{forwardRef as le}from"react";import{jsx as S,jsxs as de}from"react/jsx-runtime";var se=le(({className:e,...t},o)=>S(I.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&&"data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",e),...t,children:de(I.Indicator,{className:"flex items-center justify-center text-current",children:[S(Oe,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),S(Ge,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"})]})}));se.displayName=I.Root.displayName;var me=le(({classNames:e,children:t,...o},n)=>{let{disabled:i}=o,f=o.id??`${o.name??o.value?.toString()}-checkbox`,m=i?"text-grey-40 pointer-events-none":"";return de("div",{className:a("flex space-x-2",e?.wrapper),children:[S(se,{id:f,disabled:i,ref:n,...o}),S("label",{htmlFor:f,className:a(m,e?.label),children:t})]})});me.displayName="Checkbox";var pe=me;import{icons as ce}from"lucide-react";import{jsx as R,jsxs as fe}from"react/jsx-runtime";function Ye({icon:e,hasCheckbox:t,isSelected:o,className:n,title:i,value:f,description:m,..._}){let L=e?(x=>{if(x in ce){let M=ce[x];return R(M,{size:14})}return null})(e):void 0;return fe("li",{className:a("group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",n),..._,"data-state":o?"checked":"unchecked",children:[L&&R("span",{className:"mr-2",children:L}),t&&R(pe,{id:f,checked:o,onClick:x=>x.preventDefault()}),fe("div",{children:[R("p",{children:i}),R("p",{className:"text-xs text-grey-80",children:m})]}),R(Fe,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16})]})}var ue=Ye;import{cva as Je}from"cva";import{jsx as Ue}from"react/jsx-runtime";var Ke=Je("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 ge({className:e,variant:t,...o}){return Ue("div",{className:a(Ke({variant:t}),e),...o})}import{jsx as $e}from"react/jsx-runtime";function Xe({text:e,className:t,...o}){return e?$e("label",{className:a("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o,children:e}):null}var ve=Xe;import{jsx as s,jsxs as N}from"react/jsx-runtime";var E=qe((e,t)=>{let{value:o,label:n,options:i,classNames:f,multiselect:m,placeholder:_,variant:T="default",size:L,icon:x,className:M,onChange:W,children:B}=e,[u,V]=he([]),[$,q]=he(!1),Q=x&&et[x],Re=i?.length<=5,k=T==="default",Ne=T==="chip",Z=()=>q(!1);Qe(()=>{V((m?o??[]:o?[o]:[]).map(l=>i.find(g=>g.value===l)).filter(l=>l!==void 0))},[o]);let ke=C=>{let l=i.find(g=>g.value===C);if(l){if(m)return V(g=>{let j=g.some(w=>w.value===C)?g.filter(w=>w!==l):[...g,l];return W?.(j.map(w=>w.value)),j});V([l]),W?.(l.value),Z()}},we=()=>{V([]),W?.(m?[]:"")},De=()=>{let C=u.length>0?u.map(l=>l.title).join(", "):_;return k?C:n};return N("div",{className:a("flex flex-col gap-2",M),children:[k&&n&&s(ve,{text:n,className:f?.label}),N("div",{className:"relative",children:[N(ie,{open:$,onOpenChange:q,children:[s(re,{asChild:!0,disabled:i.length===0,children:N("div",{ref:t,className:a(ot({variant:T,size:L}),u.length>0&&"pr-10",f?.trigger),"aria-expanded":$,children:[k&&Q&&s(Q,{className:"h-4 w-4 shrink-0"}),Ne&&u.length>0&&s(ge,{variant:"purple",children:u.length}),s("span",{className:a("w-full truncate leading-normal",k&&u.length==0&&"text-grey-40"),children:De()}),u.length==0&&s(Ze,{className:"shrink-0 transform group-data-[state=open]:rotate-180",size:"16"})]})}),s(A,{children:N(K,{className:a("flex w-full max-w-xs flex-col overflow-hidden p-0","max-h-[--radix-popover-content-available-height]",f?.content),collisionPadding:8,sideOffset:4,align:"start",children:[!Re&&s(O,{placeholder:"Search..."}),N(G,{children:[s(F,{children:"No results"}),s(Y,{children:i.map(({id:C,...l})=>s(J,{value:l.value,onSelect:ke,children:s(ue,{className:a(f?.items,"truncate py-1"),isSelected:u.some(g=>g.value===l.value),hasCheckbox:m,...l})},C))})]}),!!B&&s(X,{}),B&&B({close:Z})]})})]}),k&&u.length>0&&s("button",{type:"button",className:"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",onClick:we,children:s(je,{className:"h-4 w-4 text-green-100"})})]})]})});E.displayName="Combobox";var ot=tt("group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5",{variants:{variant:{default:["w-full","max-w-80","rounded-lg"],chip:["font-bold","rounded-3xl","data-[state=open]:bg-black","data-[state=open]:text-white"]},size:{small:["h-8","p-1","pl-2","text-xs"],normal:["h-9","p-2","pl-3","text-sm"],large:["h-10","p-3","pl-4","text-base"]}},defaultVariants:{variant:"default",size:"normal"}});import{Slot as at}from"@radix-ui/react-slot";import{cva as it}from"cva";import{forwardRef as rt}from"react";import{jsx as lt}from"react/jsx-runtime";var z=rt(({className:e,variant:t,size:o,asChild:n=!1,...i},f)=>lt(n?at:"button",{className:a(nt({variant:t,size:o,className:e})),ref:f,...i}));z.displayName="Button";var nt=it(["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"]}]});import{jsx as P,jsxs as be}from"react/jsx-runtime";function st(){let[e,t]=ye([]),[o,n]=ye(""),i=[{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}];return be("div",{className:"flex flex-row flex-wrap items-center gap-4 p-4",children:[P(E,{label:"US bands from the 90's",placeholder:"Select a band",icon:"Music",options:i,multiselect:!0,onChange:t,value:e}),P(E,{label:"US bands from the 90's",options:i,variant:"chip",multiselect:!0,onChange:t,value:e}),P(E,{label:"Fruit label",variant:"chip",options:[{title:"Cherry",value:"Cherry",id:1,icon:"Cherry"},{title:"Grape",value:"Grape",id:2,icon:"Grape"}],value:o,onChange:n,children:({close:m})=>be("div",{className:"flex flex-row items-center justify-between bg-white p-2 pl-4",children:[P(z,{variant:"link",tabIndex:-1,onClick:m,children:"Clear"}),P(z,{variant:"primary",size:"small",tabIndex:-1,children:"Apply"})]})}),e.map(m=>P("span",{className:"text-green-80",children:m},m)),P("span",{className:"text-purple-100",children:o})]})}var xe=st;import{jsx as Ce}from"react/jsx-runtime";function mt(){return Ce("div",{children:Ce(xe,{})})}var Pe=mt;import{jsx as dt}from"react/jsx-runtime";async function pt(){return dt(Pe,{})}var Ho=pt;export{Ho as default};
|
|
1
|
+
import{useState as ye}from"react";import{forwardRef as qe,useEffect as Qe,useState as he}from"react";import{ChevronDownIcon as Ze,CircleX as je,icons as et}from"lucide-react";import{cva as tt}from"cva";import{clsx as Se}from"clsx";import{twMerge as Ie}from"tailwind-merge";function a(...e){return Ie(Se(e))}import{Command as p}from"cmdk";import{Search as _e}from"lucide-react";import*as b from"react";import*as r from"@radix-ui/react-dialog";import{X as Ee}from"lucide-react";import*as D from"react";import{jsx as y,jsxs as H}from"react/jsx-runtime";var Te=r.Portal;var ee=D.forwardRef(({className:e,...t},o)=>y(r.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}));ee.displayName=r.Overlay.displayName;var te=D.forwardRef(({className:e,children:t,...o},n)=>H(Te,{children:[y(ee,{}),H(r.Content,{ref:n,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,children:[t,H(r.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",children:[y(Ee,{className:"h-4 w-4"}),y("span",{className:"sr-only",children:"Close"})]})]})]}));te.displayName=r.Content.displayName;var Le=({className:e,...t})=>y("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})=>y("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});We.displayName="DialogFooter";var Ve=D.forwardRef(({className:e,...t},o)=>y(r.Title,{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));Ve.displayName=r.Title.displayName;var ze=D.forwardRef(({className:e,...t},o)=>y(r.Description,{ref:o,className:a("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));ze.displayName=r.Description.displayName;import{jsx as v,jsxs as He}from"react/jsx-runtime";var A=b.forwardRef(({className:e,...t},o)=>v(p,{ref:o,className:a("flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",e),...t}));A.displayName=p.displayName;var O=b.forwardRef(({className:e,...t},o)=>He("div",{className:"m-1 flex items-center rounded-xl border px-3","cmdk-input-wrapper":"",children:[v(_e,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),v(p.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})]}));O.displayName=p.Input.displayName;var G=b.forwardRef(({className:e,...t},o)=>v(p.List,{ref:o,className:a("overflow-y-auto overflow-x-hidden",e),...t}));G.displayName=p.List.displayName;var F=b.forwardRef((e,t)=>v(p.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));F.displayName=p.Empty.displayName;var Y=b.forwardRef(({className:e,...t},o)=>v(p.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}));Y.displayName=p.Group.displayName;var Me=b.forwardRef(({className:e,...t},o)=>v(p.Separator,{ref:o,className:a("-mx-1 h-px bg-neutral-200",e),...t}));Me.displayName=p.Separator.displayName;var J=b.forwardRef(({className:e,...t},o)=>v(p.Item,{ref:o,className:a("relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50",e),...t}));J.displayName=p.Item.displayName;var Be=({className:e,...t})=>v("span",{className:a("ml-auto text-xs tracking-widest text-neutral-500",e),...t});Be.displayName="CommandShortcut";import*as ae from"react";import*as h from"@radix-ui/react-popover";import{jsx as oe}from"react/jsx-runtime";var ie=h.Root,re=h.Trigger,K=ae.forwardRef(({className:e,align:t="center",sideOffset:o=4,...n},i)=>oe(h.Portal,{children:oe(h.Content,{ref:i,align:t,sideOffset:o,className:a("z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));K.displayName=h.Content.displayName;import*as U from"@radix-ui/react-separator";import*as ne from"react";import{jsx as Ae}from"react/jsx-runtime";var X=ne.forwardRef(({className:e,orientation:t="horizontal",decorative:o=!0,...n},i)=>Ae(U.Root,{ref:i,decorative:o,orientation:t,className:a("shrink-0 bg-grey-10",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));X.displayName=U.Root.displayName;import{CheckIcon as Fe}from"lucide-react";import*as I from"@radix-ui/react-checkbox";import{Check as Oe,Minus as Ge}from"lucide-react";import{forwardRef as le}from"react";import{jsx as S,jsxs as de}from"react/jsx-runtime";var se=le(({className:e,...t},o)=>S(I.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&&"data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",e),...t,children:de(I.Indicator,{className:"flex items-center justify-center text-current",children:[S(Oe,{className:"hidden h-4 w-4 group-data-[state=checked]:block"}),S(Ge,{className:"hidden h-4 w-4 group-data-[state=indeterminate]:block"})]})}));se.displayName=I.Root.displayName;var me=le(({classNames:e,children:t,...o},n)=>{let{disabled:i}=o,f=o.id??`${o.name??o.value?.toString()}-checkbox`,m=i?"text-grey-40 pointer-events-none":"";return de("div",{className:a("flex space-x-2",e?.wrapper),children:[S(se,{id:f,disabled:i,ref:n,...o}),S("label",{htmlFor:f,className:a(m,e?.label),children:t})]})});me.displayName="Checkbox";var pe=me;import{icons as ce}from"lucide-react";import{jsx as R,jsxs as fe}from"react/jsx-runtime";function Ye({icon:e,hasCheckbox:t,isSelected:o,className:n,title:i,value:f,description:m,..._}){let L=e?(x=>{if(x in ce){let M=ce[x];return R(M,{size:14})}return null})(e):void 0;return fe("li",{className:a("group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",n),..._,"data-state":o?"checked":"unchecked",children:[L&&R("span",{className:"mr-2",children:L}),t&&R(pe,{id:f,checked:o,onClick:x=>x.preventDefault()}),fe("div",{children:[R("p",{children:i}),R("p",{className:"text-xs text-grey-80",children:m})]}),R(Fe,{className:"absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",size:16})]})}var ue=Ye;import{cva as Je}from"cva";import{jsx as Ue}from"react/jsx-runtime";var Ke=Je("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 ge({className:e,variant:t,...o}){return Ue("div",{className:a(Ke({variant:t}),e),...o})}import{jsx as $e}from"react/jsx-runtime";function Xe({text:e,className:t,...o}){return e?$e("label",{className:a("text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...o,children:e}):null}var ve=Xe;import{jsx as s,jsxs as N}from"react/jsx-runtime";var E=qe((e,t)=>{let{value:o,label:n,options:i,classNames:f,multiselect:m,placeholder:_,variant:T="default",size:L,icon:x,className:M,onChange:W,children:B}=e,[u,V]=he([]),[$,q]=he(!1),Q=x&&et[x],Re=i?.length<=5,k=T==="default",Ne=T==="chip",Z=()=>q(!1);Qe(()=>{V((m?o??[]:o?[o]:[]).map(l=>i.find(g=>g.value===l)).filter(l=>l!==void 0))},[o]);let ke=C=>{let l=i.find(g=>g.value===C);if(l){if(m)return V(g=>{let j=g.some(w=>w.value===C)?g.filter(w=>w!==l):[...g,l];return W?.(j.map(w=>w.value)),j});V([l]),W?.(l.value),Z()}},we=()=>{V([]),W?.(m?[]:"")},De=()=>{let C=u.length>0?u.map(l=>l.title).join(", "):_;return k?C:n};return N("div",{className:a("flex flex-col gap-2",M),children:[k&&n&&s(ve,{text:n,className:f?.label}),N("div",{className:"relative flex",children:[N(ie,{open:$,onOpenChange:q,children:[s(re,{asChild:!0,disabled:i.length===0,children:N("div",{ref:t,className:a(ot({variant:T,size:L}),u.length>0&&"pr-10",f?.trigger),"aria-expanded":$,children:[k&&Q&&s(Q,{className:"h-4 w-4 shrink-0"}),Ne&&u.length>0&&s(ge,{variant:"purple",children:u.length}),s("span",{className:a("w-full truncate leading-normal",k&&u.length==0&&"text-grey-40"),children:De()}),u.length==0&&s(Ze,{className:"shrink-0 transform group-data-[state=open]:rotate-180",size:"16"})]})}),s(A,{children:N(K,{className:a("flex w-full max-w-xs flex-col overflow-hidden p-0","max-h-[--radix-popover-content-available-height]",f?.content),collisionPadding:8,sideOffset:4,align:"start",children:[!Re&&s(O,{placeholder:"Search..."}),N(G,{children:[s(F,{children:"No results"}),s(Y,{children:i.map(({id:C,...l})=>s(J,{value:l.value,onSelect:ke,children:s(ue,{className:a(f?.items,"truncate py-1"),isSelected:u.some(g=>g.value===l.value),hasCheckbox:m,...l})},C))})]}),!!B&&s(X,{}),B&&B({close:Z})]})})]}),k&&u.length>0&&s("button",{type:"button",className:"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",onClick:we,children:s(je,{className:"h-4 w-4 text-green-100"})})]})]})});E.displayName="Combobox";var ot=tt("group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5",{variants:{variant:{default:["w-full","max-w-80","rounded-lg"],chip:["font-bold","rounded-3xl","data-[state=open]:bg-black","data-[state=open]:text-white"]},size:{small:["h-8","p-1","pl-2","text-xs"],normal:["h-9","p-2","pl-3","text-sm"],large:["h-10","p-3","pl-4","text-base"]}},defaultVariants:{variant:"default",size:"normal"}});import{Slot as at}from"@radix-ui/react-slot";import{cva as it}from"cva";import{forwardRef as rt}from"react";import{jsx as lt}from"react/jsx-runtime";var z=rt(({className:e,variant:t,size:o,asChild:n=!1,...i},f)=>lt(n?at:"button",{className:a(nt({variant:t,size:o,className:e})),ref:f,...i}));z.displayName="Button";var nt=it(["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"]}]});import{jsx as P,jsxs as be}from"react/jsx-runtime";function st(){let[e,t]=ye([]),[o,n]=ye(""),i=[{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}];return be("div",{className:"flex flex-row flex-wrap items-center gap-4 p-4",children:[P(E,{label:"US bands from the 90's",placeholder:"Select a band",icon:"Music",options:i,multiselect:!0,onChange:t,value:e}),P(E,{label:"US bands from the 90's",options:i,variant:"chip",multiselect:!0,onChange:t,value:e}),P(E,{label:"Fruit label",variant:"chip",options:[{title:"Cherry",value:"Cherry",id:1,icon:"Cherry"},{title:"Grape",value:"Grape",id:2,icon:"Grape"}],value:o,onChange:n,children:({close:m})=>be("div",{className:"flex flex-row items-center justify-between bg-white p-2 pl-4",children:[P(z,{variant:"link",tabIndex:-1,onClick:m,children:"Clear"}),P(z,{variant:"primary",size:"small",tabIndex:-1,children:"Apply"})]})}),e.map(m=>P("span",{className:"text-green-80",children:m},m)),P("span",{className:"text-purple-100",children:o})]})}var xe=st;import{jsx as Ce}from"react/jsx-runtime";function mt(){return Ce("div",{children:Ce(xe,{})})}var Pe=mt;import{jsx as dt}from"react/jsx-runtime";async function pt(){return dt(Pe,{})}var Ho=pt;export{Ho as default};
|
|
2
2
|
//# sourceMappingURL=page.js.map
|