@lawnguru/ui 3.0.0 → 3.0.2
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/README.md +31 -29
- package/dist/chunk-2R5NZUY2.js +2 -2
- package/dist/chunk-2R5NZUY2.js.map +7 -7
- package/dist/chunk-322C3AJR.js +2 -2
- package/dist/chunk-322C3AJR.js.map +7 -7
- package/dist/chunk-5AXWISGI.js +2 -2
- package/dist/chunk-5AXWISGI.js.map +7 -7
- package/dist/chunk-62LTWWXS.js +2 -2
- package/dist/chunk-62LTWWXS.js.map +7 -7
- package/dist/chunk-63IVPQSD.js +2 -2
- package/dist/chunk-63IVPQSD.js.map +7 -7
- package/dist/chunk-7H74R7P4.js +2 -2
- package/dist/chunk-7H74R7P4.js.map +7 -7
- package/dist/chunk-A4EVMSOO.js +2 -2
- package/dist/chunk-A4EVMSOO.js.map +7 -7
- package/dist/chunk-BF3VTYEM.js +2 -2
- package/dist/chunk-BF3VTYEM.js.map +7 -7
- package/dist/chunk-FUXRPZVU.js +2 -2
- package/dist/chunk-FUXRPZVU.js.map +7 -7
- package/dist/chunk-JVQR7SBQ.js +2 -2
- package/dist/chunk-JVQR7SBQ.js.map +7 -7
- package/dist/chunk-KGEITSDG.js +2 -2
- package/dist/chunk-KGEITSDG.js.map +7 -7
- package/dist/chunk-KR5A3H22.js +2 -2
- package/dist/chunk-KR5A3H22.js.map +7 -7
- package/dist/chunk-LUG5DIYB.js +2 -2
- package/dist/chunk-LUG5DIYB.js.map +7 -7
- package/dist/chunk-PRAYE34P.js +2 -2
- package/dist/chunk-PRAYE34P.js.map +7 -7
- package/dist/chunk-Q3PG3WWG.js +2 -2
- package/dist/chunk-Q3PG3WWG.js.map +7 -7
- package/dist/chunk-S2I5LIDP.js +2 -2
- package/dist/chunk-S2I5LIDP.js.map +7 -7
- package/dist/chunk-T73JL4BL.js +2 -2
- package/dist/chunk-T73JL4BL.js.map +7 -7
- package/dist/chunk-ZJVH3SNI.js +2 -2
- package/dist/chunk-ZJVH3SNI.js.map +7 -7
- package/dist/components/badge/index.js +1 -1
- package/dist/components/button/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/carousel/index.js +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command/index.js +1 -1
- package/dist/components/confirm/index.js +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dialog-responsive/index.js +1 -1
- package/dist/components/dropdown-menu-responsive/index.js +1 -1
- package/dist/components/input-group/index.js +1 -1
- package/dist/components/photo-lightbox/index.js +1 -1
- package/dist/components/photo-upload/index.js +1 -1
- package/dist/components/questionnaire/index.js +1 -1
- package/dist/components/slider/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/toggle/index.js +1 -1
- package/dist/components/toggle-group/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/output.css +1 -1
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/variables.css +92 -92
- package/package.json +133 -133
- package/dist/chunk-2ZNU7SP6.js +0 -2
- package/dist/chunk-2ZNU7SP6.js.map +0 -7
- package/dist/chunk-C6BWVSUV.js +0 -2
- package/dist/chunk-C6BWVSUV.js.map +0 -7
- package/dist/chunk-EPZCTKQC.js +0 -2
- package/dist/chunk-EPZCTKQC.js.map +0 -7
- package/dist/chunk-EWEMD7AS.js +0 -2
- package/dist/chunk-EWEMD7AS.js.map +0 -7
- package/dist/chunk-F4MEBVNH.js +0 -2
- package/dist/chunk-F4MEBVNH.js.map +0 -7
- package/dist/chunk-HE3CSN3R.js +0 -2
- package/dist/chunk-HE3CSN3R.js.map +0 -7
- package/dist/chunk-JAPB4ZVX.js +0 -2
- package/dist/chunk-JAPB4ZVX.js.map +0 -7
- package/dist/chunk-KLHKZS2N.js +0 -2
- package/dist/chunk-KLHKZS2N.js.map +0 -7
- package/dist/chunk-LS37UWHK.js +0 -2
- package/dist/chunk-LS37UWHK.js.map +0 -7
- package/dist/chunk-N4JYYENQ.js +0 -2
- package/dist/chunk-N4JYYENQ.js.map +0 -7
- package/dist/chunk-NAS2AFA3.js +0 -2
- package/dist/chunk-NAS2AFA3.js.map +0 -7
- package/dist/chunk-OSONBAJY.js +0 -2
- package/dist/chunk-OSONBAJY.js.map +0 -7
- package/dist/chunk-PLDAFSMG.js +0 -2
- package/dist/chunk-PLDAFSMG.js.map +0 -7
- package/dist/chunk-U26IEDZT.js +0 -2
- package/dist/chunk-U26IEDZT.js.map +0 -7
- package/dist/chunk-UQUO6MUG.js +0 -2
- package/dist/chunk-UQUO6MUG.js.map +0 -7
- package/dist/chunk-V3VA2O5O.js +0 -2
- package/dist/chunk-V3VA2O5O.js.map +0 -7
- package/dist/chunk-YLCKVKJM.js +0 -2
- package/dist/chunk-YLCKVKJM.js.map +0 -7
- package/dist/chunk-Z2DKDZMC.js +0 -2
- package/dist/chunk-Z2DKDZMC.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/dropdown-menu-responsive/index.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/dropdown-menu\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerTrigger,\n} from \"@/components/drawer\";\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\nimport { cn } from \"@/lib/utils\";\n\ntype DropdownMenuResponsiveContextType = {\n isTouch: boolean;\n};\n\nconst DropdownMenuResponsiveContext =\n React.createContext<DropdownMenuResponsiveContextType>({\n isTouch: false,\n });\n\nconst useDropdownMenuResponsive = () =>\n React.useContext(DropdownMenuResponsiveContext);\n\ntype DropdownMenuResponsiveProps = {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nconst DropdownMenuResponsive = ({\n children,\n open,\n onOpenChange,\n}: DropdownMenuResponsiveProps) => {\n const isTouch = useIsTouchDevice();\n\n const contextValue = React.useMemo(() => ({ isTouch }), [isTouch]);\n\n if (isTouch) {\n return (\n <DropdownMenuResponsiveContext.Provider value={contextValue}>\n <Drawer open={open} onOpenChange={onOpenChange}>\n {children}\n </Drawer>\n </DropdownMenuResponsiveContext.Provider>\n );\n }\n\n return (\n <DropdownMenuResponsiveContext.Provider value={contextValue}>\n <DropdownMenu open={open} onOpenChange={onOpenChange}>\n {children}\n </DropdownMenu>\n </DropdownMenuResponsiveContext.Provider>\n );\n};\nDropdownMenuResponsive.displayName = \"DropdownMenuResponsive\";\n\nconst DropdownMenuResponsiveTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuTrigger>\n>(({ className, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n const Comp = isTouch ? DrawerTrigger : DropdownMenuTrigger;\n\n return <Comp ref={ref} className={className} {...props} />;\n});\nDropdownMenuResponsiveTrigger.displayName = \"DropdownMenuResponsiveTrigger\";\n\nconst DropdownMenuResponsiveContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuContent>\n>(({ className, children, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerContent ref={ref} className={className}>\n <div className=\"pb-safe flex flex-col\">{children}</div>\n </DrawerContent>\n );\n }\n\n return (\n <DropdownMenuContent ref={ref} className={className} {...props}>\n {children}\n </DropdownMenuContent>\n );\n});\nDropdownMenuResponsiveContent.displayName = \"DropdownMenuResponsiveContent\";\n\nconst DropdownMenuResponsiveItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuItem>\n>(({ className, children, onClick, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerClose asChild>\n <button\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 text-sm transition-colors hover:bg-accent focus:outline-none\",\n className,\n )}\n onClick={\n onClick as unknown as React.MouseEventHandler<HTMLButtonElement>\n }\n >\n {children}\n </button>\n </DrawerClose>\n );\n }\n\n return (\n <DropdownMenuItem\n ref={ref}\n className={className}\n onClick={onClick}\n {...props}\n >\n {children}\n </DropdownMenuItem>\n );\n});\nDropdownMenuResponsiveItem.displayName = \"DropdownMenuResponsiveItem\";\n\nconst DropdownMenuResponsiveLabel = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuLabel>) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <div\n className={cn(\n \"px-4 py-2 text-xs font-semibold text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n }\n\n return <DropdownMenuLabel className={className} {...props} />;\n};\nDropdownMenuResponsiveLabel.displayName = \"DropdownMenuResponsiveLabel\";\n\nconst DropdownMenuResponsiveSeparator = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuSeparator>) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return <hr className={cn(\"my-1 border-muted\", className)} />;\n }\n\n return <DropdownMenuSeparator className={className} {...props} />;\n};\nDropdownMenuResponsiveSeparator.displayName = \"DropdownMenuResponsiveSeparator\";\n\nconst DropdownMenuResponsiveClose = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DrawerClose>\n>(({ children, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerClose ref={ref} {...props}>\n {children}\n </DrawerClose>\n );\n }\n\n return <>{children}</>;\n});\nDropdownMenuResponsiveClose.displayName = \"DropdownMenuResponsiveClose\";\n\nexport {\n DropdownMenuResponsive,\n DropdownMenuResponsiveTrigger,\n DropdownMenuResponsiveContent,\n DropdownMenuResponsiveItem,\n DropdownMenuResponsiveLabel,\n DropdownMenuResponsiveSeparator,\n DropdownMenuResponsiveClose,\n useDropdownMenuResponsive,\n};\n"],
|
|
5
|
-
"mappings": "yQAEA,UAAYA,MAAW,QAgDf,OAyIC,YAAAC,EAzID,OAAAC,MAAA,oBA1BR,IAAMC,EACE,gBAAiD,CACrD,QAAS,EACX,CAAC,EAEGC,EAA4B,IAC1B,aAAWD,CAA6B,EAQ1CE,EAAyB,CAAC,CAC9B,SAAAC,EACA,KAAAC,EACA,aAAAC,CACF,IAAmC,CACjC,IAAMC,EAAUC,EAAiB,EAE3BC,EAAqB,UAAQ,KAAO,CAAE,QAAAF,CAAQ,GAAI,CAACA,CAAO,CAAC,EAEjE,OAAIA,EAEAP,EAACC,EAA8B,SAA9B,CAAuC,MAAOQ,EAC7C,SAAAT,EAACU,EAAA,CAAO,KAAML,EAAM,aAAcC,EAC/B,SAAAF,EACH,EACF,EAKFJ,EAACC,EAA8B,SAA9B,CAAuC,MAAOQ,EAC7C,SAAAT,EAACW,EAAA,CAAa,KAAMN,EAAM,aAAcC,EACrC,SAAAF,EACH,EACF,CAEJ,EACAD,EAAuB,YAAc,yBAErC,IAAMS,EAAsC,aAG1C,CAACC,EAAyBC,IAAQ,CAAjC,IAAAC,EAAAF,EAAE,WAAAG,CAtEL,EAsEGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,GAAM,CAAE,QAAAR,CAAQ,EAAIL,EAA0B,EAG9C,OAAOF,EAFMO,EAAUY,EAAgBC,EAE/BC,EAAA,CAAK,IAAKP,EAAK,UAAWE,GAAeC,EAAO,CAC1D,CAAC,EACDL,EAA8B,YAAc,gCAE5C,IAAMU,EAAsC,aAG1C,CAACT,EAAmCC,IAAQ,CAA3C,IAAAC,EAAAF,EAAE,WAAAG,EAAW,SAAAZ,CAjFhB,EAiFGW,EAA0BE,EAAAC,EAA1BH,EAA0B,CAAxB,YAAW,aACd,GAAM,CAAE,QAAAR,CAAQ,EAAIL,EAA0B,EAE9C,OAAIK,EAEAP,EAACuB,EAAA,CAAc,IAAKT,EAAK,UAAWE,EAClC,SAAAhB,EAAC,OAAI,UAAU,wBAAyB,SAAAI,EAAS,EACnD,EAKFJ,EAACwB,EAAAC,EAAAJ,EAAA,CAAoB,IAAKP,EAAK,UAAWE,GAAeC,GAAxD,CACE,SAAAb,GACH,CAEJ,CAAC,EACDkB,EAA8B,YAAc,gCAE5C,IAAMI,EAAmC,aAGvC,CAACb,EAA4CC,IAAQ,CAApD,IAAAC,EAAAF,EAAE,WAAAG,EAAW,SAAAZ,EAAU,QAAAuB,CAvG1B,EAuGGZ,EAAmCE,EAAAC,EAAnCH,EAAmC,CAAjC,YAAW,WAAU,YACxB,GAAM,CAAE,QAAAR,CAAQ,EAAIL,EAA0B,EAE9C,OAAIK,EAEAP,EAAC4B,EAAA,CAAY,QAAO,GAClB,SAAA5B,EAAC,UACC,UAAW6B,EACT,wGACAb,CACF,EACA,QACEW,EAGD,SAAAvB,EACH,EACF,EAKFJ,EAAC8B,EAAAL,EAAAJ,EAAA,CACC,IAAKP,EACL,UAAWE,EACX,QAASW,GACLV,GAJL,CAME,SAAAb,GACH,CAEJ,CAAC,EACDsB,EAA2B,YAAc,6BAEzC,IAAMK,EAA+BlB,GAG2B,CAH3B,IAAAE,EAAAF,EACnC,WAAAG,CA1IF,EAyIqCD,EAEhCE,EAAAC,EAFgCH,EAEhC,CADH,cAGA,GAAM,CAAE,QAAAR,CAAQ,EAAIL,EAA0B,EAE9C,OAAIK,EAEAP,EAAC,MAAAqB,EAAA,CACC,UAAWQ,EACT,wDACAb,CACF,GACIC,EACN,EAIGjB,EAACgC,EAAAX,EAAA,CAAkB,UAAWL,GAAeC,EAAO,CAC7D,EACAc,EAA4B,YAAc,8BAE1C,IAAME,EAAmCpB,GAG2B,CAH3B,IAAAE,EAAAF,EACvC,WAAAG,CAhKF,EA+JyCD,EAEpCE,EAAAC,EAFoCH,EAEpC,CADH,cAGA,GAAM,CAAE,QAAAR,CAAQ,EAAIL,EAA0B,EAE9C,OAAIK,EACKP,EAAC,MAAG,UAAW6B,EAAG,oBAAqBb,CAAS,EAAG,EAGrDhB,EAACkC,EAAAb,EAAA,CAAsB,UAAWL,GAAeC,EAAO,CACjE,EACAgB,EAAgC,YAAc,kCAE9C,IAAME,EAAoC,aAGxC,CAACtB,EAAwBC,IAAQ,CAAhC,IAAAC,EAAAF,EAAE,UAAAT,CAhLL,EAgLGW,EAAeE,EAAAC,EAAfH,EAAe,CAAb,aACH,GAAM,CAAE,QAAAR,CAAQ,EAAIL,EAA0B,EAE9C,OAAIK,EAEAP,EAAC4B,EAAAH,EAAAJ,EAAA,CAAY,IAAKP,GAASG,GAA1B,CACE,SAAAb,GACH,EAIGJ,EAAAD,EAAA,CAAG,SAAAK,EAAS,CACrB,CAAC,EACD+B,EAA4B,YAAc",
|
|
6
|
-
"names": ["React", "Fragment", "jsx", "DropdownMenuResponsiveContext", "useDropdownMenuResponsive", "DropdownMenuResponsive", "children", "open", "onOpenChange", "isTouch", "useIsTouchDevice", "contextValue", "Drawer", "DropdownMenu", "DropdownMenuResponsiveTrigger", "_a", "ref", "_b", "className", "props", "__objRest", "DrawerTrigger", "DropdownMenuTrigger", "__spreadValues", "DropdownMenuResponsiveContent", "DrawerContent", "DropdownMenuContent", "__spreadProps", "DropdownMenuResponsiveItem", "onClick", "DrawerClose", "cn", "DropdownMenuItem", "DropdownMenuResponsiveLabel", "DropdownMenuLabel", "DropdownMenuResponsiveSeparator", "DropdownMenuSeparator", "DropdownMenuResponsiveClose"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/dropdown-menu-responsive/index.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/dropdown-menu\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerTrigger,\n} from \"@/components/drawer\";\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\nimport { cn } from \"@/lib/utils\";\n\ntype DropdownMenuResponsiveContextType = {\n isTouch: boolean;\n};\n\nconst DropdownMenuResponsiveContext =\n React.createContext<DropdownMenuResponsiveContextType>({\n isTouch: false,\n });\n\nconst useDropdownMenuResponsive = () =>\n React.useContext(DropdownMenuResponsiveContext);\n\ntype DropdownMenuResponsiveProps = {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nconst DropdownMenuResponsive = ({\n children,\n open,\n onOpenChange,\n}: DropdownMenuResponsiveProps) => {\n const isTouch = useIsTouchDevice();\n\n const contextValue = React.useMemo(() => ({ isTouch }), [isTouch]);\n\n if (isTouch) {\n return (\n <DropdownMenuResponsiveContext.Provider value={contextValue}>\n <Drawer open={open} onOpenChange={onOpenChange}>\n {children}\n </Drawer>\n </DropdownMenuResponsiveContext.Provider>\n );\n }\n\n return (\n <DropdownMenuResponsiveContext.Provider value={contextValue}>\n <DropdownMenu open={open} onOpenChange={onOpenChange}>\n {children}\n </DropdownMenu>\n </DropdownMenuResponsiveContext.Provider>\n );\n};\nDropdownMenuResponsive.displayName = \"DropdownMenuResponsive\";\n\nconst DropdownMenuResponsiveTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuTrigger>\n>(({ className, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n const Comp = isTouch ? DrawerTrigger : DropdownMenuTrigger;\n\n return <Comp ref={ref} className={className} {...props} />;\n});\nDropdownMenuResponsiveTrigger.displayName = \"DropdownMenuResponsiveTrigger\";\n\nconst DropdownMenuResponsiveContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuContent>\n>(({ className, children, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerContent ref={ref} className={className}>\n <div className=\"pb-safe flex flex-col\">{children}</div>\n </DrawerContent>\n );\n }\n\n return (\n <DropdownMenuContent ref={ref} className={className} {...props}>\n {children}\n </DropdownMenuContent>\n );\n});\nDropdownMenuResponsiveContent.displayName = \"DropdownMenuResponsiveContent\";\n\nconst DropdownMenuResponsiveItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuItem>\n>(({ className, children, onClick, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerClose asChild>\n <button\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 text-sm transition-colors hover:bg-accent focus:outline-none\",\n className,\n )}\n onClick={\n onClick as unknown as React.MouseEventHandler<HTMLButtonElement>\n }\n >\n {children}\n </button>\n </DrawerClose>\n );\n }\n\n return (\n <DropdownMenuItem\n ref={ref}\n className={className}\n onClick={onClick}\n {...props}\n >\n {children}\n </DropdownMenuItem>\n );\n});\nDropdownMenuResponsiveItem.displayName = \"DropdownMenuResponsiveItem\";\n\nconst DropdownMenuResponsiveLabel = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuLabel>) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <div\n className={cn(\n \"px-4 py-2 text-xs font-semibold text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n }\n\n return <DropdownMenuLabel className={className} {...props} />;\n};\nDropdownMenuResponsiveLabel.displayName = \"DropdownMenuResponsiveLabel\";\n\nconst DropdownMenuResponsiveSeparator = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuSeparator>) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return <hr className={cn(\"my-1 border-muted\", className)} />;\n }\n\n return <DropdownMenuSeparator className={className} {...props} />;\n};\nDropdownMenuResponsiveSeparator.displayName = \"DropdownMenuResponsiveSeparator\";\n\nconst DropdownMenuResponsiveClose = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DrawerClose>\n>(({ children, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerClose ref={ref} {...props}>\n {children}\n </DrawerClose>\n );\n }\n\n return <>{children}</>;\n});\nDropdownMenuResponsiveClose.displayName = \"DropdownMenuResponsiveClose\";\n\nexport {\n DropdownMenuResponsive,\n DropdownMenuResponsiveTrigger,\n DropdownMenuResponsiveContent,\n DropdownMenuResponsiveItem,\n DropdownMenuResponsiveLabel,\n DropdownMenuResponsiveSeparator,\n DropdownMenuResponsiveClose,\n useDropdownMenuResponsive,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "Fragment", "jsx", "DropdownMenuResponsiveContext", "useDropdownMenuResponsive", "DropdownMenuResponsive", "children", "open", "onOpenChange", "isTouch", "useIsTouchDevice", "contextValue", "Drawer", "DropdownMenu", "DropdownMenuResponsiveTrigger", "_a", "ref", "_b", "className", "props", "__objRest", "DrawerTrigger", "DropdownMenuTrigger", "__spreadValues", "DropdownMenuResponsiveContent", "DrawerContent", "DropdownMenuContent", "__spreadProps", "DropdownMenuResponsiveItem", "onClick", "DrawerClose", "cn", "DropdownMenuItem", "DropdownMenuResponsiveLabel", "DropdownMenuLabel", "DropdownMenuResponsiveSeparator", "DropdownMenuSeparator", "DropdownMenuResponsiveClose"]
|
|
7
|
+
}
|
package/dist/chunk-BF3VTYEM.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-WIFBPNRH.js";import{a as e,c as o}from"./chunk-WHECA25N.js";import*as n from"react";import{Slot as p}from"radix-ui";import{cva as v}from"class-variance-authority";import{jsx as f}from"react/jsx-runtime";var g=v("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground","destructive-outline":"border border-input bg-background text-destructive shadow-sm hover:bg-destructive/5",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 px-3 text-xs",lg:"h-10 px-8",xl:"h-14 px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),b=n.forwardRef((m,c)=>{var t=m,{className:s,variant:i,size:a,asChild:d=!1}=t,u=o(t,["className","variant","size","asChild"]);let l=d?p.Slot:"button";return f(l,e({className:r(g({variant:i,size:a,className:s})),ref:c},u))});b.displayName="Button";export{g as a,b};
|
|
2
|
-
//# sourceMappingURL=chunk-BF3VTYEM.js.map
|
|
1
|
+
import{a as r}from"./chunk-WIFBPNRH.js";import{a as e,c as o}from"./chunk-WHECA25N.js";import*as n from"react";import{Slot as p}from"radix-ui";import{cva as v}from"class-variance-authority";import{jsx as f}from"react/jsx-runtime";var g=v("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground","destructive-outline":"border border-input bg-background text-destructive shadow-sm hover:bg-destructive/5",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 px-3 text-xs",lg:"h-10 px-8",xl:"h-14 px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),b=n.forwardRef((m,c)=>{var t=m,{className:s,variant:i,size:a,asChild:d=!1}=t,u=o(t,["className","variant","size","asChild"]);let l=d?p.Slot:"button";return f(l,e({className:r(g({variant:i,size:a,className:s})),ref:c},u))});b.displayName="Button";export{g as a,b};
|
|
2
|
+
//# sourceMappingURL=chunk-BF3VTYEM.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/button/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n \"destructive-outline\":\n \"border border-input bg-background text-destructive shadow-sm hover:bg-destructive/5\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 px-3 text-xs\",\n lg: \"h-10 px-8\",\n xl: \"h-14 px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type ButtonProps = {\n asChild?: boolean;\n} & React.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"],
|
|
5
|
-
"mappings": "uFAAA,UAAYA,MAAW,QACvB,OAAS,QAAQC,MAAqB,WACtC,OAAS,OAAAC,MAA8B,2BA8CjC,cAAAC,MAAA,oBA1CN,IAAMC,EAAiBC,EACrB,wSACA,CACE,SAAU,CACR,QAAS,CACP,QACE,gEACF,YACE,+EACF,QACE,2FACF,sBACE,sFACF,UACE,yEACF,MAAO,+CACP,KAAM,iDACR,EACA,KAAM,CACJ,QAAS,gBACT,GAAI,mBACJ,GAAI,YACJ,GAAI,YACJ,KAAM,SACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAOMC,EAAe,aACnB,CAACC,EAAyDC,IAAQ,CAAjE,IAAAC,EAAAF,EAAE,WAAAG,EAAW,QAAAC,EAAS,KAAAC,EAAM,QAAAC,EAAU,EA7CzC,EA6CGJ,EAAgDK,EAAAC,EAAhDN,EAAgD,CAA9C,YAAW,UAAS,OAAM,YAC3B,IAAMO,EAAOH,EAAUI,EAAc,KAAO,SAC5C,OACEd,EAACa,EAAAE,EAAA,CACC,UAAWC,EAAGf,EAAe,CAAE,QAAAO,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,CAAC,EAC1D,IAAKF,GACDM,EACN,CAEJ,CACF,EACAR,EAAO,YAAc",
|
|
6
|
-
"names": ["React", "SlotPrimitive", "cva", "jsx", "buttonVariants", "cva", "Button", "_a", "ref", "_b", "className", "variant", "size", "asChild", "props", "__objRest", "Comp", "SlotPrimitive", "__spreadValues", "cn"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/button/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n \"destructive-outline\":\n \"border border-input bg-background text-destructive shadow-sm hover:bg-destructive/5\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 px-3 text-xs\",\n lg: \"h-10 px-8\",\n xl: \"h-14 px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type ButtonProps = {\n asChild?: boolean;\n} & React.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"],
|
|
5
|
+
"mappings": "uFAAA,UAAYA,MAAW,QACvB,OAAS,QAAQC,MAAqB,WACtC,OAAS,OAAAC,MAA8B,2BA8CjC,cAAAC,MAAA,oBA1CN,IAAMC,EAAiBC,EACrB,wSACA,CACE,SAAU,CACR,QAAS,CACP,QACE,gEACF,YACE,+EACF,QACE,2FACF,sBACE,sFACF,UACE,yEACF,MAAO,+CACP,KAAM,iDACR,EACA,KAAM,CACJ,QAAS,gBACT,GAAI,mBACJ,GAAI,YACJ,GAAI,YACJ,KAAM,SACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAOMC,EAAe,aACnB,CAACC,EAAyDC,IAAQ,CAAjE,IAAAC,EAAAF,EAAE,WAAAG,EAAW,QAAAC,EAAS,KAAAC,EAAM,QAAAC,EAAU,EA7CzC,EA6CGJ,EAAgDK,EAAAC,EAAhDN,EAAgD,CAA9C,YAAW,UAAS,OAAM,YAC3B,IAAMO,EAAOH,EAAUI,EAAc,KAAO,SAC5C,OACEd,EAACa,EAAAE,EAAA,CACC,UAAWC,EAAGf,EAAe,CAAE,QAAAO,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,CAAC,EAC1D,IAAKF,GACDM,EACN,CAEJ,CACF,EACAR,EAAO,YAAc",
|
|
6
|
+
"names": ["React", "SlotPrimitive", "cva", "jsx", "buttonVariants", "cva", "Button", "_a", "ref", "_b", "className", "variant", "size", "asChild", "props", "__objRest", "Comp", "SlotPrimitive", "__spreadValues", "cn"]
|
|
7
|
+
}
|
package/dist/chunk-FUXRPZVU.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as g}from"./chunk-6MI7ACXZ.js";import{b as c}from"./chunk-BF3VTYEM.js";import{a as m}from"./chunk-NMUGPQJR.js";import{a as s}from"./chunk-WIFBPNRH.js";import{a as o,c as e}from"./chunk-WHECA25N.js";import{cva as f}from"class-variance-authority";import{jsx as i}from"react/jsx-runtime";function w(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("div",o({"data-slot":"input-group",role:"group",className:s("group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",n)},a))}var b=f("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function G(t){var u=t,{className:n,align:a="inline-start"}=u,r=e(u,["className","align"]);return i("div",o({role:"group","data-slot":"input-group-addon","data-align":a,className:s(b({align:a}),n),onClick:l=>{var p,d;l.target.closest("button")||(d=(p=l.currentTarget.parentElement)==null?void 0:p.querySelector("input"))==null||d.focus()}},r))}var h=f("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function I(l){var p=l,{className:n,type:a="button",variant:r="ghost",size:t}=p,u=e(p,["className","type","variant","size"]);return i(c,o({type:a,variant:r,className:s(h({size:t}),n)},u))}function P(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("span",o({className:s("flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",n)},a))}function C(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(g,o({"data-slot":"input-group-control",className:s("h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent",n)},a))}function R(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(m,o({"data-slot":"input-group-control",className:s("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",n)},a))}export{w as a,G as b,I as c,P as d,C as e,R as f};
|
|
2
|
-
//# sourceMappingURL=chunk-FUXRPZVU.js.map
|
|
1
|
+
import{a as g}from"./chunk-6MI7ACXZ.js";import{b as c}from"./chunk-BF3VTYEM.js";import{a as m}from"./chunk-NMUGPQJR.js";import{a as s}from"./chunk-WIFBPNRH.js";import{a as o,c as e}from"./chunk-WHECA25N.js";import{cva as f}from"class-variance-authority";import{jsx as i}from"react/jsx-runtime";function w(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("div",o({"data-slot":"input-group",role:"group",className:s("group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",n)},a))}var b=f("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function G(t){var u=t,{className:n,align:a="inline-start"}=u,r=e(u,["className","align"]);return i("div",o({role:"group","data-slot":"input-group-addon","data-align":a,className:s(b({align:a}),n),onClick:l=>{var p,d;l.target.closest("button")||(d=(p=l.currentTarget.parentElement)==null?void 0:p.querySelector("input"))==null||d.focus()}},r))}var h=f("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function I(l){var p=l,{className:n,type:a="button",variant:r="ghost",size:t}=p,u=e(p,["className","type","variant","size"]);return i(c,o({type:a,variant:r,className:s(h({size:t}),n)},u))}function P(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("span",o({className:s("flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",n)},a))}function C(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(g,o({"data-slot":"input-group-control",className:s("h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent",n)},a))}function R(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(m,o({"data-slot":"input-group-control",className:s("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",n)},a))}export{w as a,G as b,I as c,P as d,C as e,R as f};
|
|
2
|
+
//# sourceMappingURL=chunk-FUXRPZVU.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/input-group/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Textarea } from \"@/components/text-area\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size,\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> & {\n size?: \"xs\" | \"sm\" | \"icon-xs\" | \"icon-sm\";\n}) {\n return (\n <Button\n type={type}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],
|
|
5
|
-
"mappings": "+MACA,OAAS,OAAAA,MAA8B,2BASnC,cAAAC,MAAA,oBAFJ,SAASC,EAAWC,EAAsD,CAAtD,IAAAC,EAAAD,EAAE,WAAAE,CARtB,EAQoBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACpB,OACEH,EAAC,MAAAO,EAAA,CACC,YAAU,cACV,KAAK,QACL,UAAWC,EACT,2JACA,qCAGA,kDACA,gDACA,iIACA,2HAGA,kMAGA,iLAEAJ,CACF,GACIC,EACN,CAEJ,CAEA,IAAMI,EAA0BC,EAC9B,0PACA,CACE,SAAU,CACR,MAAO,CACL,eACE,wEACF,aACE,uEACF,cACE,oGACF,YACE,kGACJ,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAEA,SAASC,EAAgBT,EAIsD,CAJtD,IAAAC,EAAAD,EACvB,WAAAE,EACA,MAAAQ,EAAQ,cA3DV,EAyDyBT,EAGpBE,EAAAC,EAHoBH,EAGpB,CAFH,YACA,UAGA,OACEH,EAAC,MAAAO,EAAA,CACC,KAAK,QACL,YAAU,oBACV,aAAYK,EACZ,UAAWJ,EAAGC,EAAwB,CAAE,MAAAG,CAAM,CAAC,EAAGR,CAAS,EAC3D,QAAUS,GAAM,CApEtB,IAAAX,EAAAC,EAqEaU,EAAE,OAAuB,QAAQ,QAAQ,IAG9CV,GAAAD,EAAAW,EAAE,cAAc,gBAAhB,YAAAX,EAA+B,cAAc,WAA7C,MAAAC,EAAuD,OACzD,GACIE,EACN,CAEJ,CAEA,IAAMS,EAA2BJ,EAC/B,8CACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,0GACJ,GAAI,kDACJ,UACE,8DACF,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CACF,EAEA,SAASK,EAAiBb,EAQvB,CARuB,IAAAC,EAAAD,EACxB,WAAAE,EACA,KAAAY,EAAO,SACP,QAAAC,EAAU,QACV,KAAAC,CArGF,EAiG0Bf,EAKrBE,EAAAC,EALqBH,EAKrB,CAJH,YACA,OACA,UACA,SAKA,OACEH,EAACmB,EAAAZ,EAAA,CACC,KAAMS,EACN,QAASC,EACT,UAAWT,EAAGM,EAAyB,CAAE,KAAAI,CAAK,CAAC,EAAGd,CAAS,GACvDC,EACN,CAEJ,CAEA,SAASe,EAAelB,EAAuD,CAAvD,IAAAC,EAAAD,EAAE,WAAAE,CApH1B,EAoHwBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACxB,OACEH,EAAC,OAAAO,EAAA,CACC,UAAWC,EACT,yHACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASgB,EAAgBnB,EAGS,CAHT,IAAAC,EAAAD,EACvB,WAAAE,CAjIF,EAgIyBD,EAEpBE,EAAAC,EAFoBH,EAEpB,CADH,cAGA,OACEH,EAACsB,EAAAf,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,sIACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASkB,EAAmBrB,EAGS,CAHT,IAAAC,EAAAD,EAC1B,WAAAE,CAjJF,EAgJ4BD,EAEvBE,EAAAC,EAFuBH,EAEvB,CADH,cAGA,OACEH,EAACwB,EAAAjB,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,oHACAJ,CACF,GACIC,EACN,CAEJ",
|
|
6
|
-
"names": ["cva", "jsx", "InputGroup", "_a", "_b", "className", "props", "__objRest", "__spreadValues", "cn", "inputGroupAddonVariants", "cva", "InputGroupAddon", "align", "e", "inputGroupButtonVariants", "InputGroupButton", "type", "variant", "size", "Button", "InputGroupText", "InputGroupInput", "Input", "InputGroupTextarea", "Textarea"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/input-group/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Textarea } from \"@/components/text-area\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size,\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> & {\n size?: \"xs\" | \"sm\" | \"icon-xs\" | \"icon-sm\";\n}) {\n return (\n <Button\n type={type}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],
|
|
5
|
+
"mappings": "+MACA,OAAS,OAAAA,MAA8B,2BASnC,cAAAC,MAAA,oBAFJ,SAASC,EAAWC,EAAsD,CAAtD,IAAAC,EAAAD,EAAE,WAAAE,CARtB,EAQoBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACpB,OACEH,EAAC,MAAAO,EAAA,CACC,YAAU,cACV,KAAK,QACL,UAAWC,EACT,2JACA,qCAGA,kDACA,gDACA,iIACA,2HAGA,kMAGA,iLAEAJ,CACF,GACIC,EACN,CAEJ,CAEA,IAAMI,EAA0BC,EAC9B,0PACA,CACE,SAAU,CACR,MAAO,CACL,eACE,wEACF,aACE,uEACF,cACE,oGACF,YACE,kGACJ,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAEA,SAASC,EAAgBT,EAIsD,CAJtD,IAAAC,EAAAD,EACvB,WAAAE,EACA,MAAAQ,EAAQ,cA3DV,EAyDyBT,EAGpBE,EAAAC,EAHoBH,EAGpB,CAFH,YACA,UAGA,OACEH,EAAC,MAAAO,EAAA,CACC,KAAK,QACL,YAAU,oBACV,aAAYK,EACZ,UAAWJ,EAAGC,EAAwB,CAAE,MAAAG,CAAM,CAAC,EAAGR,CAAS,EAC3D,QAAUS,GAAM,CApEtB,IAAAX,EAAAC,EAqEaU,EAAE,OAAuB,QAAQ,QAAQ,IAG9CV,GAAAD,EAAAW,EAAE,cAAc,gBAAhB,YAAAX,EAA+B,cAAc,WAA7C,MAAAC,EAAuD,OACzD,GACIE,EACN,CAEJ,CAEA,IAAMS,EAA2BJ,EAC/B,8CACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,0GACJ,GAAI,kDACJ,UACE,8DACF,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CACF,EAEA,SAASK,EAAiBb,EAQvB,CARuB,IAAAC,EAAAD,EACxB,WAAAE,EACA,KAAAY,EAAO,SACP,QAAAC,EAAU,QACV,KAAAC,CArGF,EAiG0Bf,EAKrBE,EAAAC,EALqBH,EAKrB,CAJH,YACA,OACA,UACA,SAKA,OACEH,EAACmB,EAAAZ,EAAA,CACC,KAAMS,EACN,QAASC,EACT,UAAWT,EAAGM,EAAyB,CAAE,KAAAI,CAAK,CAAC,EAAGd,CAAS,GACvDC,EACN,CAEJ,CAEA,SAASe,EAAelB,EAAuD,CAAvD,IAAAC,EAAAD,EAAE,WAAAE,CApH1B,EAoHwBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACxB,OACEH,EAAC,OAAAO,EAAA,CACC,UAAWC,EACT,yHACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASgB,EAAgBnB,EAGS,CAHT,IAAAC,EAAAD,EACvB,WAAAE,CAjIF,EAgIyBD,EAEpBE,EAAAC,EAFoBH,EAEpB,CADH,cAGA,OACEH,EAACsB,EAAAf,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,sIACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASkB,EAAmBrB,EAGS,CAHT,IAAAC,EAAAD,EAC1B,WAAAE,CAjJF,EAgJ4BD,EAEvBE,EAAAC,EAFuBH,EAEvB,CADH,cAGA,OACEH,EAACwB,EAAAjB,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,oHACAJ,CACF,GACIC,EACN,CAEJ",
|
|
6
|
+
"names": ["cva", "jsx", "InputGroup", "_a", "_b", "className", "props", "__objRest", "__spreadValues", "cn", "inputGroupAddonVariants", "cva", "InputGroupAddon", "align", "e", "inputGroupButtonVariants", "InputGroupButton", "type", "variant", "size", "Button", "InputGroupText", "InputGroupInput", "Input", "InputGroupTextarea", "Textarea"]
|
|
7
|
+
}
|
package/dist/chunk-JVQR7SBQ.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as f,f as l}from"./chunk-2R5NZUY2.js";import{a as p}from"./chunk-WIFBPNRH.js";import{a as n,b as c,c as d}from"./chunk-WHECA25N.js";import*as s from"react";import{Command as m}from"cmdk";import{SearchIcon as R}from"lucide-react";import{jsx as r,jsxs as _}from"react/jsx-runtime";var u=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m,n({ref:a,className:p("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e)},t))});u.displayName=m.displayName;var E=a=>{var i=a,{children:e}=i,t=d(i,["children"]);return r(f,c(n({},t),{children:r(l,{className:"overflow-hidden p-0",children:r(u,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[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",children:e})})}))},g=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return _("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[r(R,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),r(m.Input,n({ref:a,className:p("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e)},t))]})});g.displayName=m.Input.displayName;var y=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.List,n({ref:a,className:p("max-h-[var(--radix-popover-content-available-height,300px)] overflow-y-auto overflow-x-hidden",e)},t))});y.displayName=m.List.displayName;var h=s.forwardRef((e,t)=>r(m.Empty,n({ref:t,className:"py-6 text-center text-sm"},e)));h.displayName=m.Empty.displayName;var v=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.Group,n({ref:a,className:p("overflow-hidden p-1 text-foreground [&_[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-muted-foreground",e)},t))});v.displayName=m.Group.displayName;var C=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.Separator,n({ref:a,className:p("-mx-1 h-px bg-border",e)},t))});C.displayName=m.Separator.displayName;var x=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.Item,n({ref:a,className:p("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e)},t))});x.displayName=m.Item.displayName;var N=a=>{var i=a,{className:e}=i,t=d(i,["className"]);return r("span",n({className:p("ml-auto text-xs tracking-widest text-muted-foreground",e)},t))};N.displayName="CommandShortcut";export{u as a,E as b,g as c,y as d,h as e,v as f,C as g,x as h,N as i};
|
|
2
|
-
//# sourceMappingURL=chunk-JVQR7SBQ.js.map
|
|
1
|
+
import{a as f,f as l}from"./chunk-2R5NZUY2.js";import{a as p}from"./chunk-WIFBPNRH.js";import{a as n,b as c,c as d}from"./chunk-WHECA25N.js";import*as s from"react";import{Command as m}from"cmdk";import{SearchIcon as R}from"lucide-react";import{jsx as r,jsxs as _}from"react/jsx-runtime";var u=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m,n({ref:a,className:p("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e)},t))});u.displayName=m.displayName;var E=a=>{var i=a,{children:e}=i,t=d(i,["children"]);return r(f,c(n({},t),{children:r(l,{className:"overflow-hidden p-0",children:r(u,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[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",children:e})})}))},g=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return _("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[r(R,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),r(m.Input,n({ref:a,className:p("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e)},t))]})});g.displayName=m.Input.displayName;var y=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.List,n({ref:a,className:p("max-h-[var(--radix-popover-content-available-height,300px)] overflow-y-auto overflow-x-hidden",e)},t))});y.displayName=m.List.displayName;var h=s.forwardRef((e,t)=>r(m.Empty,n({ref:t,className:"py-6 text-center text-sm"},e)));h.displayName=m.Empty.displayName;var v=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.Group,n({ref:a,className:p("overflow-hidden p-1 text-foreground [&_[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-muted-foreground",e)},t))});v.displayName=m.Group.displayName;var C=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.Separator,n({ref:a,className:p("-mx-1 h-px bg-border",e)},t))});C.displayName=m.Separator.displayName;var x=s.forwardRef((i,a)=>{var o=i,{className:e}=o,t=d(o,["className"]);return r(m.Item,n({ref:a,className:p("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e)},t))});x.displayName=m.Item.displayName;var N=a=>{var i=a,{className:e}=i,t=d(i,["className"]);return r("span",n({className:p("ml-auto text-xs tracking-widest text-muted-foreground",e)},t))};N.displayName="CommandShortcut";export{u as a,E as b,g as c,y as d,h as e,v as f,C as g,x as h,N as i};
|
|
2
|
+
//# sourceMappingURL=chunk-JVQR7SBQ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/command/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from \"react\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { cn } from \"@/lib/utils\";\nimport { Dialog, DialogContent } from \"@/components/dialog\";\nimport { SearchIcon } from \"lucide-react\";\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-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandDialog = ({\n children,\n ...props\n}: React.ComponentPropsWithoutRef<typeof Dialog>) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[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=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <SearchIcon className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground 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(\n \"max-h-[var(--radix-popover-content-available-height,300px)] overflow-y-auto overflow-x-hidden\",\n className,\n )}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[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-muted-foreground\",\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-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "CommandPrimitive", "SearchIcon", "jsx", "jsxs", "Command", "_a", "ref", "_b", "className", "props", "__objRest", "CommandPrimitive", "__spreadValues", "cn", "CommandDialog", "children", "Dialog", "__spreadProps", "DialogContent", "CommandInput", "SearchIcon", "CommandList", "CommandEmpty", "CommandGroup", "CommandSeparator", "CommandItem", "CommandShortcut"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/command/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from \"react\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { cn } from \"@/lib/utils\";\nimport { Dialog, DialogContent } from \"@/components/dialog\";\nimport { SearchIcon } from \"lucide-react\";\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-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandDialog = ({\n children,\n ...props\n}: React.ComponentPropsWithoutRef<typeof Dialog>) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[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=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <SearchIcon className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground 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(\n \"max-h-[var(--radix-popover-content-available-height,300px)] overflow-y-auto overflow-x-hidden\",\n className,\n )}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[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-muted-foreground\",\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-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "CommandPrimitive", "SearchIcon", "jsx", "jsxs", "Command", "_a", "ref", "_b", "className", "props", "__objRest", "CommandPrimitive", "__spreadValues", "cn", "CommandDialog", "children", "Dialog", "__spreadProps", "DialogContent", "CommandInput", "SearchIcon", "CommandList", "CommandEmpty", "CommandGroup", "CommandSeparator", "CommandItem", "CommandShortcut"]
|
|
7
|
+
}
|
package/dist/chunk-KGEITSDG.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as c}from"./chunk-WIFBPNRH.js";import{a as f,b,c as d}from"./chunk-WHECA25N.js";import*as e from"react";import{cva as m}from"class-variance-authority";import{Tabs as a}from"radix-ui";import{jsx as p}from"react/jsx-runtime";var V=a.Root,g=m("text-muted-foreground",{variants:{variant:{default:"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1",underline:"flex h-auto w-full items-center justify-start rounded-none border-b bg-transparent p-0"}},defaultVariants:{variant:"default"}}),v=m("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"rounded-md px-3 py-1 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",underline:"rounded-none border-b-2 border-transparent px-3 py-2 data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:text-primary data-[state=active]:shadow-none"}},defaultVariants:{variant:"default"}}),u=e.createContext({variant:"default"}),y=e.forwardRef((l,s)=>{var o=l,{className:i,variant:t,children:r}=o,n=d(o,["className","variant","children"]);return p(u.Provider,{value:{variant:t},children:p(a.List,b(f({ref:s,className:c(g({variant:t}),i)},n),{children:r}))})});y.displayName=a.List.displayName;var T=e.forwardRef((s,n)=>{var l=s,{className:i,variant:t}=l,r=d(l,["className","variant"]);let o=e.useContext(u);return p(a.Trigger,f({ref:n,className:c(v({variant:t!=null?t:o.variant}),i)},r))});T.displayName=a.Trigger.displayName;var R=e.forwardRef((n,r)=>{var s=n,{className:i}=s,t=d(s,["className"]);return p(a.Content,f({ref:r,className:c("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",i)},t))});R.displayName=a.Content.displayName;export{V as a,g as b,v as c,y as d,T as e,R as f};
|
|
2
|
-
//# sourceMappingURL=chunk-KGEITSDG.js.map
|
|
1
|
+
import{a as c}from"./chunk-WIFBPNRH.js";import{a as f,b,c as d}from"./chunk-WHECA25N.js";import*as e from"react";import{cva as m}from"class-variance-authority";import{Tabs as a}from"radix-ui";import{jsx as p}from"react/jsx-runtime";var V=a.Root,g=m("text-muted-foreground",{variants:{variant:{default:"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1",underline:"flex h-auto w-full items-center justify-start rounded-none border-b bg-transparent p-0"}},defaultVariants:{variant:"default"}}),v=m("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"rounded-md px-3 py-1 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",underline:"rounded-none border-b-2 border-transparent px-3 py-2 data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:text-primary data-[state=active]:shadow-none"}},defaultVariants:{variant:"default"}}),u=e.createContext({variant:"default"}),y=e.forwardRef((l,s)=>{var o=l,{className:i,variant:t,children:r}=o,n=d(o,["className","variant","children"]);return p(u.Provider,{value:{variant:t},children:p(a.List,b(f({ref:s,className:c(g({variant:t}),i)},n),{children:r}))})});y.displayName=a.List.displayName;var T=e.forwardRef((s,n)=>{var l=s,{className:i,variant:t}=l,r=d(l,["className","variant"]);let o=e.useContext(u);return p(a.Trigger,f({ref:n,className:c(v({variant:t!=null?t:o.variant}),i)},r))});T.displayName=a.Trigger.displayName;var R=e.forwardRef((n,r)=>{var s=n,{className:i}=s,t=d(s,["className"]);return p(a.Content,f({ref:r,className:c("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",i)},t))});R.displayName=a.Content.displayName;export{V as a,g as b,v as c,y as d,T as e,R as f};
|
|
2
|
+
//# sourceMappingURL=chunk-KGEITSDG.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/tabs/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\"text-muted-foreground\", {\n variants: {\n variant: {\n default:\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1\",\n underline:\n \"flex h-auto w-full items-center justify-start rounded-none border-b bg-transparent p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nconst tabsTriggerVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"rounded-md px-3 py-1 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n underline:\n \"rounded-none border-b-2 border-transparent px-3 py-2 data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:text-primary data-[state=active]:shadow-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n// Lets TabsList share its variant with every descendant TabsTrigger, so consumers\n// only set variant once on the list (mirrors ToggleGroup/ToggleGroupItem).\nconst TabsListContext = React.createContext<\n VariantProps<typeof tabsTriggerVariants>\n>({ variant: \"default\" });\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>\n>(({ className, variant, children, ...props }, ref) => (\n <TabsListContext.Provider value={{ variant }}>\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n >\n {children}\n </TabsPrimitive.List>\n </TabsListContext.Provider>\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> &\n VariantProps<typeof tabsTriggerVariants>\n>(({ className, variant, ...props }, ref) => {\n const context = React.useContext(TabsListContext);\n\n return (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n tabsTriggerVariants({ variant: variant ?? context.variant }),\n className,\n )}\n {...props}\n />\n );\n});\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport {\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n tabsListVariants,\n tabsTriggerVariants,\n};\n"],
|
|
5
|
-
"mappings": "yFAAA,UAAYA,MAAW,QACvB,OAAS,OAAAC,MAA8B,2BACvC,OAAS,QAAQC,MAAqB,WAiDlC,cAAAC,MAAA,oBA7CJ,IAAMC,EAAOC,EAAc,KAErBC,EAAmBC,EAAI,wBAAyB,CACpD,SAAU,CACR,QAAS,CACP,QACE,sEACF,UACE,wFACJ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CAAC,EAEKC,EAAsBD,EAC1B,2QACA,CACE,SAAU,CACR,QAAS,CACP,QACE,wHACF,UACE,6LACJ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAIME,EAAwB,gBAE5B,CAAE,QAAS,SAAU,CAAC,EAElBC,EAAiB,aAIrB,CAACC,EAA4CC,IAAK,CAAjD,IAAAC,EAAAF,EAAE,WAAAG,EAAW,QAAAC,EAAS,SAAAC,CAjDzB,EAiDGH,EAAmCI,EAAAC,EAAnCL,EAAmC,CAAjC,YAAW,UAAS,aACvB,OAAAV,EAACM,EAAgB,SAAhB,CAAyB,MAAO,CAAE,QAAAM,CAAQ,EACzC,SAAAZ,EAACE,EAAc,KAAdc,EAAAC,EAAA,CACC,IAAKR,EACL,UAAWS,EAAGf,EAAiB,CAAE,QAAAS,CAAQ,CAAC,EAAGD,CAAS,GAClDG,GAHL,CAKE,SAAAD,GACH,EACF,EACD,EACDN,EAAS,YAAcL,EAAc,KAAK,YAE1C,IAAMiB,EAAoB,aAIxB,CAACX,EAAkCC,IAAQ,CAA1C,IAAAC,EAAAF,EAAE,WAAAG,EAAW,QAAAC,CAlEhB,EAkEGF,EAAyBI,EAAAC,EAAzBL,EAAyB,CAAvB,YAAW,YACd,IAAMU,EAAgB,aAAWd,CAAe,EAEhD,OACEN,EAACE,EAAc,QAAde,EAAA,CACC,IAAKR,EACL,UAAWS,EACTb,EAAoB,CAAE,QAASO,GAAA,KAAAA,EAAWQ,EAAQ,OAAQ,CAAC,EAC3DT,CACF,GACIG,EACN,CAEJ,CAAC,EACDK,EAAY,YAAcjB,EAAc,QAAQ,YAEhD,IAAMmB,EAAoB,aAGxB,CAACb,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CArFL,EAqFGD,EAAgBI,EAAAC,EAAhBL,EAAgB,CAAd,cACH,OAAAV,EAACE,EAAc,QAAde,EAAA,CACC,IAAKR,EACL,UAAWS,EACT,kIACAP,CACF,GACIG,EACN,EACD,EACDO,EAAY,YAAcnB,EAAc,QAAQ",
|
|
6
|
-
"names": ["React", "cva", "TabsPrimitive", "jsx", "Tabs", "TabsPrimitive", "tabsListVariants", "cva", "tabsTriggerVariants", "TabsListContext", "TabsList", "_a", "ref", "_b", "className", "variant", "children", "props", "__objRest", "__spreadProps", "__spreadValues", "cn", "TabsTrigger", "context", "TabsContent"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/tabs/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\"text-muted-foreground\", {\n variants: {\n variant: {\n default:\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1\",\n underline:\n \"flex h-auto w-full items-center justify-start rounded-none border-b bg-transparent p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nconst tabsTriggerVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"rounded-md px-3 py-1 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n underline:\n \"rounded-none border-b-2 border-transparent px-3 py-2 data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:text-primary data-[state=active]:shadow-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n// Lets TabsList share its variant with every descendant TabsTrigger, so consumers\n// only set variant once on the list (mirrors ToggleGroup/ToggleGroupItem).\nconst TabsListContext = React.createContext<\n VariantProps<typeof tabsTriggerVariants>\n>({ variant: \"default\" });\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>\n>(({ className, variant, children, ...props }, ref) => (\n <TabsListContext.Provider value={{ variant }}>\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n >\n {children}\n </TabsPrimitive.List>\n </TabsListContext.Provider>\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> &\n VariantProps<typeof tabsTriggerVariants>\n>(({ className, variant, ...props }, ref) => {\n const context = React.useContext(TabsListContext);\n\n return (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n tabsTriggerVariants({ variant: variant ?? context.variant }),\n className,\n )}\n {...props}\n />\n );\n});\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport {\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n tabsListVariants,\n tabsTriggerVariants,\n};\n"],
|
|
5
|
+
"mappings": "yFAAA,UAAYA,MAAW,QACvB,OAAS,OAAAC,MAA8B,2BACvC,OAAS,QAAQC,MAAqB,WAiDlC,cAAAC,MAAA,oBA7CJ,IAAMC,EAAOC,EAAc,KAErBC,EAAmBC,EAAI,wBAAyB,CACpD,SAAU,CACR,QAAS,CACP,QACE,sEACF,UACE,wFACJ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CAAC,EAEKC,EAAsBD,EAC1B,2QACA,CACE,SAAU,CACR,QAAS,CACP,QACE,wHACF,UACE,6LACJ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAIME,EAAwB,gBAE5B,CAAE,QAAS,SAAU,CAAC,EAElBC,EAAiB,aAIrB,CAACC,EAA4CC,IAAK,CAAjD,IAAAC,EAAAF,EAAE,WAAAG,EAAW,QAAAC,EAAS,SAAAC,CAjDzB,EAiDGH,EAAmCI,EAAAC,EAAnCL,EAAmC,CAAjC,YAAW,UAAS,aACvB,OAAAV,EAACM,EAAgB,SAAhB,CAAyB,MAAO,CAAE,QAAAM,CAAQ,EACzC,SAAAZ,EAACE,EAAc,KAAdc,EAAAC,EAAA,CACC,IAAKR,EACL,UAAWS,EAAGf,EAAiB,CAAE,QAAAS,CAAQ,CAAC,EAAGD,CAAS,GAClDG,GAHL,CAKE,SAAAD,GACH,EACF,EACD,EACDN,EAAS,YAAcL,EAAc,KAAK,YAE1C,IAAMiB,EAAoB,aAIxB,CAACX,EAAkCC,IAAQ,CAA1C,IAAAC,EAAAF,EAAE,WAAAG,EAAW,QAAAC,CAlEhB,EAkEGF,EAAyBI,EAAAC,EAAzBL,EAAyB,CAAvB,YAAW,YACd,IAAMU,EAAgB,aAAWd,CAAe,EAEhD,OACEN,EAACE,EAAc,QAAde,EAAA,CACC,IAAKR,EACL,UAAWS,EACTb,EAAoB,CAAE,QAASO,GAAA,KAAAA,EAAWQ,EAAQ,OAAQ,CAAC,EAC3DT,CACF,GACIG,EACN,CAEJ,CAAC,EACDK,EAAY,YAAcjB,EAAc,QAAQ,YAEhD,IAAMmB,EAAoB,aAGxB,CAACb,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CArFL,EAqFGD,EAAgBI,EAAAC,EAAhBL,EAAgB,CAAd,cACH,OAAAV,EAACE,EAAc,QAAde,EAAA,CACC,IAAKR,EACL,UAAWS,EACT,kIACAP,CACF,GACIG,EACN,EACD,EACDO,EAAY,YAAcnB,EAAc,QAAQ",
|
|
6
|
+
"names": ["React", "cva", "TabsPrimitive", "jsx", "Tabs", "TabsPrimitive", "tabsListVariants", "cva", "tabsTriggerVariants", "TabsListContext", "TabsList", "_a", "ref", "_b", "className", "variant", "children", "props", "__objRest", "__spreadProps", "__spreadValues", "cn", "TabsTrigger", "context", "TabsContent"]
|
|
7
|
+
}
|
package/dist/chunk-KR5A3H22.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as w}from"./chunk-GTEOHHVD.js";import{a as P}from"./chunk-WIFBPNRH.js";import{a as N,b as y,c as U}from"./chunk-WHECA25N.js";import*as l from"react";import{ArrowUpIcon as E,XIcon as M}from"lucide-react";import{jsx as t,jsxs as m}from"react/jsx-runtime";function R(d,s){return s.split(",").map(r=>r.trim().toLowerCase()).some(r=>r.startsWith(".")?d.name.toLowerCase().endsWith(r):r.endsWith("/*")?d.type.startsWith(r.slice(0,-1)):d.type===r)}function H(W){var b=W,{className:d,files:s,onAdd:r,onRemove:z,onReject:o,accept:c="image/jpeg,image/png",maxFiles:i,maxSizeBytes:g,disabled:f,label:D="Choose files or drag them here",hint:k="JPG or PNG \xB7 10MB per file",uploadedLabel:C="Uploaded"}=b,L=U(b,["className","files","onAdd","onRemove","onReject","accept","maxFiles","maxSizeBytes","disabled","label","hint","uploadedLabel"]);let x=l.useRef(null),[A,u]=l.useState(!1),F=i!==void 0&&s.length>=i,p=f||F,h=e=>{let a=[],v=i===void 0?1/0:Math.max(i-s.length,0);for(let n of e)R(n,c)?g!==void 0&&n.size>g?o==null||o(n,"max-size"):v<=0?o==null||o(n,"max-files"):(a.push(n),v-=1):o==null||o(n,"type");a.length&&r(a)},I=e=>{e.preventDefault(),u(!1),!p&&h(Array.from(e.dataTransfer.files))};return m("div",y(N({"data-slot":"photo-upload",className:P("flex w-full flex-col gap-3",d)},L),{children:[m("button",{type:"button",disabled:p,onClick:()=>{var e;return(e=x.current)==null?void 0:e.click()},onDragOver:e=>{e.preventDefault(),p||u(!0)},onDragLeave:()=>u(!1),onDrop:I,"data-dragging":A?"":void 0,className:"flex w-full flex-col items-center justify-center gap-1.5 rounded-lg border-[1.5px] border-dashed border-foreground/15 bg-muted px-4 py-7 text-center outline-none transition-colors hover:bg-muted/70 focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[dragging]:border-surface-color-brand data-[dragging]:bg-surface-color-brand-bland",children:[t("span",{className:"flex size-11 items-center justify-center rounded-full border border-muted-foreground text-muted-foreground",children:t(E,{className:"size-5","aria-hidden":"true"})}),t("span",{className:"text-sm font-medium text-foreground",children:D}),t("span",{className:"text-xs font-medium text-muted-foreground",children:k})]}),t("input",{ref:x,type:"file",accept:c,multiple:i!==1,className:"hidden",tabIndex:-1,"aria-hidden":"true",onChange:e=>{var a;h(Array.from((a=e.target.files)!=null?a:[])),e.target.value=""}}),s.length>0&&t("ul",{className:"flex flex-col gap-3",children:s.map(e=>{var a;return m("li",{"data-status":e.status,className:"flex items-center gap-2 rounded-md border border-foreground/15 bg-background px-3 py-2.5",children:[e.previewUrl?t("img",{src:e.previewUrl,alt:"",className:"size-7 shrink-0 rounded-[6px] border border-foreground/15 object-cover"}):t("span",{className:"size-7 shrink-0 rounded-[6px] border border-foreground/15 bg-muted"}),t("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:e.name}),e.status==="uploading"&&t(w,{className:"size-4 text-muted-foreground"}),e.status==="uploaded"&&t("span",{className:"text-xs font-medium text-content-brand",children:C}),e.status==="error"&&t("span",{className:"text-xs font-medium text-destructive",children:(a=e.error)!=null?a:"Upload failed"}),t("button",{type:"button",disabled:f,onClick:()=>z(e.id),"aria-label":`Remove ${e.name}`,className:"rounded-sm text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",children:t(M,{className:"size-4"})})]},e.id)})})]}))}export{H as a};
|
|
2
|
-
//# sourceMappingURL=chunk-KR5A3H22.js.map
|
|
1
|
+
import{a as w}from"./chunk-GTEOHHVD.js";import{a as P}from"./chunk-WIFBPNRH.js";import{a as N,b as y,c as U}from"./chunk-WHECA25N.js";import*as l from"react";import{ArrowUpIcon as E,XIcon as M}from"lucide-react";import{jsx as t,jsxs as m}from"react/jsx-runtime";function R(d,s){return s.split(",").map(r=>r.trim().toLowerCase()).some(r=>r.startsWith(".")?d.name.toLowerCase().endsWith(r):r.endsWith("/*")?d.type.startsWith(r.slice(0,-1)):d.type===r)}function H(W){var b=W,{className:d,files:s,onAdd:r,onRemove:z,onReject:o,accept:c="image/jpeg,image/png",maxFiles:i,maxSizeBytes:g,disabled:f,label:D="Choose files or drag them here",hint:k="JPG or PNG \xB7 10MB per file",uploadedLabel:C="Uploaded"}=b,L=U(b,["className","files","onAdd","onRemove","onReject","accept","maxFiles","maxSizeBytes","disabled","label","hint","uploadedLabel"]);let x=l.useRef(null),[A,u]=l.useState(!1),F=i!==void 0&&s.length>=i,p=f||F,h=e=>{let a=[],v=i===void 0?1/0:Math.max(i-s.length,0);for(let n of e)R(n,c)?g!==void 0&&n.size>g?o==null||o(n,"max-size"):v<=0?o==null||o(n,"max-files"):(a.push(n),v-=1):o==null||o(n,"type");a.length&&r(a)},I=e=>{e.preventDefault(),u(!1),!p&&h(Array.from(e.dataTransfer.files))};return m("div",y(N({"data-slot":"photo-upload",className:P("flex w-full flex-col gap-3",d)},L),{children:[m("button",{type:"button",disabled:p,onClick:()=>{var e;return(e=x.current)==null?void 0:e.click()},onDragOver:e=>{e.preventDefault(),p||u(!0)},onDragLeave:()=>u(!1),onDrop:I,"data-dragging":A?"":void 0,className:"flex w-full flex-col items-center justify-center gap-1.5 rounded-lg border-[1.5px] border-dashed border-foreground/15 bg-muted px-4 py-7 text-center outline-none transition-colors hover:bg-muted/70 focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[dragging]:border-surface-color-brand data-[dragging]:bg-surface-color-brand-bland",children:[t("span",{className:"flex size-11 items-center justify-center rounded-full border border-muted-foreground text-muted-foreground",children:t(E,{className:"size-5","aria-hidden":"true"})}),t("span",{className:"text-sm font-medium text-foreground",children:D}),t("span",{className:"text-xs font-medium text-muted-foreground",children:k})]}),t("input",{ref:x,type:"file",accept:c,multiple:i!==1,className:"hidden",tabIndex:-1,"aria-hidden":"true",onChange:e=>{var a;h(Array.from((a=e.target.files)!=null?a:[])),e.target.value=""}}),s.length>0&&t("ul",{className:"flex flex-col gap-3",children:s.map(e=>{var a;return m("li",{"data-status":e.status,className:"flex items-center gap-2 rounded-md border border-foreground/15 bg-background px-3 py-2.5",children:[e.previewUrl?t("img",{src:e.previewUrl,alt:"",className:"size-7 shrink-0 rounded-[6px] border border-foreground/15 object-cover"}):t("span",{className:"size-7 shrink-0 rounded-[6px] border border-foreground/15 bg-muted"}),t("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:e.name}),e.status==="uploading"&&t(w,{className:"size-4 text-muted-foreground"}),e.status==="uploaded"&&t("span",{className:"text-xs font-medium text-content-brand",children:C}),e.status==="error"&&t("span",{className:"text-xs font-medium text-destructive",children:(a=e.error)!=null?a:"Upload failed"}),t("button",{type:"button",disabled:f,onClick:()=>z(e.id),"aria-label":`Remove ${e.name}`,className:"rounded-sm text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",children:t(M,{className:"size-4"})})]},e.id)})})]}))}export{H as a};
|
|
2
|
+
//# sourceMappingURL=chunk-KR5A3H22.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/photo-upload/index.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { ArrowUpIcon, XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Spinner } from \"@/components/spinner\";\n\nexport type PhotoUploadFile = {\n id: string;\n name: string;\n previewUrl?: string;\n status: \"uploading\" | \"uploaded\" | \"error\";\n error?: string;\n};\n\nexport type PhotoUploadRejectReason = \"max-files\" | \"max-size\" | \"type\";\n\nexport type PhotoUploadProps = Omit<React.ComponentProps<\"div\">, \"onError\"> & {\n files: PhotoUploadFile[];\n onAdd: (files: File[]) => void;\n onRemove: (id: string) => void;\n onReject?: (file: File, reason: PhotoUploadRejectReason) => void;\n accept?: string;\n maxFiles?: number;\n maxSizeBytes?: number;\n disabled?: boolean;\n label?: React.ReactNode;\n hint?: React.ReactNode;\n uploadedLabel?: string;\n};\n\nfunction matchesAccept(file: File, accept: string) {\n return accept\n .split(\",\")\n .map((type) => type.trim().toLowerCase())\n .some((type) => {\n if (type.startsWith(\".\")) return file.name.toLowerCase().endsWith(type);\n if (type.endsWith(\"/*\")) return file.type.startsWith(type.slice(0, -1));\n return file.type === type;\n });\n}\n\n/**\n * Dropzone and file list for photos. The consumer owns the upload and each file's status.\n * @param props.files - files already added, with their upload status\n * @param props.onAdd - called with the files that passed validation\n * @param props.onRemove - called with the id of the file to remove\n * @param props.onReject - called for each file that failed validation\n */\nfunction PhotoUpload({\n className,\n files,\n onAdd,\n onRemove,\n onReject,\n accept = \"image/jpeg,image/png\",\n maxFiles,\n maxSizeBytes,\n disabled,\n label = \"Choose files or drag them here\",\n hint = \"JPG or PNG \u00B7 10MB per file\",\n uploadedLabel = \"Uploaded\",\n ...props\n}: PhotoUploadProps) {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [dragging, setDragging] = React.useState(false);\n const full = maxFiles !== undefined && files.length >= maxFiles;\n const inactive = disabled || full;\n\n const addFiles = (incoming: File[]) => {\n const accepted: File[] = [];\n let slots =\n maxFiles === undefined ? Infinity : Math.max(maxFiles - files.length, 0);\n\n for (const file of incoming) {\n if (!matchesAccept(file, accept)) {\n onReject?.(file, \"type\");\n } else if (maxSizeBytes !== undefined && file.size > maxSizeBytes) {\n onReject?.(file, \"max-size\");\n } else if (slots <= 0) {\n onReject?.(file, \"max-files\");\n } else {\n accepted.push(file);\n slots -= 1;\n }\n }\n\n if (accepted.length) onAdd(accepted);\n };\n\n const handleDrop = (event: React.DragEvent<HTMLButtonElement>) => {\n event.preventDefault();\n setDragging(false);\n if (inactive) return;\n addFiles(Array.from(event.dataTransfer.files));\n };\n\n return (\n <div\n data-slot=\"photo-upload\"\n className={cn(\"flex w-full flex-col gap-3\", className)}\n {...props}\n >\n <button\n type=\"button\"\n disabled={inactive}\n onClick={() => inputRef.current?.click()}\n onDragOver={(event) => {\n event.preventDefault();\n if (!inactive) setDragging(true);\n }}\n onDragLeave={() => setDragging(false)}\n onDrop={handleDrop}\n data-dragging={dragging ? \"\" : undefined}\n className=\"flex w-full flex-col items-center justify-center gap-1.5 rounded-lg border-[1.5px] border-dashed border-foreground/15 bg-muted px-4 py-7 text-center outline-none transition-colors hover:bg-muted/70 focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[dragging]:border-surface-color-brand data-[dragging]:bg-surface-color-brand-bland\"\n >\n <span className=\"flex size-11 items-center justify-center rounded-full border border-muted-foreground text-muted-foreground\">\n <ArrowUpIcon className=\"size-5\" aria-hidden=\"true\" />\n </span>\n <span className=\"text-sm font-medium text-foreground\">{label}</span>\n <span className=\"text-xs font-medium text-muted-foreground\">\n {hint}\n </span>\n </button>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={maxFiles !== 1}\n className=\"hidden\"\n tabIndex={-1}\n aria-hidden=\"true\"\n onChange={(event) => {\n addFiles(Array.from(event.target.files ?? []));\n event.target.value = \"\";\n }}\n />\n {files.length > 0 && (\n <ul className=\"flex flex-col gap-3\">\n {files.map((file) => (\n <li\n key={file.id}\n data-status={file.status}\n className=\"flex items-center gap-2 rounded-md border border-foreground/15 bg-background px-3 py-2.5\"\n >\n {file.previewUrl ? (\n <img\n src={file.previewUrl}\n alt=\"\"\n className=\"size-7 shrink-0 rounded-[6px] border border-foreground/15 object-cover\"\n />\n ) : (\n <span className=\"size-7 shrink-0 rounded-[6px] border border-foreground/15 bg-muted\" />\n )}\n <span className=\"min-w-0 flex-1 truncate text-sm text-foreground\">\n {file.name}\n </span>\n {file.status === \"uploading\" && (\n <Spinner className=\"size-4 text-muted-foreground\" />\n )}\n {file.status === \"uploaded\" && (\n <span className=\"text-xs font-medium text-content-brand\">\n {uploadedLabel}\n </span>\n )}\n {file.status === \"error\" && (\n <span className=\"text-xs font-medium text-destructive\">\n {file.error ?? \"Upload failed\"}\n </span>\n )}\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onRemove(file.id)}\n aria-label={`Remove ${file.name}`}\n className=\"rounded-sm text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <XIcon className=\"size-4\" />\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nexport { PhotoUpload };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "ArrowUpIcon", "XIcon", "jsx", "jsxs", "matchesAccept", "file", "accept", "type", "PhotoUpload", "_a", "_b", "className", "files", "onAdd", "onRemove", "onReject", "maxFiles", "maxSizeBytes", "disabled", "label", "hint", "uploadedLabel", "props", "__objRest", "inputRef", "dragging", "setDragging", "full", "inactive", "addFiles", "incoming", "accepted", "slots", "handleDrop", "event", "__spreadProps", "__spreadValues", "cn", "ArrowUpIcon", "Spinner", "XIcon"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/photo-upload/index.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { ArrowUpIcon, XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Spinner } from \"@/components/spinner\";\n\nexport type PhotoUploadFile = {\n id: string;\n name: string;\n previewUrl?: string;\n status: \"uploading\" | \"uploaded\" | \"error\";\n error?: string;\n};\n\nexport type PhotoUploadRejectReason = \"max-files\" | \"max-size\" | \"type\";\n\nexport type PhotoUploadProps = Omit<React.ComponentProps<\"div\">, \"onError\"> & {\n files: PhotoUploadFile[];\n onAdd: (files: File[]) => void;\n onRemove: (id: string) => void;\n onReject?: (file: File, reason: PhotoUploadRejectReason) => void;\n accept?: string;\n maxFiles?: number;\n maxSizeBytes?: number;\n disabled?: boolean;\n label?: React.ReactNode;\n hint?: React.ReactNode;\n uploadedLabel?: string;\n};\n\nfunction matchesAccept(file: File, accept: string) {\n return accept\n .split(\",\")\n .map((type) => type.trim().toLowerCase())\n .some((type) => {\n if (type.startsWith(\".\")) return file.name.toLowerCase().endsWith(type);\n if (type.endsWith(\"/*\")) return file.type.startsWith(type.slice(0, -1));\n return file.type === type;\n });\n}\n\n/**\n * Dropzone and file list for photos. The consumer owns the upload and each file's status.\n * @param props.files - files already added, with their upload status\n * @param props.onAdd - called with the files that passed validation\n * @param props.onRemove - called with the id of the file to remove\n * @param props.onReject - called for each file that failed validation\n */\nfunction PhotoUpload({\n className,\n files,\n onAdd,\n onRemove,\n onReject,\n accept = \"image/jpeg,image/png\",\n maxFiles,\n maxSizeBytes,\n disabled,\n label = \"Choose files or drag them here\",\n hint = \"JPG or PNG \u00B7 10MB per file\",\n uploadedLabel = \"Uploaded\",\n ...props\n}: PhotoUploadProps) {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [dragging, setDragging] = React.useState(false);\n const full = maxFiles !== undefined && files.length >= maxFiles;\n const inactive = disabled || full;\n\n const addFiles = (incoming: File[]) => {\n const accepted: File[] = [];\n let slots =\n maxFiles === undefined ? Infinity : Math.max(maxFiles - files.length, 0);\n\n for (const file of incoming) {\n if (!matchesAccept(file, accept)) {\n onReject?.(file, \"type\");\n } else if (maxSizeBytes !== undefined && file.size > maxSizeBytes) {\n onReject?.(file, \"max-size\");\n } else if (slots <= 0) {\n onReject?.(file, \"max-files\");\n } else {\n accepted.push(file);\n slots -= 1;\n }\n }\n\n if (accepted.length) onAdd(accepted);\n };\n\n const handleDrop = (event: React.DragEvent<HTMLButtonElement>) => {\n event.preventDefault();\n setDragging(false);\n if (inactive) return;\n addFiles(Array.from(event.dataTransfer.files));\n };\n\n return (\n <div\n data-slot=\"photo-upload\"\n className={cn(\"flex w-full flex-col gap-3\", className)}\n {...props}\n >\n <button\n type=\"button\"\n disabled={inactive}\n onClick={() => inputRef.current?.click()}\n onDragOver={(event) => {\n event.preventDefault();\n if (!inactive) setDragging(true);\n }}\n onDragLeave={() => setDragging(false)}\n onDrop={handleDrop}\n data-dragging={dragging ? \"\" : undefined}\n className=\"flex w-full flex-col items-center justify-center gap-1.5 rounded-lg border-[1.5px] border-dashed border-foreground/15 bg-muted px-4 py-7 text-center outline-none transition-colors hover:bg-muted/70 focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[dragging]:border-surface-color-brand data-[dragging]:bg-surface-color-brand-bland\"\n >\n <span className=\"flex size-11 items-center justify-center rounded-full border border-muted-foreground text-muted-foreground\">\n <ArrowUpIcon className=\"size-5\" aria-hidden=\"true\" />\n </span>\n <span className=\"text-sm font-medium text-foreground\">{label}</span>\n <span className=\"text-xs font-medium text-muted-foreground\">\n {hint}\n </span>\n </button>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={maxFiles !== 1}\n className=\"hidden\"\n tabIndex={-1}\n aria-hidden=\"true\"\n onChange={(event) => {\n addFiles(Array.from(event.target.files ?? []));\n event.target.value = \"\";\n }}\n />\n {files.length > 0 && (\n <ul className=\"flex flex-col gap-3\">\n {files.map((file) => (\n <li\n key={file.id}\n data-status={file.status}\n className=\"flex items-center gap-2 rounded-md border border-foreground/15 bg-background px-3 py-2.5\"\n >\n {file.previewUrl ? (\n <img\n src={file.previewUrl}\n alt=\"\"\n className=\"size-7 shrink-0 rounded-[6px] border border-foreground/15 object-cover\"\n />\n ) : (\n <span className=\"size-7 shrink-0 rounded-[6px] border border-foreground/15 bg-muted\" />\n )}\n <span className=\"min-w-0 flex-1 truncate text-sm text-foreground\">\n {file.name}\n </span>\n {file.status === \"uploading\" && (\n <Spinner className=\"size-4 text-muted-foreground\" />\n )}\n {file.status === \"uploaded\" && (\n <span className=\"text-xs font-medium text-content-brand\">\n {uploadedLabel}\n </span>\n )}\n {file.status === \"error\" && (\n <span className=\"text-xs font-medium text-destructive\">\n {file.error ?? \"Upload failed\"}\n </span>\n )}\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onRemove(file.id)}\n aria-label={`Remove ${file.name}`}\n className=\"rounded-sm text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <XIcon className=\"size-4\" />\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nexport { PhotoUpload };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "ArrowUpIcon", "XIcon", "jsx", "jsxs", "matchesAccept", "file", "accept", "type", "PhotoUpload", "_a", "_b", "className", "files", "onAdd", "onRemove", "onReject", "maxFiles", "maxSizeBytes", "disabled", "label", "hint", "uploadedLabel", "props", "__objRest", "inputRef", "dragging", "setDragging", "full", "inactive", "addFiles", "incoming", "accepted", "slots", "handleDrop", "event", "__spreadProps", "__spreadValues", "cn", "ArrowUpIcon", "Spinner", "XIcon"]
|
|
7
|
+
}
|
package/dist/chunk-LUG5DIYB.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n}from"./chunk-WIFBPNRH.js";import{a as e,c as t}from"./chunk-WHECA25N.js";import{cva as s}from"class-variance-authority";import{jsx as u}from"react/jsx-runtime";var g=s("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-normal transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",highlight:"border-transparent bg-highlight text-highlight-foreground shadow hover:bg-highlight/80",outline:"text-foreground","brand-silent":"border-transparent bg-surface-color-brand-silent font-medium tracking-[0.015em] text-content-brand"},size:{default:"",chip:"h-5 min-w-5 justify-center rounded-full px-0 py-0 tabular-nums",pill:"h-5 min-w-5 justify-center rounded-full px-1.5 py-0.5 text-[11px] leading-[14px]"}},defaultVariants:{variant:"default",size:"default"}});function c(p){var r=p,{className:o,variant:a,size:i}=r,d=t(r,["className","variant","size"]);return u("div",e({className:n(g({variant:a,size:i}),o)},d))}export{g as a,c as b};
|
|
2
|
-
//# sourceMappingURL=chunk-LUG5DIYB.js.map
|
|
1
|
+
import{a as n}from"./chunk-WIFBPNRH.js";import{a as e,c as t}from"./chunk-WHECA25N.js";import{cva as s}from"class-variance-authority";import{jsx as u}from"react/jsx-runtime";var g=s("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-normal transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",highlight:"border-transparent bg-highlight text-highlight-foreground shadow hover:bg-highlight/80",outline:"text-foreground","brand-silent":"border-transparent bg-surface-color-brand-silent font-medium tracking-[0.015em] text-content-brand"},size:{default:"",chip:"h-5 min-w-5 justify-center rounded-full px-0 py-0 tabular-nums",pill:"h-5 min-w-5 justify-center rounded-full px-1.5 py-0.5 text-[11px] leading-[14px]"}},defaultVariants:{variant:"default",size:"default"}});function c(p){var r=p,{className:o,variant:a,size:i}=r,d=t(r,["className","variant","size"]);return u("div",e({className:n(g({variant:a,size:i}),o)},d))}export{g as a,c as b};
|
|
2
|
+
//# sourceMappingURL=chunk-LUG5DIYB.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/badge/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-normal transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n highlight:\n \"border-transparent bg-highlight text-highlight-foreground shadow hover:bg-highlight/80\",\n outline: \"text-foreground\",\n \"brand-silent\":\n \"border-transparent bg-surface-color-brand-silent font-medium tracking-[0.015em] text-content-brand\",\n },\n size: {\n default: \"\",\n chip: \"h-5 min-w-5 justify-center rounded-full px-0 py-0 tabular-nums\",\n pill: \"h-5 min-w-5 justify-center rounded-full px-1.5 py-0.5 text-[11px] leading-[14px]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type BadgeProps = {} & React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof badgeVariants>;\n\nfunction Badge({ className, variant, size, ...props }: BadgeProps) {\n return (\n <div\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n"],
|
|
5
|
-
"mappings": "uFACA,OAAS,OAAAA,MAA8B,2BAuCnC,cAAAC,MAAA,oBAnCJ,IAAMC,EAAgBC,EACpB,qKACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mFACF,UACE,kFACF,YACE,+FACF,UACE,yFACF,QAAS,kBACT,eACE,oGACJ,EACA,KAAM,CACJ,QAAS,GACT,KAAM,iEACN,KAAM,kFACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAKA,SAASC,EAAMC,EAAoD,CAApD,IAAAC,EAAAD,EAAE,WAAAE,EAAW,QAAAC,EAAS,KAAAC,CAtCrC,EAsCeH,EAA+BI,EAAAC,EAA/BL,EAA+B,CAA7B,YAAW,UAAS,SACnC,OACEL,EAAC,MAAAW,EAAA,CACC,UAAWC,EAAGX,EAAc,CAAE,QAAAM,EAAS,KAAAC,CAAK,CAAC,EAAGF,CAAS,GACrDG,EACN,CAEJ",
|
|
6
|
-
"names": ["cva", "jsx", "badgeVariants", "cva", "Badge", "_a", "_b", "className", "variant", "size", "props", "__objRest", "__spreadValues", "cn"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/badge/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-normal transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n highlight:\n \"border-transparent bg-highlight text-highlight-foreground shadow hover:bg-highlight/80\",\n outline: \"text-foreground\",\n \"brand-silent\":\n \"border-transparent bg-surface-color-brand-silent font-medium tracking-[0.015em] text-content-brand\",\n },\n size: {\n default: \"\",\n chip: \"h-5 min-w-5 justify-center rounded-full px-0 py-0 tabular-nums\",\n pill: \"h-5 min-w-5 justify-center rounded-full px-1.5 py-0.5 text-[11px] leading-[14px]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type BadgeProps = {} & React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof badgeVariants>;\n\nfunction Badge({ className, variant, size, ...props }: BadgeProps) {\n return (\n <div\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n"],
|
|
5
|
+
"mappings": "uFACA,OAAS,OAAAA,MAA8B,2BAuCnC,cAAAC,MAAA,oBAnCJ,IAAMC,EAAgBC,EACpB,qKACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mFACF,UACE,kFACF,YACE,+FACF,UACE,yFACF,QAAS,kBACT,eACE,oGACJ,EACA,KAAM,CACJ,QAAS,GACT,KAAM,iEACN,KAAM,kFACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAKA,SAASC,EAAMC,EAAoD,CAApD,IAAAC,EAAAD,EAAE,WAAAE,EAAW,QAAAC,EAAS,KAAAC,CAtCrC,EAsCeH,EAA+BI,EAAAC,EAA/BL,EAA+B,CAA7B,YAAW,UAAS,SACnC,OACEL,EAAC,MAAAW,EAAA,CACC,UAAWC,EAAGX,EAAc,CAAE,QAAAM,EAAS,KAAAC,CAAK,CAAC,EAAGF,CAAS,GACrDG,EACN,CAEJ",
|
|
6
|
+
"names": ["cva", "jsx", "badgeVariants", "cva", "Badge", "_a", "_b", "className", "variant", "size", "props", "__objRest", "__spreadValues", "cn"]
|
|
7
|
+
}
|
package/dist/chunk-PRAYE34P.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-WIFBPNRH.js";import{a as t,c as i}from"./chunk-WHECA25N.js";import{cva as d}from"class-variance-authority";import{Toggle as l}from"radix-ui";import{jsx as p}from"react/jsx-runtime";var g=d("group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent hover:bg-muted"},size:{default:"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",sm:"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"}},defaultVariants:{variant:"default",size:"default"}});function f(u){var e=u,{className:n,variant:r="default",size:o="default"}=e,s=i(e,["className","variant","size"]);return p(l.Root,t({"data-slot":"toggle",className:a(g({variant:r,size:o,className:n}))},s))}export{g as a,f as b};
|
|
2
|
-
//# sourceMappingURL=chunk-PRAYE34P.js.map
|
|
1
|
+
import{a}from"./chunk-WIFBPNRH.js";import{a as t,c as i}from"./chunk-WHECA25N.js";import{cva as d}from"class-variance-authority";import{Toggle as l}from"radix-ui";import{jsx as p}from"react/jsx-runtime";var g=d("group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent hover:bg-muted"},size:{default:"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",sm:"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"}},defaultVariants:{variant:"default",size:"default"}});function f(u){var e=u,{className:n,variant:r="default",size:o="default"}=e,s=i(e,["className","variant","size"]);return p(l.Root,t({"data-slot":"toggle",className:a(g({variant:r,size:o,className:n}))},s))}export{g as a,f as b};
|
|
2
|
+
//# sourceMappingURL=chunk-PRAYE34P.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/toggle/index.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted\",\n },\n size: {\n default:\n \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],
|
|
5
|
-
"mappings": "kFAGA,OAAS,OAAAA,MAA8B,2BACvC,OAAS,UAAUC,MAAuB,WAkCtC,cAAAC,MAAA,oBA9BJ,IAAMC,EAAiBC,EACrB,shBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,iBACT,QAAS,mDACX,EACA,KAAM,CACJ,QACE,uFACF,GAAI,qLACJ,GAAI,sFACN,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAEA,SAASC,EAAOC,EAMuB,CANvB,IAAAC,EAAAD,EACd,WAAAE,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,SAjCT,EA8BgBH,EAIXI,EAAAC,EAJWL,EAIX,CAHH,YACA,UACA,SAIA,OACEL,EAACW,EAAgB,KAAhBC,EAAA,CACC,YAAU,SACV,UAAWC,EAAGZ,EAAe,CAAE,QAAAM,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,CAAC,GACtDG,EACN,CAEJ",
|
|
6
|
-
"names": ["cva", "TogglePrimitive", "jsx", "toggleVariants", "cva", "Toggle", "_a", "_b", "className", "variant", "size", "props", "__objRest", "TogglePrimitive", "__spreadValues", "cn"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/toggle/index.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted\",\n },\n size: {\n default:\n \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],
|
|
5
|
+
"mappings": "kFAGA,OAAS,OAAAA,MAA8B,2BACvC,OAAS,UAAUC,MAAuB,WAkCtC,cAAAC,MAAA,oBA9BJ,IAAMC,EAAiBC,EACrB,shBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,iBACT,QAAS,mDACX,EACA,KAAM,CACJ,QACE,uFACF,GAAI,qLACJ,GAAI,sFACN,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAEA,SAASC,EAAOC,EAMuB,CANvB,IAAAC,EAAAD,EACd,WAAAE,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,SAjCT,EA8BgBH,EAIXI,EAAAC,EAJWL,EAIX,CAHH,YACA,UACA,SAIA,OACEL,EAACW,EAAgB,KAAhBC,EAAA,CACC,YAAU,SACV,UAAWC,EAAGZ,EAAe,CAAE,QAAAM,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,CAAC,GACtDG,EACN,CAEJ",
|
|
6
|
+
"names": ["cva", "TogglePrimitive", "jsx", "toggleVariants", "cva", "Toggle", "_a", "_b", "className", "variant", "size", "props", "__objRest", "TogglePrimitive", "__spreadValues", "cn"]
|
|
7
|
+
}
|
package/dist/chunk-Q3PG3WWG.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as N,c as h,d as y,e as w,f as P,h as p}from"./chunk-JVQR7SBQ.js";import{a as R,b as k,d as S}from"./chunk-BY3UM6EV.js";import{b as C}from"./chunk-BF3VTYEM.js";import{a as s}from"./chunk-WIFBPNRH.js";import*as a from"react";import{CheckIcon as H,ChevronsUpDownIcon as J}from"lucide-react";import{jsx as o,jsxs as t}from"react/jsx-runtime";function Y({items:u,placeholder:I="Select item...",emptyMessage:_="No item found.",searchable:B=!1,searchPlaceholder:E="Search...",value:v,onValueChange:r,onInputChange:n,className:G,popoverClassName:L,trigger:T,onAddOption:l,addNewOption:f}){var g;let[x,m]=a.useState(!1),[j,D]=a.useState(""),[F,b]=a.useState(""),i=v!==void 0,c=i?v:j,M=a.useCallback(e=>{i?r==null||r(e):D(e)},[i,r]),U=a.useCallback(e=>{b(e),n==null||n(e)},[n]),q=a.useCallback(()=>{l&&(l(""),b(""),m(!1))},[l]),z=!!(l&&f);return t(R,{open:x,onOpenChange:m,children:[o(k,{asChild:!0,children:T||t(C,{variant:"outline",role:"combobox","aria-expanded":x,className:s("w-[300px] justify-between",G),children:[c?(g=u.find(e=>e.value===c))==null?void 0:g.label:I,o(J,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),o(S,{className:s("w-[300px] p-0",L),children:t(N,{children:[B?o(h,{placeholder:E,onValueChange:U,value:F}):o("button",{autoFocus:!0,"aria-hidden":"true",className:"sr-only"}),t(y,{children:[o(w,{children:_}),t(P,{children:[u.map(e=>{let d=c===e.value;return t(p,{value:e.value,onSelect:A=>{M(d?"":A),m(!1)},className:s("group flex items-center gap-3 p-3",{"[&_*]:!text-primary":d}),children:[o(H,{className:s("mt-0.5 h-4 w-4 shrink-0",d?"opacity-100":"opacity-0")}),t("div",{className:s("flex min-w-0 flex-1 flex-col gap-2"),children:[o("div",{className:"text-sm leading-none",children:e.label}),o("div",{className:"text-sm leading-none text-muted-foreground",children:e.description})]})]},e.value)}),z&&t(p,{value:"__add_new_option",onSelect:()=>{q()},className:"flex items-center gap-3 p-3 text-primary",children:[o("div",{className:"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border border-current text-xs font-bold",children:"+"}),o("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:o("div",{className:"text-sm font-medium leading-none",children:f})})]})]})]})]})})]})}export{Y as a};
|
|
2
|
-
//# sourceMappingURL=chunk-Q3PG3WWG.js.map
|
|
1
|
+
import{a as N,c as h,d as y,e as w,f as P,h as p}from"./chunk-JVQR7SBQ.js";import{a as R,b as k,d as S}from"./chunk-BY3UM6EV.js";import{b as C}from"./chunk-BF3VTYEM.js";import{a as s}from"./chunk-WIFBPNRH.js";import*as a from"react";import{CheckIcon as H,ChevronsUpDownIcon as J}from"lucide-react";import{jsx as o,jsxs as t}from"react/jsx-runtime";function Y({items:u,placeholder:I="Select item...",emptyMessage:_="No item found.",searchable:B=!1,searchPlaceholder:E="Search...",value:v,onValueChange:r,onInputChange:n,className:G,popoverClassName:L,trigger:T,onAddOption:l,addNewOption:f}){var g;let[x,m]=a.useState(!1),[j,D]=a.useState(""),[F,b]=a.useState(""),i=v!==void 0,c=i?v:j,M=a.useCallback(e=>{i?r==null||r(e):D(e)},[i,r]),U=a.useCallback(e=>{b(e),n==null||n(e)},[n]),q=a.useCallback(()=>{l&&(l(""),b(""),m(!1))},[l]),z=!!(l&&f);return t(R,{open:x,onOpenChange:m,children:[o(k,{asChild:!0,children:T||t(C,{variant:"outline",role:"combobox","aria-expanded":x,className:s("w-[300px] justify-between",G),children:[c?(g=u.find(e=>e.value===c))==null?void 0:g.label:I,o(J,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),o(S,{className:s("w-[300px] p-0",L),children:t(N,{children:[B?o(h,{placeholder:E,onValueChange:U,value:F}):o("button",{autoFocus:!0,"aria-hidden":"true",className:"sr-only"}),t(y,{children:[o(w,{children:_}),t(P,{children:[u.map(e=>{let d=c===e.value;return t(p,{value:e.value,onSelect:A=>{M(d?"":A),m(!1)},className:s("group flex items-center gap-3 p-3",{"[&_*]:!text-primary":d}),children:[o(H,{className:s("mt-0.5 h-4 w-4 shrink-0",d?"opacity-100":"opacity-0")}),t("div",{className:s("flex min-w-0 flex-1 flex-col gap-2"),children:[o("div",{className:"text-sm leading-none",children:e.label}),o("div",{className:"text-sm leading-none text-muted-foreground",children:e.description})]})]},e.value)}),z&&t(p,{value:"__add_new_option",onSelect:()=>{q()},className:"flex items-center gap-3 p-3 text-primary",children:[o("div",{className:"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border border-current text-xs font-bold",children:"+"}),o("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:o("div",{className:"text-sm font-medium leading-none",children:f})})]})]})]})]})})]})}export{Y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-Q3PG3WWG.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/components/combobox/index.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon, ChevronsUpDownIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\n\ntype ComboboxItem = {\n value: string;\n label: string;\n description: string;\n};\n\nexport type { ComboboxItem };\n\nexport type ComboboxProps = {\n items: ComboboxItem[];\n placeholder?: string;\n emptyMessage?: string;\n searchable?: boolean;\n searchPlaceholder?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n onInputChange?: (value: string) => void;\n className?: string;\n popoverClassName?: string;\n trigger?: React.ReactNode;\n onAddOption?: (value: string) => void;\n addNewOption?: string;\n};\n\nexport function Combobox({\n items,\n placeholder = \"Select item...\",\n emptyMessage = \"No item found.\",\n searchable = false,\n searchPlaceholder = \"Search...\",\n value: controlledValue,\n onValueChange,\n onInputChange,\n className,\n popoverClassName,\n trigger,\n onAddOption,\n addNewOption,\n}: ComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState(\"\");\n const [searchValue, setSearchValue] = React.useState(\"\");\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internalValue;\n\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (isControlled) {\n onValueChange?.(newValue);\n } else {\n setInternalValue(newValue);\n }\n },\n [isControlled, onValueChange],\n );\n\n const handleSearchChange = React.useCallback(\n (newSearchValue: string) => {\n setSearchValue(newSearchValue);\n onInputChange?.(newSearchValue);\n },\n [onInputChange],\n );\n\n const handleAddNew = React.useCallback(() => {\n if (onAddOption) {\n onAddOption(\"\");\n setSearchValue(\"\");\n setOpen(false);\n }\n }, [onAddOption]);\n\n const showAddNew = Boolean(onAddOption && !!addNewOption);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n {trigger || (\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\"w-[300px] justify-between\", className)}\n >\n {value\n ? items.find((item) => item.value === value)?.label\n : placeholder}\n <ChevronsUpDownIcon className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n )}\n </PopoverTrigger>\n <PopoverContent className={cn(\"w-[300px] p-0\", popoverClassName)}>\n <Command>\n {searchable ? (\n <CommandInput\n placeholder={searchPlaceholder}\n onValueChange={handleSearchChange}\n value={searchValue}\n />\n ) : (\n <button autoFocus aria-hidden=\"true\" className=\"sr-only\" />\n )}\n <CommandList>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n <CommandGroup>\n {items.map((item) => {\n const selected = value === item.value;\n\n return (\n <CommandItem\n key={item.value}\n value={item.value}\n onSelect={(currentValue) => {\n handleValueChange(selected ? \"\" : currentValue);\n setOpen(false);\n }}\n className={cn(\"group flex items-center gap-3 p-3\", {\n \"[&_*]:!text-primary\": selected,\n })}\n >\n <CheckIcon\n className={cn(\n \"mt-0.5 h-4 w-4 shrink-0\",\n selected ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n <div className={cn(\"flex min-w-0 flex-1 flex-col gap-2\")}>\n <div className=\"text-sm leading-none\">{item.label}</div>\n <div className=\"text-sm leading-none text-muted-foreground\">\n {item.description}\n </div>\n </div>\n </CommandItem>\n );\n })}\n {showAddNew && (\n <CommandItem\n value={`__add_new_option`}\n onSelect={() => {\n // Prevent default value change behavior\n handleAddNew();\n }}\n className=\"flex items-center gap-3 p-3 text-primary\"\n >\n <div className=\"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border border-current text-xs font-bold\">\n +\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <div className=\"text-sm font-medium leading-none\">\n {addNewOption}\n </div>\n </div>\n </CommandItem>\n )}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "CheckIcon", "ChevronsUpDownIcon", "jsx", "jsxs", "Combobox", "items", "placeholder", "emptyMessage", "searchable", "searchPlaceholder", "controlledValue", "onValueChange", "onInputChange", "className", "popoverClassName", "trigger", "onAddOption", "addNewOption", "_a", "open", "setOpen", "internalValue", "setInternalValue", "searchValue", "setSearchValue", "isControlled", "value", "handleValueChange", "newValue", "handleSearchChange", "newSearchValue", "handleAddNew", "showAddNew", "Popover", "PopoverTrigger", "Button", "cn", "item", "ChevronsUpDownIcon", "PopoverContent", "Command", "CommandInput", "CommandList", "CommandEmpty", "CommandGroup", "selected", "CommandItem", "currentValue", "CheckIcon"]
|
|
7
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/combobox/index.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon, ChevronsUpDownIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\n\ntype ComboboxItem = {\n value: string;\n label: string;\n description: string;\n};\n\nexport type { ComboboxItem };\n\nexport type ComboboxProps = {\n items: ComboboxItem[];\n placeholder?: string;\n emptyMessage?: string;\n searchable?: boolean;\n searchPlaceholder?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n onInputChange?: (value: string) => void;\n className?: string;\n popoverClassName?: string;\n trigger?: React.ReactNode;\n onAddOption?: (value: string) => void;\n addNewOption?: string;\n};\n\nexport function Combobox({\n items,\n placeholder = \"Select item...\",\n emptyMessage = \"No item found.\",\n searchable = false,\n searchPlaceholder = \"Search...\",\n value: controlledValue,\n onValueChange,\n onInputChange,\n className,\n popoverClassName,\n trigger,\n onAddOption,\n addNewOption,\n}: ComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState(\"\");\n const [searchValue, setSearchValue] = React.useState(\"\");\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internalValue;\n\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (isControlled) {\n onValueChange?.(newValue);\n } else {\n setInternalValue(newValue);\n }\n },\n [isControlled, onValueChange],\n );\n\n const handleSearchChange = React.useCallback(\n (newSearchValue: string) => {\n setSearchValue(newSearchValue);\n onInputChange?.(newSearchValue);\n },\n [onInputChange],\n );\n\n const handleAddNew = React.useCallback(() => {\n if (onAddOption) {\n onAddOption(\"\");\n setSearchValue(\"\");\n setOpen(false);\n }\n }, [onAddOption]);\n\n const showAddNew = Boolean(onAddOption && !!addNewOption);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n {trigger || (\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\"w-[300px] justify-between\", className)}\n >\n {value\n ? items.find((item) => item.value === value)?.label\n : placeholder}\n <ChevronsUpDownIcon className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n )}\n </PopoverTrigger>\n <PopoverContent className={cn(\"w-[300px] p-0\", popoverClassName)}>\n <Command>\n {searchable ? (\n <CommandInput\n placeholder={searchPlaceholder}\n onValueChange={handleSearchChange}\n value={searchValue}\n />\n ) : (\n <button autoFocus aria-hidden=\"true\" className=\"sr-only\" />\n )}\n <CommandList>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n <CommandGroup>\n {items.map((item) => {\n const selected = value === item.value;\n\n return (\n <CommandItem\n key={item.value}\n value={item.value}\n onSelect={(currentValue) => {\n handleValueChange(selected ? \"\" : currentValue);\n setOpen(false);\n }}\n className={cn(\"group flex items-center gap-3 p-3\", {\n \"[&_*]:!text-primary\": selected,\n })}\n >\n <CheckIcon\n className={cn(\n \"mt-0.5 h-4 w-4 shrink-0\",\n selected ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n <div className={cn(\"flex min-w-0 flex-1 flex-col gap-2\")}>\n <div className=\"text-sm leading-none\">{item.label}</div>\n <div className=\"text-sm leading-none text-muted-foreground\">\n {item.description}\n </div>\n </div>\n </CommandItem>\n );\n })}\n {showAddNew && (\n <CommandItem\n value={`__add_new_option`}\n onSelect={() => {\n // Prevent default value change behavior\n handleAddNew();\n }}\n className=\"flex items-center gap-3 p-3 text-primary\"\n >\n <div className=\"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border border-current text-xs font-bold\">\n +\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <div className=\"text-sm font-medium leading-none\">\n {addNewOption}\n </div>\n </div>\n </CommandItem>\n )}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "CheckIcon", "ChevronsUpDownIcon", "jsx", "jsxs", "Combobox", "items", "placeholder", "emptyMessage", "searchable", "searchPlaceholder", "controlledValue", "onValueChange", "onInputChange", "className", "popoverClassName", "trigger", "onAddOption", "addNewOption", "_a", "open", "setOpen", "internalValue", "setInternalValue", "searchValue", "setSearchValue", "isControlled", "value", "handleValueChange", "newValue", "handleSearchChange", "newSearchValue", "handleAddNew", "showAddNew", "Popover", "PopoverTrigger", "Button", "cn", "item", "ChevronsUpDownIcon", "PopoverContent", "Command", "CommandInput", "CommandList", "CommandEmpty", "CommandGroup", "selected", "CommandItem", "currentValue", "CheckIcon"]
|
|
7
|
+
}
|