@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.
Files changed (96) hide show
  1. package/README.md +31 -29
  2. package/dist/chunk-2R5NZUY2.js +2 -2
  3. package/dist/chunk-2R5NZUY2.js.map +7 -7
  4. package/dist/chunk-322C3AJR.js +2 -2
  5. package/dist/chunk-322C3AJR.js.map +7 -7
  6. package/dist/chunk-5AXWISGI.js +2 -2
  7. package/dist/chunk-5AXWISGI.js.map +7 -7
  8. package/dist/chunk-62LTWWXS.js +2 -2
  9. package/dist/chunk-62LTWWXS.js.map +7 -7
  10. package/dist/chunk-63IVPQSD.js +2 -2
  11. package/dist/chunk-63IVPQSD.js.map +7 -7
  12. package/dist/chunk-7H74R7P4.js +2 -2
  13. package/dist/chunk-7H74R7P4.js.map +7 -7
  14. package/dist/chunk-A4EVMSOO.js +2 -2
  15. package/dist/chunk-A4EVMSOO.js.map +7 -7
  16. package/dist/chunk-BF3VTYEM.js +2 -2
  17. package/dist/chunk-BF3VTYEM.js.map +7 -7
  18. package/dist/chunk-FUXRPZVU.js +2 -2
  19. package/dist/chunk-FUXRPZVU.js.map +7 -7
  20. package/dist/chunk-JVQR7SBQ.js +2 -2
  21. package/dist/chunk-JVQR7SBQ.js.map +7 -7
  22. package/dist/chunk-KGEITSDG.js +2 -2
  23. package/dist/chunk-KGEITSDG.js.map +7 -7
  24. package/dist/chunk-KR5A3H22.js +2 -2
  25. package/dist/chunk-KR5A3H22.js.map +7 -7
  26. package/dist/chunk-LUG5DIYB.js +2 -2
  27. package/dist/chunk-LUG5DIYB.js.map +7 -7
  28. package/dist/chunk-PRAYE34P.js +2 -2
  29. package/dist/chunk-PRAYE34P.js.map +7 -7
  30. package/dist/chunk-Q3PG3WWG.js +2 -2
  31. package/dist/chunk-Q3PG3WWG.js.map +7 -7
  32. package/dist/chunk-S2I5LIDP.js +2 -2
  33. package/dist/chunk-S2I5LIDP.js.map +7 -7
  34. package/dist/chunk-T73JL4BL.js +2 -2
  35. package/dist/chunk-T73JL4BL.js.map +7 -7
  36. package/dist/chunk-ZJVH3SNI.js +2 -2
  37. package/dist/chunk-ZJVH3SNI.js.map +7 -7
  38. package/dist/components/badge/index.js +1 -1
  39. package/dist/components/button/index.js +1 -1
  40. package/dist/components/calendar/index.js +1 -1
  41. package/dist/components/carousel/index.js +1 -1
  42. package/dist/components/combobox/index.js +1 -1
  43. package/dist/components/command/index.js +1 -1
  44. package/dist/components/confirm/index.js +1 -1
  45. package/dist/components/dialog/index.js +1 -1
  46. package/dist/components/dialog-responsive/index.js +1 -1
  47. package/dist/components/dropdown-menu-responsive/index.js +1 -1
  48. package/dist/components/input-group/index.js +1 -1
  49. package/dist/components/photo-lightbox/index.js +1 -1
  50. package/dist/components/photo-upload/index.js +1 -1
  51. package/dist/components/questionnaire/index.js +1 -1
  52. package/dist/components/slider/index.js +1 -1
  53. package/dist/components/tabs/index.js +1 -1
  54. package/dist/components/toggle/index.js +1 -1
  55. package/dist/components/toggle-group/index.js +1 -1
  56. package/dist/index.js +1 -1
  57. package/dist/output.css +1 -1
  58. package/dist/tailwind.preset.js.map +1 -1
  59. package/dist/variables.css +92 -92
  60. package/package.json +133 -133
  61. package/dist/chunk-2ZNU7SP6.js +0 -2
  62. package/dist/chunk-2ZNU7SP6.js.map +0 -7
  63. package/dist/chunk-C6BWVSUV.js +0 -2
  64. package/dist/chunk-C6BWVSUV.js.map +0 -7
  65. package/dist/chunk-EPZCTKQC.js +0 -2
  66. package/dist/chunk-EPZCTKQC.js.map +0 -7
  67. package/dist/chunk-EWEMD7AS.js +0 -2
  68. package/dist/chunk-EWEMD7AS.js.map +0 -7
  69. package/dist/chunk-F4MEBVNH.js +0 -2
  70. package/dist/chunk-F4MEBVNH.js.map +0 -7
  71. package/dist/chunk-HE3CSN3R.js +0 -2
  72. package/dist/chunk-HE3CSN3R.js.map +0 -7
  73. package/dist/chunk-JAPB4ZVX.js +0 -2
  74. package/dist/chunk-JAPB4ZVX.js.map +0 -7
  75. package/dist/chunk-KLHKZS2N.js +0 -2
  76. package/dist/chunk-KLHKZS2N.js.map +0 -7
  77. package/dist/chunk-LS37UWHK.js +0 -2
  78. package/dist/chunk-LS37UWHK.js.map +0 -7
  79. package/dist/chunk-N4JYYENQ.js +0 -2
  80. package/dist/chunk-N4JYYENQ.js.map +0 -7
  81. package/dist/chunk-NAS2AFA3.js +0 -2
  82. package/dist/chunk-NAS2AFA3.js.map +0 -7
  83. package/dist/chunk-OSONBAJY.js +0 -2
  84. package/dist/chunk-OSONBAJY.js.map +0 -7
  85. package/dist/chunk-PLDAFSMG.js +0 -2
  86. package/dist/chunk-PLDAFSMG.js.map +0 -7
  87. package/dist/chunk-U26IEDZT.js +0 -2
  88. package/dist/chunk-U26IEDZT.js.map +0 -7
  89. package/dist/chunk-UQUO6MUG.js +0 -2
  90. package/dist/chunk-UQUO6MUG.js.map +0 -7
  91. package/dist/chunk-V3VA2O5O.js +0 -2
  92. package/dist/chunk-V3VA2O5O.js.map +0 -7
  93. package/dist/chunk-YLCKVKJM.js +0 -2
  94. package/dist/chunk-YLCKVKJM.js.map +0 -7
  95. package/dist/chunk-Z2DKDZMC.js +0 -2
  96. package/dist/chunk-Z2DKDZMC.js.map +0 -7
@@ -1,2 +0,0 @@
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-JAPB4ZVX.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/button/index.tsx"],
4
- "sourcesContent": ["import * as React from \"react\";\r\nimport { Slot as SlotPrimitive } from \"radix-ui\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst buttonVariants = cva(\r\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\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\r\n destructive:\r\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\r\n outline:\r\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\r\n \"destructive-outline\":\r\n \"border border-input bg-background text-destructive shadow-sm hover:bg-destructive/5\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\r\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2\",\r\n sm: \"h-8 px-3 text-xs\",\r\n lg: \"h-10 px-8\",\r\n xl: \"h-14 px-8\",\r\n icon: \"h-9 w-9\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n },\r\n);\r\n\r\nexport type ButtonProps = {\r\n asChild?: boolean;\r\n} & React.ButtonHTMLAttributes<HTMLButtonElement> &\r\n VariantProps<typeof buttonVariants>;\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size, className }))}\r\n ref={ref}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nButton.displayName = \"Button\";\r\n\r\nexport { Button, buttonVariants };\r\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 +0,0 @@
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-KLHKZS2N.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/tabs/index.tsx"],
4
- "sourcesContent": ["import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Tabs = TabsPrimitive.Root;\r\n\r\nconst tabsListVariants = cva(\"text-muted-foreground\", {\r\n variants: {\r\n variant: {\r\n default:\r\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1\",\r\n underline:\r\n \"flex h-auto w-full items-center justify-start rounded-none border-b bg-transparent p-0\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n});\r\n\r\nconst tabsTriggerVariants = cva(\r\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\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"rounded-md px-3 py-1 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\r\n underline:\r\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\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n },\r\n);\r\n\r\n// Lets TabsList share its variant with every descendant TabsTrigger, so consumers\r\n// only set variant once on the list (mirrors ToggleGroup/ToggleGroupItem).\r\nconst TabsListContext = React.createContext<\r\n VariantProps<typeof tabsTriggerVariants>\r\n>({ variant: \"default\" });\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\r\n VariantProps<typeof tabsListVariants>\r\n>(({ className, variant, children, ...props }, ref) => (\r\n <TabsListContext.Provider value={{ variant }}>\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(tabsListVariants({ variant }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </TabsPrimitive.List>\r\n </TabsListContext.Provider>\r\n));\r\nTabsList.displayName = TabsPrimitive.List.displayName;\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> &\r\n VariantProps<typeof tabsTriggerVariants>\r\n>(({ className, variant, ...props }, ref) => {\r\n const context = React.useContext(TabsListContext);\r\n\r\n return (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n tabsTriggerVariants({ variant: variant ?? context.variant }),\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsContent.displayName = TabsPrimitive.Content.displayName;\r\n\r\nexport {\r\n Tabs,\r\n TabsList,\r\n TabsTrigger,\r\n TabsContent,\r\n tabsListVariants,\r\n tabsTriggerVariants,\r\n};\r\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 +0,0 @@
1
- import{a as y,b as k}from"./chunk-JAPB4ZVX.js";import{a as e}from"./chunk-WIFBPNRH.js";import{a as r,b as v,c as u}from"./chunk-WHECA25N.js";import*as p from"react";import{ChevronDownIcon as D,ChevronLeftIcon as N,ChevronRightIcon as R}from"lucide-react";import{DayPicker as B,getDefaultClassNames as C}from"react-day-picker";import{jsx as o}from"react/jsx-runtime";function q(b){var _=b,{className:f,classNames:h,showOutsideDays:a=!0,captionLayout:c="label",buttonVariant:w="ghost",formatters:i,components:x}=_,g=u(_,["className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components"]);let t=C();return o(B,r({showOutsideDays:a,className:e("bg-background group/calendar p-3 [--cell-width:auto] [--cell-height:36px] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,f),captionLayout:c,formatters:r({formatMonthDropdown:n=>n.toLocaleString("default",{month:"short"})},i),classNames:r({root:e("w-fit",t.root),months:e("relative flex flex-col gap-4 md:flex-row",t.months),month:e("flex w-full flex-col gap-4",t.month),nav:e("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",t.nav),button_previous:e(y({variant:w}),"h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50",t.button_previous),button_next:e(y({variant:w}),"h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50",t.button_next),month_caption:e("flex h-[--cell-height] w-full items-center justify-center px-[--cell-width]",t.month_caption),dropdowns:e("flex h-[--cell-height] w-full items-center justify-center gap-1.5 text-sm font-medium",t.dropdowns),dropdown_root:e("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",t.dropdown_root),dropdown:e("absolute inset-0 opacity-0",t.dropdown),caption_label:e("select-none font-medium",c==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",t.caption_label),table:"w-full border-collapse",weekdays:e("flex",t.weekdays),weekday:e("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",t.weekday),week:e("mt-2 flex w-full h-[--cell-height]",t.week),week_number_header:e("w-[--cell-width] select-none",t.week_number_header),week_number:e("text-muted-foreground select-none text-[0.8rem]",t.week_number),day:e("group/day relative aspect-square h-[--cell-height] w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",t.day),range_start:e("bg-accent rounded-l-md",t.range_start),range_middle:e("rounded-none",t.range_middle),range_end:e("bg-accent rounded-r-md",t.range_end),today:e("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",t.today),outside:e("text-muted-foreground aria-selected:text-muted-foreground",t.outside),disabled:e("text-muted-foreground opacity-50",t.disabled),hidden:e("invisible",t.hidden)},h),components:r({Root:m=>{var s=m,{className:n,rootRef:d}=s,l=u(s,["className","rootRef"]);return o("div",r({"data-slot":"calendar",ref:d,className:e(n)},l))},Chevron:m=>{var s=m,{className:n,orientation:d}=s,l=u(s,["className","orientation"]);return d==="left"?o(N,r({className:e("size-4",n)},l)):d==="right"?o(R,r({className:e("size-4",n)},l)):o(D,r({className:e("size-4",n)},l))},DayButton:z,WeekNumber:l=>{var m=l,{children:n}=m,d=u(m,["children"]);return o("td",v(r({},d),{children:o("div",{className:"flex w-[--cell-width] h-[--cell-height] items-center justify-center text-center",children:n})}))}},x)},g))}function z(w){var i=w,{className:f,day:h,modifiers:a}=i,c=u(i,["className","day","modifiers"]);let x=C(),g=p.useRef(null);return p.useEffect(()=>{var b;a.focused&&((b=g.current)==null||b.focus())},[a.focused]),o(k,r({ref:g,variant:"ghost",size:"icon","data-day":h.date.toLocaleDateString(),"data-selected-single":a.selected&&!a.range_start&&!a.range_end&&!a.range_middle,"data-range-start":a.range_start,"data-range-end":a.range_end,"data-range-middle":a.range_middle,className:e("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-primary data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-[--cell-height] w-full min-w-[--cell-width] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",x.day,f)},c))}export{q as a,z as b};
2
- //# sourceMappingURL=chunk-LS37UWHK.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/calendar/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react'\r\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\r\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker'\r\n\r\nimport { cn } from '@/lib/utils'\r\nimport { Button, buttonVariants } from '@/components/button'\r\n\r\nfunction Calendar({\r\n className,\r\n classNames,\r\n showOutsideDays = true,\r\n captionLayout = 'label',\r\n buttonVariant = 'ghost',\r\n formatters,\r\n components,\r\n ...props\r\n}: React.ComponentProps<typeof DayPicker> & {\r\n buttonVariant?: React.ComponentProps<typeof Button>['variant']\r\n}) {\r\n const defaultClassNames = getDefaultClassNames()\r\n\r\n return (\r\n <DayPicker\r\n showOutsideDays={showOutsideDays}\r\n className={cn(\r\n 'bg-background group/calendar p-3 [--cell-width:auto] [--cell-height:36px] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\r\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\r\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\r\n className,\r\n )}\r\n captionLayout={captionLayout}\r\n formatters={{\r\n formatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\r\n ...formatters,\r\n }}\r\n classNames={{\r\n root: cn('w-fit', defaultClassNames.root),\r\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\r\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\r\n nav: cn(\r\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\r\n defaultClassNames.nav,\r\n ),\r\n button_previous: cn(\r\n buttonVariants({ variant: buttonVariant }),\r\n 'h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50',\r\n defaultClassNames.button_previous,\r\n ),\r\n button_next: cn(\r\n buttonVariants({ variant: buttonVariant }),\r\n 'h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50',\r\n defaultClassNames.button_next,\r\n ),\r\n month_caption: cn(\r\n 'flex h-[--cell-height] w-full items-center justify-center px-[--cell-width]',\r\n defaultClassNames.month_caption,\r\n ),\r\n dropdowns: cn(\r\n 'flex h-[--cell-height] w-full items-center justify-center gap-1.5 text-sm font-medium',\r\n defaultClassNames.dropdowns,\r\n ),\r\n dropdown_root: cn(\r\n 'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\r\n defaultClassNames.dropdown_root,\r\n ),\r\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\r\n caption_label: cn(\r\n 'select-none font-medium',\r\n captionLayout === 'label'\r\n ? 'text-sm'\r\n : '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\r\n defaultClassNames.caption_label,\r\n ),\r\n table: 'w-full border-collapse',\r\n weekdays: cn('flex', defaultClassNames.weekdays),\r\n weekday: cn(\r\n 'text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal',\r\n defaultClassNames.weekday,\r\n ),\r\n week: cn('mt-2 flex w-full h-[--cell-height]', defaultClassNames.week),\r\n week_number_header: cn(\r\n 'w-[--cell-width] select-none',\r\n defaultClassNames.week_number_header,\r\n ),\r\n week_number: cn(\r\n 'text-muted-foreground select-none text-[0.8rem]',\r\n defaultClassNames.week_number,\r\n ),\r\n day: cn(\r\n 'group/day relative aspect-square h-[--cell-height] w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\r\n defaultClassNames.day,\r\n ),\r\n range_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\r\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\r\n range_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\r\n today: cn(\r\n 'bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none',\r\n defaultClassNames.today,\r\n ),\r\n outside: cn(\r\n 'text-muted-foreground aria-selected:text-muted-foreground',\r\n defaultClassNames.outside,\r\n ),\r\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\r\n hidden: cn('invisible', defaultClassNames.hidden),\r\n ...classNames,\r\n }}\r\n components={{\r\n Root: ({ className, rootRef, ...props }) => {\r\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\r\n },\r\n Chevron: ({ className, orientation, ...props }) => {\r\n if (orientation === 'left') {\r\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />\r\n }\r\n\r\n if (orientation === 'right') {\r\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />\r\n }\r\n\r\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />\r\n },\r\n DayButton: CalendarDayButton,\r\n WeekNumber: ({ children, ...props }) => {\r\n return (\r\n <td {...props}>\r\n <div className=\"flex w-[--cell-width] h-[--cell-height] items-center justify-center text-center\">\r\n {children}\r\n </div>\r\n </td>\r\n )\r\n },\r\n ...components,\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction CalendarDayButton({\r\n className,\r\n day,\r\n modifiers,\r\n ...props\r\n}: React.ComponentProps<typeof DayButton>) {\r\n const defaultClassNames = getDefaultClassNames()\r\n\r\n const ref = React.useRef<HTMLButtonElement>(null)\r\n React.useEffect(() => {\r\n if (modifiers.focused) ref.current?.focus()\r\n }, [modifiers.focused])\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n data-day={day.date.toLocaleDateString()}\r\n data-selected-single={\r\n modifiers.selected &&\r\n !modifiers.range_start &&\r\n !modifiers.range_end &&\r\n !modifiers.range_middle\r\n }\r\n data-range-start={modifiers.range_start}\r\n data-range-end={modifiers.range_end}\r\n data-range-middle={modifiers.range_middle}\r\n className={cn(\r\n 'data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-primary data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-[--cell-height] w-full min-w-[--cell-width] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\r\n defaultClassNames.day,\r\n className,\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Calendar, CalendarDayButton }\r\n"],
5
- "mappings": "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",
6
- "names": ["React", "ChevronDownIcon", "ChevronLeftIcon", "ChevronRightIcon", "DayPicker", "getDefaultClassNames", "jsx", "Calendar", "_a", "_b", "className", "classNames", "showOutsideDays", "captionLayout", "buttonVariant", "formatters", "components", "props", "__objRest", "defaultClassNames", "getDefaultClassNames", "DayPicker", "__spreadValues", "cn", "date", "buttonVariants", "rootRef", "_c", "_d", "orientation", "ChevronLeftIcon", "ChevronRightIcon", "ChevronDownIcon", "CalendarDayButton", "_e", "_f", "children", "__spreadProps", "day", "modifiers", "ref", "Button"]
7
- }
@@ -1,2 +0,0 @@
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-N4JYYENQ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/badge/index.tsx"],
4
- "sourcesContent": ["import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst badgeVariants = cva(\r\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\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\r\n secondary:\r\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n destructive:\r\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\r\n highlight:\r\n \"border-transparent bg-highlight text-highlight-foreground shadow hover:bg-highlight/80\",\r\n outline: \"text-foreground\",\r\n \"brand-silent\":\r\n \"border-transparent bg-surface-color-brand-silent font-medium tracking-[0.015em] text-content-brand\",\r\n },\r\n size: {\r\n default: \"\",\r\n chip: \"h-5 min-w-5 justify-center rounded-full px-0 py-0 tabular-nums\",\r\n pill: \"h-5 min-w-5 justify-center rounded-full px-1.5 py-0.5 text-[11px] leading-[14px]\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n },\r\n);\r\n\r\nexport type BadgeProps = {} & React.HTMLAttributes<HTMLDivElement> &\r\n VariantProps<typeof badgeVariants>;\r\n\r\nfunction Badge({ className, variant, size, ...props }: BadgeProps) {\r\n return (\r\n <div\r\n className={cn(badgeVariants({ variant, size }), className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Badge, badgeVariants };\r\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 +0,0 @@
1
- import{a as f,f as l}from"./chunk-HE3CSN3R.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-NAS2AFA3.js.map
@@ -1,7 +0,0 @@
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 +0,0 @@
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-OSONBAJY.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/photo-upload/index.tsx"],
4
- "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { ArrowUpIcon, XIcon } from \"lucide-react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Spinner } from \"@/components/spinner\";\r\n\r\nexport type PhotoUploadFile = {\r\n id: string;\r\n name: string;\r\n previewUrl?: string;\r\n status: \"uploading\" | \"uploaded\" | \"error\";\r\n error?: string;\r\n};\r\n\r\nexport type PhotoUploadRejectReason = \"max-files\" | \"max-size\" | \"type\";\r\n\r\nexport type PhotoUploadProps = Omit<React.ComponentProps<\"div\">, \"onError\"> & {\r\n files: PhotoUploadFile[];\r\n onAdd: (files: File[]) => void;\r\n onRemove: (id: string) => void;\r\n onReject?: (file: File, reason: PhotoUploadRejectReason) => void;\r\n accept?: string;\r\n maxFiles?: number;\r\n maxSizeBytes?: number;\r\n disabled?: boolean;\r\n label?: React.ReactNode;\r\n hint?: React.ReactNode;\r\n uploadedLabel?: string;\r\n};\r\n\r\nfunction matchesAccept(file: File, accept: string) {\r\n return accept\r\n .split(\",\")\r\n .map((type) => type.trim().toLowerCase())\r\n .some((type) => {\r\n if (type.startsWith(\".\")) return file.name.toLowerCase().endsWith(type);\r\n if (type.endsWith(\"/*\")) return file.type.startsWith(type.slice(0, -1));\r\n return file.type === type;\r\n });\r\n}\r\n\r\n/**\r\n * Dropzone and file list for photos. The consumer owns the upload and each file's status.\r\n * @param props.files - files already added, with their upload status\r\n * @param props.onAdd - called with the files that passed validation\r\n * @param props.onRemove - called with the id of the file to remove\r\n * @param props.onReject - called for each file that failed validation\r\n */\r\nfunction PhotoUpload({\r\n className,\r\n files,\r\n onAdd,\r\n onRemove,\r\n onReject,\r\n accept = \"image/jpeg,image/png\",\r\n maxFiles,\r\n maxSizeBytes,\r\n disabled,\r\n label = \"Choose files or drag them here\",\r\n hint = \"JPG or PNG \u00B7 10MB per file\",\r\n uploadedLabel = \"Uploaded\",\r\n ...props\r\n}: PhotoUploadProps) {\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const [dragging, setDragging] = React.useState(false);\r\n const full = maxFiles !== undefined && files.length >= maxFiles;\r\n const inactive = disabled || full;\r\n\r\n const addFiles = (incoming: File[]) => {\r\n const accepted: File[] = [];\r\n let slots =\r\n maxFiles === undefined ? Infinity : Math.max(maxFiles - files.length, 0);\r\n\r\n for (const file of incoming) {\r\n if (!matchesAccept(file, accept)) {\r\n onReject?.(file, \"type\");\r\n } else if (maxSizeBytes !== undefined && file.size > maxSizeBytes) {\r\n onReject?.(file, \"max-size\");\r\n } else if (slots <= 0) {\r\n onReject?.(file, \"max-files\");\r\n } else {\r\n accepted.push(file);\r\n slots -= 1;\r\n }\r\n }\r\n\r\n if (accepted.length) onAdd(accepted);\r\n };\r\n\r\n const handleDrop = (event: React.DragEvent<HTMLButtonElement>) => {\r\n event.preventDefault();\r\n setDragging(false);\r\n if (inactive) return;\r\n addFiles(Array.from(event.dataTransfer.files));\r\n };\r\n\r\n return (\r\n <div\r\n data-slot=\"photo-upload\"\r\n className={cn(\"flex w-full flex-col gap-3\", className)}\r\n {...props}\r\n >\r\n <button\r\n type=\"button\"\r\n disabled={inactive}\r\n onClick={() => inputRef.current?.click()}\r\n onDragOver={(event) => {\r\n event.preventDefault();\r\n if (!inactive) setDragging(true);\r\n }}\r\n onDragLeave={() => setDragging(false)}\r\n onDrop={handleDrop}\r\n data-dragging={dragging ? \"\" : undefined}\r\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\"\r\n >\r\n <span className=\"flex size-11 items-center justify-center rounded-full border border-muted-foreground text-muted-foreground\">\r\n <ArrowUpIcon className=\"size-5\" aria-hidden=\"true\" />\r\n </span>\r\n <span className=\"text-sm font-medium text-foreground\">{label}</span>\r\n <span className=\"text-xs font-medium text-muted-foreground\">\r\n {hint}\r\n </span>\r\n </button>\r\n <input\r\n ref={inputRef}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={maxFiles !== 1}\r\n className=\"hidden\"\r\n tabIndex={-1}\r\n aria-hidden=\"true\"\r\n onChange={(event) => {\r\n addFiles(Array.from(event.target.files ?? []));\r\n event.target.value = \"\";\r\n }}\r\n />\r\n {files.length > 0 && (\r\n <ul className=\"flex flex-col gap-3\">\r\n {files.map((file) => (\r\n <li\r\n key={file.id}\r\n data-status={file.status}\r\n className=\"flex items-center gap-2 rounded-md border border-foreground/15 bg-background px-3 py-2.5\"\r\n >\r\n {file.previewUrl ? (\r\n <img\r\n src={file.previewUrl}\r\n alt=\"\"\r\n className=\"size-7 shrink-0 rounded-[6px] border border-foreground/15 object-cover\"\r\n />\r\n ) : (\r\n <span className=\"size-7 shrink-0 rounded-[6px] border border-foreground/15 bg-muted\" />\r\n )}\r\n <span className=\"min-w-0 flex-1 truncate text-sm text-foreground\">\r\n {file.name}\r\n </span>\r\n {file.status === \"uploading\" && (\r\n <Spinner className=\"size-4 text-muted-foreground\" />\r\n )}\r\n {file.status === \"uploaded\" && (\r\n <span className=\"text-xs font-medium text-content-brand\">\r\n {uploadedLabel}\r\n </span>\r\n )}\r\n {file.status === \"error\" && (\r\n <span className=\"text-xs font-medium text-destructive\">\r\n {file.error ?? \"Upload failed\"}\r\n </span>\r\n )}\r\n <button\r\n type=\"button\"\r\n disabled={disabled}\r\n onClick={() => onRemove(file.id)}\r\n aria-label={`Remove ${file.name}`}\r\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\"\r\n >\r\n <XIcon className=\"size-4\" />\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport { PhotoUpload };\r\n"],
5
- "mappings": "sIAEA,UAAYA,MAAW,QACvB,OAAS,eAAAC,EAAa,SAAAC,MAAa,eAqG7B,OAcI,OAAAC,EAdJ,QAAAC,MAAA,oBAxEN,SAASC,EAAcC,EAAYC,EAAgB,CACjD,OAAOA,EACJ,MAAM,GAAG,EACT,IAAKC,GAASA,EAAK,KAAK,EAAE,YAAY,CAAC,EACvC,KAAMA,GACDA,EAAK,WAAW,GAAG,EAAUF,EAAK,KAAK,YAAY,EAAE,SAASE,CAAI,EAClEA,EAAK,SAAS,IAAI,EAAUF,EAAK,KAAK,WAAWE,EAAK,MAAM,EAAG,EAAE,CAAC,EAC/DF,EAAK,OAASE,CACtB,CACL,CASA,SAASC,EAAYC,EAcA,CAdA,IAAAC,EAAAD,EACnB,WAAAE,EACA,MAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,OAAAT,EAAS,uBACT,SAAAU,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EAAQ,iCACR,KAAAC,EAAO,gCACP,cAAAC,EAAgB,UA9DlB,EAkDqBX,EAahBY,EAAAC,EAbgBb,EAahB,CAZH,YACA,QACA,QACA,WACA,WACA,SACA,WACA,eACA,WACA,QACA,OACA,kBAGA,IAAMc,EAAiB,SAAyB,IAAI,EAC9C,CAACC,EAAUC,CAAW,EAAU,WAAS,EAAK,EAC9CC,EAAOX,IAAa,QAAaJ,EAAM,QAAUI,EACjDY,EAAWV,GAAYS,EAEvBE,EAAYC,GAAqB,CACrC,IAAMC,EAAmB,CAAC,EACtBC,EACFhB,IAAa,OAAY,IAAW,KAAK,IAAIA,EAAWJ,EAAM,OAAQ,CAAC,EAEzE,QAAWP,KAAQyB,EACZ1B,EAAcC,EAAMC,CAAM,EAEpBW,IAAiB,QAAaZ,EAAK,KAAOY,EACnDF,GAAA,MAAAA,EAAWV,EAAM,YACR2B,GAAS,EAClBjB,GAAA,MAAAA,EAAWV,EAAM,cAEjB0B,EAAS,KAAK1B,CAAI,EAClB2B,GAAS,GAPTjB,GAAA,MAAAA,EAAWV,EAAM,QAWjB0B,EAAS,QAAQlB,EAAMkB,CAAQ,CACrC,EAEME,EAAcC,GAA8C,CAChEA,EAAM,eAAe,EACrBR,EAAY,EAAK,EACb,CAAAE,GACJC,EAAS,MAAM,KAAKK,EAAM,aAAa,KAAK,CAAC,CAC/C,EAEA,OACE/B,EAAC,MAAAgC,EAAAC,EAAA,CACC,YAAU,eACV,UAAWC,EAAG,6BAA8B1B,CAAS,GACjDW,GAHL,CAKC,UAAAnB,EAAC,UACC,KAAK,SACL,SAAUyB,EACV,QAAS,IAAG,CA3GpB,IAAAnB,EA2GuB,OAAAA,EAAAe,EAAS,UAAT,YAAAf,EAAkB,SACjC,WAAayB,GAAU,CACrBA,EAAM,eAAe,EAChBN,GAAUF,EAAY,EAAI,CACjC,EACA,YAAa,IAAMA,EAAY,EAAK,EACpC,OAAQO,EACR,gBAAeR,EAAW,GAAK,OAC/B,UAAU,gYAEV,UAAAvB,EAAC,QAAK,UAAU,6GACd,SAAAA,EAACoC,EAAA,CAAY,UAAU,SAAS,cAAY,OAAO,EACrD,EACApC,EAAC,QAAK,UAAU,sCAAuC,SAAAiB,EAAM,EAC7DjB,EAAC,QAAK,UAAU,4CACb,SAAAkB,EACH,GACF,EACAlB,EAAC,SACC,IAAKsB,EACL,KAAK,OACL,OAAQlB,EACR,SAAUU,IAAa,EACvB,UAAU,SACV,SAAU,GACV,cAAY,OACZ,SAAWkB,GAAU,CArI7B,IAAAzB,EAsIUoB,EAAS,MAAM,MAAKpB,EAAAyB,EAAM,OAAO,QAAb,KAAAzB,EAAsB,CAAC,CAAC,CAAC,EAC7CyB,EAAM,OAAO,MAAQ,EACvB,EACF,EACCtB,EAAM,OAAS,GACdV,EAAC,MAAG,UAAU,sBACX,SAAAU,EAAM,IAAKP,GAAM,CA5I5B,IAAAI,EA6IY,OAAAN,EAAC,MAEC,cAAaE,EAAK,OAClB,UAAU,2FAET,UAAAA,EAAK,WACJH,EAAC,OACC,IAAKG,EAAK,WACV,IAAI,GACJ,UAAU,yEACZ,EAEAH,EAAC,QAAK,UAAU,qEAAqE,EAEvFA,EAAC,QAAK,UAAU,kDACb,SAAAG,EAAK,KACR,EACCA,EAAK,SAAW,aACfH,EAACqC,EAAA,CAAQ,UAAU,+BAA+B,EAEnDlC,EAAK,SAAW,YACfH,EAAC,QAAK,UAAU,yCACb,SAAAmB,EACH,EAEDhB,EAAK,SAAW,SACfH,EAAC,QAAK,UAAU,uCACb,UAAAO,EAAAJ,EAAK,QAAL,KAAAI,EAAc,gBACjB,EAEFP,EAAC,UACC,KAAK,SACL,SAAUgB,EACV,QAAS,IAAMJ,EAAST,EAAK,EAAE,EAC/B,aAAY,UAAUA,EAAK,IAAI,GAC/B,UAAU,wLAEV,SAAAH,EAACsC,EAAA,CAAM,UAAU,SAAS,EAC5B,IArCKnC,EAAK,EAsCZ,EACD,EACH,IAEJ,CAEJ",
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 +0,0 @@
1
- import{b}from"./chunk-JAPB4ZVX.js";import{a as f}from"./chunk-WIFBPNRH.js";import{a as u,b as v,c as C}from"./chunk-WHECA25N.js";import*as t from"react";import g from"embla-carousel-react";import{ChevronLeft as V,ChevronRight as D}from"lucide-react";import{cva as T}from"class-variance-authority";import{jsx as i,jsxs as E}from"react/jsx-runtime";var h=t.createContext(null);function y(){let r=t.useContext(h);if(!r)throw new Error("useCarousel must be used within a <Carousel />");return r}function L(P){var p=P,{orientation:r="horizontal",opts:a,setApi:s,plugins:l,className:n,children:m}=p,c=C(p,["orientation","opts","setApi","plugins","className","children"]);let[d,e]=g(v(u({},a),{axis:r==="horizontal"?"x":"y"}),l),N=t.useCallback(o=>e?(e.on("reInit",o),e.on("select",o),()=>{e.off("reInit",o),e.off("select",o)}):()=>{},[e]),k=t.useSyncExternalStore(N,()=>{var o;return(o=e==null?void 0:e.canScrollPrev())!=null?o:!1},()=>!1),w=t.useSyncExternalStore(N,()=>{var o;return(o=e==null?void 0:e.canScrollNext())!=null?o:!1},()=>!1),x=t.useCallback(()=>{e==null||e.scrollPrev()},[e]),R=t.useCallback(()=>{e==null||e.scrollNext()},[e]),S=t.useCallback(o=>{o.key==="ArrowLeft"?(o.preventDefault(),x()):o.key==="ArrowRight"&&(o.preventDefault(),R())},[x,R]);return t.useEffect(()=>{!e||!s||s(e)},[e,s]),i(h.Provider,{value:{carouselRef:d,api:e,opts:a,orientation:r||((a==null?void 0:a.axis)==="y"?"vertical":"horizontal"),scrollPrev:x,scrollNext:R,canScrollPrev:k,canScrollNext:w},children:i("div",v(u({onKeyDownCapture:S,className:f("relative",n),role:"region","aria-roledescription":"carousel","data-slot":"carousel"},c),{children:m}))})}function O(s){var l=s,{className:r}=l,a=C(l,["className"]);let{carouselRef:n,orientation:m}=y();return i("div",{ref:n,className:"overflow-hidden","data-slot":"carousel-content",children:i("div",u({className:f("flex",m==="horizontal"?"-ml-4":"-mt-4 flex-col",r)},a))})}function H(s){var l=s,{className:r}=l,a=C(l,["className"]);let{orientation:n}=y();return i("div",u({role:"group","aria-roledescription":"slide","data-slot":"carousel-item",className:f("min-w-0 shrink-0 grow-0 basis-full",n==="horizontal"?"pl-4":"pt-4",r)},a))}var z=T("size-9 rounded-full",{variants:{placement:{inset:"absolute",inline:"relative"},orientation:{horizontal:"",vertical:""},side:{prev:"",next:""}},compoundVariants:[{placement:"inset",orientation:"horizontal",side:"prev",class:"-left-12 top-1/2 -translate-y-1/2"},{placement:"inset",orientation:"horizontal",side:"next",class:"-right-12 top-1/2 -translate-y-1/2"},{placement:"inset",orientation:"vertical",side:"prev",class:"-top-12 left-1/2 -translate-x-1/2 rotate-90"},{placement:"inset",orientation:"vertical",side:"next",class:"-bottom-12 left-1/2 -translate-x-1/2 rotate-90"}],defaultVariants:{placement:"inset",orientation:"horizontal",side:"prev"}});function M(m){var c=m,{className:r,variant:a="outline",size:s="icon",placement:l="inset"}=c,n=C(c,["className","variant","size","placement"]);let{orientation:P,scrollPrev:p,canScrollPrev:d}=y();return E(b,v(u({"data-slot":"carousel-previous",variant:a,size:s,className:f(z({placement:l,orientation:P,side:"prev"}),r),disabled:!d,onClick:p},n),{children:[i(V,{}),i("span",{className:"sr-only",children:"Previous slide"})]}))}function q(m){var c=m,{className:r,variant:a="outline",size:s="icon",placement:l="inset"}=c,n=C(c,["className","variant","size","placement"]);let{orientation:P,scrollNext:p,canScrollNext:d}=y();return E(b,v(u({"data-slot":"carousel-next",variant:a,size:s,className:f(z({placement:l,orientation:P,side:"next"}),r),disabled:!d,onClick:p},n),{children:[i(D,{}),i("span",{className:"sr-only",children:"Next slide"})]}))}export{L as a,O as b,H as c,z as d,M as e,q as f};
2
- //# sourceMappingURL=chunk-PLDAFSMG.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/carousel/index.tsx"],
4
- "sourcesContent": ["import * as React from \"react\";\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from \"embla-carousel-react\";\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Button } from \"@/components/button\";\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1];\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\r\ntype CarouselOptions = UseCarouselParameters[0];\r\ntype CarouselPlugin = UseCarouselParameters[1];\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions;\r\n plugins?: CarouselPlugin;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n setApi?: (api: CarouselApi) => void;\r\n};\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\r\n api: ReturnType<typeof useEmblaCarousel>[1];\r\n scrollPrev: () => void;\r\n scrollNext: () => void;\r\n canScrollPrev: boolean;\r\n canScrollNext: boolean;\r\n} & CarouselProps;\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useCarousel must be used within a <Carousel />\");\r\n }\r\n\r\n return context;\r\n}\r\n\r\nfunction Carousel({\r\n orientation = \"horizontal\",\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<\"div\"> & CarouselProps) {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\r\n },\r\n plugins,\r\n );\r\n /**\r\n * Deviates from upstream shadcn, which mirrors Embla's scroll state into `useState` from an\r\n * effect \u2014 `react-hooks/set-state-in-effect` rejects that, and the initial read has to happen\r\n * synchronously or both arrows render disabled until the first `select`. Embla already is an\r\n * external store: `on`/`off` is the subscription and `canScroll*()` is the snapshot.\r\n */\r\n const subscribe = React.useCallback(\r\n (onStoreChange: () => void) => {\r\n if (!api) return () => undefined;\r\n api.on(\"reInit\", onStoreChange);\r\n api.on(\"select\", onStoreChange);\r\n\r\n return () => {\r\n api.off(\"reInit\", onStoreChange);\r\n api.off(\"select\", onStoreChange);\r\n };\r\n },\r\n [api],\r\n );\r\n\r\n const canScrollPrev = React.useSyncExternalStore(\r\n subscribe,\r\n () => api?.canScrollPrev() ?? false,\r\n () => false,\r\n );\r\n\r\n const canScrollNext = React.useSyncExternalStore(\r\n subscribe,\r\n () => api?.canScrollNext() ?? false,\r\n () => false,\r\n );\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev();\r\n }, [api]);\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext();\r\n }, [api]);\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n scrollPrev();\r\n } else if (event.key === \"ArrowRight\") {\r\n event.preventDefault();\r\n scrollNext();\r\n }\r\n },\r\n [scrollPrev, scrollNext],\r\n );\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return;\r\n setApi(api);\r\n }, [api, setApi]);\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn(\"relative\", className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n data-slot=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n );\r\n}\r\n\r\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { carouselRef, orientation } = useCarousel();\r\n\r\n return (\r\n <div\r\n ref={carouselRef}\r\n className=\"overflow-hidden\"\r\n data-slot=\"carousel-content\"\r\n >\r\n <div\r\n className={cn(\r\n \"flex\",\r\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { orientation } = useCarousel();\r\n\r\n return (\r\n <div\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n data-slot=\"carousel-item\"\r\n className={cn(\r\n \"min-w-0 shrink-0 grow-0 basis-full\",\r\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\n/**\r\n * LawnGuru addition to the upstream shadcn component \u2014 re-pulling `shadcn add carousel` will\r\n * drop it. `inset` is the upstream behaviour: the control floats outside the track's edge, which\r\n * only works when the carousel owns the surrounding space. `inline` takes the control out of\r\n * absolute positioning so it can be placed in a section header, toolbar, or any custom slot.\r\n */\r\nconst carouselControlVariants = cva(\"size-9 rounded-full\", {\r\n variants: {\r\n placement: {\r\n inset: \"absolute\",\r\n inline: \"relative\",\r\n },\r\n orientation: {\r\n horizontal: \"\",\r\n vertical: \"\",\r\n },\r\n side: {\r\n prev: \"\",\r\n next: \"\",\r\n },\r\n },\r\n compoundVariants: [\r\n {\r\n placement: \"inset\",\r\n orientation: \"horizontal\",\r\n side: \"prev\",\r\n class: \"-left-12 top-1/2 -translate-y-1/2\",\r\n },\r\n {\r\n placement: \"inset\",\r\n orientation: \"horizontal\",\r\n side: \"next\",\r\n class: \"-right-12 top-1/2 -translate-y-1/2\",\r\n },\r\n {\r\n placement: \"inset\",\r\n orientation: \"vertical\",\r\n side: \"prev\",\r\n class: \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n },\r\n {\r\n placement: \"inset\",\r\n orientation: \"vertical\",\r\n side: \"next\",\r\n class: \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n },\r\n ],\r\n defaultVariants: {\r\n placement: \"inset\",\r\n orientation: \"horizontal\",\r\n side: \"prev\",\r\n },\r\n});\r\n\r\ntype CarouselControlProps = React.ComponentProps<typeof Button> &\r\n Pick<VariantProps<typeof carouselControlVariants>, \"placement\">;\r\n\r\nfunction CarouselPrevious({\r\n className,\r\n variant = \"outline\",\r\n size = \"icon\",\r\n placement = \"inset\",\r\n ...props\r\n}: CarouselControlProps) {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\r\n\r\n return (\r\n <Button\r\n data-slot=\"carousel-previous\"\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n carouselControlVariants({ placement, orientation, side: \"prev\" }),\r\n className,\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ChevronLeft />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n );\r\n}\r\n\r\nfunction CarouselNext({\r\n className,\r\n variant = \"outline\",\r\n size = \"icon\",\r\n placement = \"inset\",\r\n ...props\r\n}: CarouselControlProps) {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel();\r\n\r\n return (\r\n <Button\r\n data-slot=\"carousel-next\"\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n carouselControlVariants({ placement, orientation, side: \"next\" }),\r\n className,\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ChevronRight />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n );\r\n}\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n carouselControlVariants,\r\n};\r\n"],
5
- "mappings": "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",
6
- "names": ["React", "useEmblaCarousel", "ChevronLeft", "ChevronRight", "cva", "jsx", "jsxs", "CarouselContext", "useCarousel", "context", "Carousel", "_a", "_b", "orientation", "opts", "setApi", "plugins", "className", "children", "props", "__objRest", "carouselRef", "api", "useEmblaCarousel", "__spreadProps", "__spreadValues", "subscribe", "onStoreChange", "canScrollPrev", "canScrollNext", "scrollPrev", "scrollNext", "handleKeyDown", "event", "cn", "CarouselContent", "CarouselItem", "carouselControlVariants", "cva", "CarouselPrevious", "variant", "size", "placement", "Button", "ChevronLeft", "CarouselNext", "ChevronRight"]
7
- }
@@ -1,2 +0,0 @@
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-U26IEDZT.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/toggle/index.tsx"],
4
- "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst toggleVariants = cva(\r\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\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-transparent\",\r\n outline: \"border border-input bg-transparent hover:bg-muted\",\r\n },\r\n size: {\r\n default:\r\n \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\r\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\",\r\n lg: \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n },\r\n);\r\n\r\nfunction Toggle({\r\n className,\r\n variant = \"default\",\r\n size = \"default\",\r\n ...props\r\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\r\n VariantProps<typeof toggleVariants>) {\r\n return (\r\n <TogglePrimitive.Root\r\n data-slot=\"toggle\"\r\n className={cn(toggleVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Toggle, toggleVariants };\r\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 +0,0 @@
1
- import{a as y,b as N,d as x,g as H,h as P,i as b,j as E,k as M,l as F}from"./chunk-7EVFMYIH.js";import{a as u,b as C,d as f,f as v,g as d,h as T,i as w,j as h}from"./chunk-HE3CSN3R.js";import{a as L}from"./chunk-46MFR2CI.js";import{a as g}from"./chunk-WIFBPNRH.js";import{a as p,b as m,c}from"./chunk-WHECA25N.js";import*as n from"react";import{jsx as r}from"react/jsx-runtime";var D=n.createContext({isTouch:!1}),l=()=>n.useContext(D),Q=({children:o,open:t,onOpenChange:s})=>{let a=L(),e=n.useMemo(()=>({isTouch:a}),[a]);return a?r(D.Provider,{value:e,children:r(y,{open:t,onOpenChange:s,children:r(F,{children:o})})},"touch"):r(D.Provider,{value:e,children:r(u,{open:t,onOpenChange:s,children:o})},"desktop")},A=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?N:C,p({ref:s,className:o},t))});A.displayName="DialogResponsiveTrigger";var W=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?x:f,p({ref:s,className:o},t))});W.displayName="DialogResponsiveClose";var k=n.forwardRef((e,a)=>{var i=e,{className:o,children:t}=i,s=c(i,["className","children"]);let{isTouch:R}=l();return r(R?H:v,m(p({ref:a,className:o},s),{children:t}))});k.displayName="DialogResponsiveContent";var V=s=>{var a=s,{className:o}=a,t=c(a,["className"]);let{isTouch:e}=l();return r(e?P:d,p({className:o},t))};V.displayName="DialogResponsiveHeader";var B=s=>{var a=s,{className:o}=a,t=c(a,["className"]);let{isTouch:e}=l();return r(e?b:T,p({className:g("grid grid-cols-1 gap-2 px-4 pb-safe pt-1",o)},t))};B.displayName="DialogResponsiveFooter";var K=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?E:w,p({ref:s,className:o},t))});K.displayName="DialogResponsiveTitle";var O=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?M:h,p({ref:s,className:o},t))});O.displayName="DialogResponsiveDescription";export{l as a,Q as b,A as c,W as d,k as e,V as f,B as g,K as h,O as i};
2
- //# sourceMappingURL=chunk-UQUO6MUG.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/dialog-responsive/index.tsx"],
4
- "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n DialogTrigger,\r\n} from \"@/components/dialog\";\r\nimport {\r\n Drawer,\r\n DrawerClose,\r\n DrawerContent,\r\n DrawerDescription,\r\n DrawerFooter,\r\n DrawerHeader,\r\n DrawerTitle,\r\n DrawerTrigger,\r\n DrawerVirtualKeyboardProvider,\r\n} from \"@/components/drawer\";\r\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\r\n\r\ntype DialogResponsiveContextType = {\r\n isTouch: boolean;\r\n};\r\n\r\nconst DialogResponsiveContext =\r\n React.createContext<DialogResponsiveContextType>({\r\n isTouch: false,\r\n });\r\n\r\nconst useDialogResponsive = () => React.useContext(DialogResponsiveContext);\r\n\r\ntype DialogResponsiveProps = {\r\n children: React.ReactNode;\r\n open?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n};\r\n\r\nconst DialogResponsive = ({\r\n children,\r\n open,\r\n onOpenChange,\r\n}: DialogResponsiveProps) => {\r\n const isTouch = useIsTouchDevice();\r\n\r\n const contextValue = React.useMemo(() => ({ isTouch }), [isTouch]);\r\n\r\n if (isTouch) {\r\n return (\r\n <DialogResponsiveContext.Provider key=\"touch\" value={contextValue}>\r\n <Drawer open={open} onOpenChange={onOpenChange}>\r\n <DrawerVirtualKeyboardProvider>\r\n {children}\r\n </DrawerVirtualKeyboardProvider>\r\n </Drawer>\r\n </DialogResponsiveContext.Provider>\r\n );\r\n }\r\n\r\n return (\r\n <DialogResponsiveContext.Provider key=\"desktop\" value={contextValue}>\r\n <Dialog open={open} onOpenChange={onOpenChange}>\r\n {children}\r\n </Dialog>\r\n </DialogResponsiveContext.Provider>\r\n );\r\n};\r\n\r\nconst DialogResponsiveTrigger: React.ForwardRefExoticComponent<\r\n React.ComponentPropsWithoutRef<typeof DialogTrigger> &\r\n React.RefAttributes<HTMLButtonElement>\r\n> = React.forwardRef(({ className, ...props }, ref) => {\r\n const { isTouch } = useDialogResponsive();\r\n const Comp = isTouch ? DrawerTrigger : DialogTrigger;\r\n\r\n return <Comp ref={ref} className={className} {...props} />;\r\n});\r\nDialogResponsiveTrigger.displayName = \"DialogResponsiveTrigger\";\r\n\r\nconst DialogResponsiveClose: React.ForwardRefExoticComponent<\r\n React.ComponentPropsWithoutRef<typeof DialogClose> &\r\n React.RefAttributes<HTMLButtonElement>\r\n> = React.forwardRef(({ className, ...props }, ref) => {\r\n const { isTouch } = useDialogResponsive();\r\n const Comp = isTouch ? DrawerClose : DialogClose;\r\n\r\n return <Comp ref={ref} className={className} {...props} />;\r\n});\r\nDialogResponsiveClose.displayName = \"DialogResponsiveClose\";\r\n\r\nconst DialogResponsiveContent: React.ForwardRefExoticComponent<\r\n React.ComponentPropsWithoutRef<typeof DialogContent> &\r\n React.RefAttributes<HTMLDivElement>\r\n> = React.forwardRef(({ className, children, ...props }, ref) => {\r\n const { isTouch } = useDialogResponsive();\r\n const Comp = isTouch ? DrawerContent : DialogContent;\r\n\r\n return (\r\n <Comp ref={ref} className={className} {...props}>\r\n {children}\r\n </Comp>\r\n );\r\n});\r\nDialogResponsiveContent.displayName = \"DialogResponsiveContent\";\r\n\r\nconst DialogResponsiveHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => {\r\n const { isTouch } = useDialogResponsive();\r\n const Comp = isTouch ? DrawerHeader : DialogHeader;\r\n\r\n return <Comp className={className} {...props} />;\r\n};\r\nDialogResponsiveHeader.displayName = \"DialogResponsiveHeader\";\r\n\r\nconst DialogResponsiveFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => {\r\n const { isTouch } = useDialogResponsive();\r\n const Comp = isTouch ? DrawerFooter : DialogFooter;\r\n\r\n return (\r\n <Comp\r\n className={cn(\"grid grid-cols-1 gap-2 px-4 pb-safe pt-1\", className)}\r\n {...props}\r\n />\r\n );\r\n};\r\nDialogResponsiveFooter.displayName = \"DialogResponsiveFooter\";\r\n\r\nconst DialogResponsiveTitle: React.ForwardRefExoticComponent<\r\n React.ComponentPropsWithoutRef<typeof DialogTitle> &\r\n React.RefAttributes<HTMLHeadingElement>\r\n> = React.forwardRef(({ className, ...props }, ref) => {\r\n const { isTouch } = useDialogResponsive();\r\n const Comp = isTouch ? DrawerTitle : DialogTitle;\r\n\r\n return <Comp ref={ref} className={className} {...props} />;\r\n});\r\nDialogResponsiveTitle.displayName = \"DialogResponsiveTitle\";\r\n\r\nconst DialogResponsiveDescription: React.ForwardRefExoticComponent<\r\n React.ComponentPropsWithoutRef<typeof DialogDescription> &\r\n React.RefAttributes<HTMLParagraphElement>\r\n> = React.forwardRef(({ className, ...props }, ref) => {\r\n const { isTouch } = useDialogResponsive();\r\n const Comp = isTouch ? DrawerDescription : DialogDescription;\r\n\r\n return <Comp ref={ref} className={className} {...props} />;\r\n});\r\nDialogResponsiveDescription.displayName = \"DialogResponsiveDescription\";\r\n\r\nexport {\r\n DialogResponsive,\r\n DialogResponsiveTrigger,\r\n DialogResponsiveClose,\r\n DialogResponsiveContent,\r\n DialogResponsiveHeader,\r\n DialogResponsiveFooter,\r\n DialogResponsiveTitle,\r\n DialogResponsiveDescription,\r\n useDialogResponsive,\r\n};\r\n"],
5
- "mappings": "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",
6
- "names": ["React", "jsx", "DialogResponsiveContext", "useDialogResponsive", "DialogResponsive", "children", "open", "onOpenChange", "isTouch", "useIsTouchDevice", "contextValue", "Drawer", "DrawerVirtualKeyboardProvider", "Dialog", "DialogResponsiveTrigger", "_a", "ref", "_b", "className", "props", "__objRest", "DrawerTrigger", "DialogTrigger", "__spreadValues", "DialogResponsiveClose", "DrawerClose", "DialogClose", "DialogResponsiveContent", "DrawerContent", "DialogContent", "__spreadProps", "DialogResponsiveHeader", "DrawerHeader", "DialogHeader", "DialogResponsiveFooter", "DrawerFooter", "DialogFooter", "cn", "DialogResponsiveTitle", "DrawerTitle", "DialogTitle", "DialogResponsiveDescription", "DrawerDescription", "DialogDescription"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as D,b as h,c as N,d as l,e as x,f as b,g as y,h as B}from"./chunk-UQUO6MUG.js";import{b as n}from"./chunk-JAPB4ZVX.js";import{a}from"./chunk-WIFBPNRH.js";import{a as f,c as R}from"./chunk-WHECA25N.js";import{Fragment as w,jsx as e,jsxs as i}from"react/jsx-runtime";var P=({title:r,children:c,confirmText:p="Confirm",cancelText:d="Cancel",variant:v="default",cancelVariant:t="outline",icon:g,onConfirm:m,onCancel:u,className:k,loading:s})=>{let{isTouch:o}=D(),C=v==="destructive";return i(x,{className:a("[&>button]:hidden",!o&&"max-w-lg",k),children:[i(b,{className:a(!o&&"flex-row items-start gap-5 space-y-0",o&&"gap-4"),children:[!o&&g&&e("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[hsl(48,89%,93%)] text-[hsl(37,86%,23%)]",children:g}),i("div",{className:a(!o&&g&&"space-y-2",o&&"space-y-3"),children:[e(B,{className:"text-left",children:r}),e("p",{className:"text-left text-sm text-foreground",children:c})]})]}),e(y,{className:a(!o&&"flex-row justify-end gap-2"),children:o?i(w,{children:[e(l,{asChild:!0,children:e(n,{variant:C?"destructive":"default",size:"lg",onClick:m,disabled:s,className:"w-full",children:s?"Loading...":p})}),e(l,{asChild:!0,children:e(n,{variant:t,size:"lg",onClick:u,disabled:s,className:"w-full",children:d})})]}):i(w,{children:[e(l,{asChild:!0,children:e(n,{variant:t,onClick:u,disabled:s,children:d})}),e(l,{asChild:!0,children:e(n,{variant:C?"destructive":"default",onClick:m,disabled:s,children:s?"Loading...":p})})]})})]})},T=v=>{var t=v,{trigger:r,open:c,onOpenChange:p}=t,d=R(t,["trigger","open","onOpenChange"]);return i(h,{open:c,onOpenChange:p,children:[r&&e(N,{asChild:!0,children:r}),e(P,f({},d))]})};T.displayName="Confirm";export{T as a};
2
- //# sourceMappingURL=chunk-V3VA2O5O.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/confirm/index.tsx"],
4
- "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n DialogResponsive,\r\n DialogResponsiveContent,\r\n DialogResponsiveFooter,\r\n DialogResponsiveHeader,\r\n DialogResponsiveTitle,\r\n DialogResponsiveTrigger,\r\n DialogResponsiveClose,\r\n useDialogResponsive,\r\n} from \"@/components/dialog-responsive\";\r\nimport { Button, type ButtonProps } from \"@/components/button\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport type ConfirmProps = {\r\n /** The title of the confirmation dialog */\r\n title: string;\r\n /** The description/content of the confirmation dialog (can be string or React elements) */\r\n children: React.ReactNode;\r\n /** The text for the confirm button */\r\n confirmText?: string;\r\n /** The text for the cancel button */\r\n cancelText?: string;\r\n /** Whether the action is destructive (red button) */\r\n variant?: \"default\" | \"destructive\";\r\n /** Button variant for the cancel action */\r\n cancelVariant?: ButtonProps[\"variant\"];\r\n /** Icon to display in desktop mode (only visible on non-touch devices) */\r\n icon?: React.ReactNode;\r\n /** Callback when the confirm button is clicked */\r\n onConfirm?: () => void;\r\n /** Callback when the cancel button is clicked */\r\n onCancel?: () => void;\r\n /** The trigger element that opens the dialog */\r\n trigger?: React.ReactNode;\r\n /** Controlled open state */\r\n open?: boolean;\r\n /** Callback when open state changes */\r\n onOpenChange?: (open: boolean) => void;\r\n /** Additional class name for the content */\r\n className?: string;\r\n /** Whether the confirm action is loading */\r\n loading?: boolean;\r\n};\r\n\r\nconst ConfirmContent = ({\r\n title,\r\n children,\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n variant = \"default\",\r\n cancelVariant = \"outline\",\r\n icon,\r\n onConfirm,\r\n onCancel,\r\n className,\r\n loading,\r\n}: Omit<ConfirmProps, \"trigger\" | \"open\" | \"onOpenChange\">) => {\r\n const { isTouch } = useDialogResponsive();\r\n const isDestructive = variant === \"destructive\";\r\n\r\n return (\r\n <DialogResponsiveContent\r\n className={cn(\r\n \"[&>button]:hidden\", // Hide default close button\r\n !isTouch && \"max-w-lg\",\r\n className,\r\n )}\r\n >\r\n <DialogResponsiveHeader\r\n className={cn(\r\n !isTouch && \"flex-row items-start gap-5 space-y-0\",\r\n isTouch && \"gap-4\",\r\n )}\r\n >\r\n {!isTouch && icon && (\r\n <div className=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[hsl(48,89%,93%)] text-[hsl(37,86%,23%)]\">\r\n {icon}\r\n </div>\r\n )}\r\n <div\r\n className={cn(\r\n !isTouch && icon && \"space-y-2\",\r\n isTouch && \"space-y-3\",\r\n )}\r\n >\r\n <DialogResponsiveTitle className=\"text-left\">\r\n {title}\r\n </DialogResponsiveTitle>\r\n <p className=\"text-left text-sm text-foreground\">{children}</p>\r\n </div>\r\n </DialogResponsiveHeader>\r\n <DialogResponsiveFooter\r\n className={cn(!isTouch && \"flex-row justify-end gap-2\")}\r\n >\r\n {isTouch ? (\r\n <>\r\n <DialogResponsiveClose asChild>\r\n <Button\r\n variant={isDestructive ? \"destructive\" : \"default\"}\r\n size=\"lg\"\r\n onClick={onConfirm}\r\n disabled={loading}\r\n className=\"w-full\"\r\n >\r\n {loading ? \"Loading...\" : confirmText}\r\n </Button>\r\n </DialogResponsiveClose>\r\n <DialogResponsiveClose asChild>\r\n <Button\r\n variant={cancelVariant}\r\n size=\"lg\"\r\n onClick={onCancel}\r\n disabled={loading}\r\n className=\"w-full\"\r\n >\r\n {cancelText}\r\n </Button>\r\n </DialogResponsiveClose>\r\n </>\r\n ) : (\r\n <>\r\n <DialogResponsiveClose asChild>\r\n <Button\r\n variant={cancelVariant}\r\n onClick={onCancel}\r\n disabled={loading}\r\n >\r\n {cancelText}\r\n </Button>\r\n </DialogResponsiveClose>\r\n <DialogResponsiveClose asChild>\r\n <Button\r\n variant={isDestructive ? \"destructive\" : \"default\"}\r\n onClick={onConfirm}\r\n disabled={loading}\r\n >\r\n {loading ? \"Loading...\" : confirmText}\r\n </Button>\r\n </DialogResponsiveClose>\r\n </>\r\n )}\r\n </DialogResponsiveFooter>\r\n </DialogResponsiveContent>\r\n );\r\n};\r\n\r\nconst Confirm = ({\r\n trigger,\r\n open,\r\n onOpenChange,\r\n ...contentProps\r\n}: ConfirmProps) => {\r\n return (\r\n <DialogResponsive open={open} onOpenChange={onOpenChange}>\r\n {trigger && (\r\n <DialogResponsiveTrigger asChild>{trigger}</DialogResponsiveTrigger>\r\n )}\r\n <ConfirmContent {...contentProps} />\r\n </DialogResponsive>\r\n );\r\n};\r\n\r\nConfirm.displayName = \"Confirm\";\r\n\r\nexport { Confirm };\r\n"],
5
- "mappings": "mNA8EU,OAoBA,YAAAA,EApBA,OAAAC,EAIF,QAAAC,MAJE,oBA/BV,IAAMC,EAAiB,CAAC,CACtB,MAAAC,EACA,SAAAC,EACA,YAAAC,EAAc,UACd,WAAAC,EAAa,SACb,QAAAC,EAAU,UACV,cAAAC,EAAgB,UAChB,KAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,IAA+D,CAC7D,GAAM,CAAE,QAAAC,CAAQ,EAAIC,EAAoB,EAClCC,EAAgBT,IAAY,cAElC,OACEN,EAACgB,EAAA,CACC,UAAWC,EACT,oBACA,CAACJ,GAAW,WACZF,CACF,EAEA,UAAAX,EAACkB,EAAA,CACC,UAAWD,EACT,CAACJ,GAAW,uCACZA,GAAW,OACb,EAEC,WAACA,GAAWL,GACXT,EAAC,OAAI,UAAU,+GACZ,SAAAS,EACH,EAEFR,EAAC,OACC,UAAWiB,EACT,CAACJ,GAAWL,GAAQ,YACpBK,GAAW,WACb,EAEA,UAAAd,EAACoB,EAAA,CAAsB,UAAU,YAC9B,SAAAjB,EACH,EACAH,EAAC,KAAE,UAAU,oCAAqC,SAAAI,EAAS,GAC7D,GACF,EACAJ,EAACqB,EAAA,CACC,UAAWH,EAAG,CAACJ,GAAW,4BAA4B,EAErD,SAAAA,EACCb,EAAAF,EAAA,CACE,UAAAC,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASP,EAAgB,cAAgB,UACzC,KAAK,KACL,QAASN,EACT,SAAUG,EACV,UAAU,SAET,SAAAA,EAAU,aAAeR,EAC5B,EACF,EACAL,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASf,EACT,KAAK,KACL,QAASG,EACT,SAAUE,EACV,UAAU,SAET,SAAAP,EACH,EACF,GACF,EAEAL,EAAAF,EAAA,CACE,UAAAC,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASf,EACT,QAASG,EACT,SAAUE,EAET,SAAAP,EACH,EACF,EACAN,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASP,EAAgB,cAAgB,UACzC,QAASN,EACT,SAAUG,EAET,SAAAA,EAAU,aAAeR,EAC5B,EACF,GACF,EAEJ,GACF,CAEJ,EAEMmB,EAAWC,GAKG,CALH,IAAAC,EAAAD,EACf,SAAAE,EACA,KAAAC,EACA,aAAAC,CAxJF,EAqJiBH,EAIZI,EAAAC,EAJYL,EAIZ,CAHH,UACA,OACA,iBAGA,OACEzB,EAAC+B,EAAA,CAAiB,KAAMJ,EAAM,aAAcC,EACzC,UAAAF,GACC3B,EAACiC,EAAA,CAAwB,QAAO,GAAE,SAAAN,EAAQ,EAE5C3B,EAACE,EAAAgC,EAAA,GAAmBJ,EAAc,GACpC,CAEJ,EAEAN,EAAQ,YAAc",
6
- "names": ["Fragment", "jsx", "jsxs", "ConfirmContent", "title", "children", "confirmText", "cancelText", "variant", "cancelVariant", "icon", "onConfirm", "onCancel", "className", "loading", "isTouch", "useDialogResponsive", "isDestructive", "DialogResponsiveContent", "cn", "DialogResponsiveHeader", "DialogResponsiveTitle", "DialogResponsiveFooter", "DialogResponsiveClose", "Button", "Confirm", "_a", "_b", "trigger", "open", "onOpenChange", "contentProps", "__objRest", "DialogResponsive", "DialogResponsiveTrigger", "__spreadValues"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as f}from"./chunk-U26IEDZT.js";import{a as d}from"./chunk-WIFBPNRH.js";import{a as p,b as l,c as s}from"./chunk-WHECA25N.js";import*as i from"react";import{ToggleGroup as v}from"radix-ui";import{Check as z}from"lucide-react";import{jsx as u,jsxs as P}from"react/jsx-runtime";var h=i.createContext({size:"default",variant:"default",spacing:2,orientation:"horizontal",showCheckIcon:!1});function R(C){var m=C,{className:n,variant:r,size:o,spacing:t=2,orientation:e="horizontal",showCheckIcon:c=!1,children:g}=m,a=s(m,["className","variant","size","spacing","orientation","showCheckIcon","children"]);return u(v.Root,l(p({"data-slot":"toggle-group","data-variant":r,"data-size":o,"data-spacing":t,"data-orientation":e,style:{"--gap":`${t*.25}rem`},className:d("group/toggle-group data-vertical:flex-col data-vertical:items-stretch flex w-fit flex-row items-center gap-[var(--gap)] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)]",n)},a),{children:u(h.Provider,{value:{variant:r,size:o,spacing:t,orientation:e,showCheckIcon:c},children:g})}))}function I(c){var g=c,{className:n,children:r,variant:o="default",size:t="default"}=g,e=s(g,["className","children","variant","size"]);let a=i.useContext(h);return P(v.Item,l(p({"data-slot":"toggle-group-item","data-variant":a.variant||o,"data-size":a.size||t,"data-spacing":a.spacing,className:d("group/item group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t shrink-0 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2",f({variant:a.variant||o,size:a.size||t}),n)},e),{children:[a.showCheckIcon&&u(z,{className:"hidden size-4 group-data-[state=on]/item:block"}),r]}))}export{R as a,I as b};
2
- //# sourceMappingURL=chunk-YLCKVKJM.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/toggle-group/index.tsx"],
4
- "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { type VariantProps } from \"class-variance-authority\";\r\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { toggleVariants } from \"@/components/toggle\";\r\n\r\nimport { Check } from \"lucide-react\";\r\n\r\nconst ToggleGroupContext = React.createContext<\r\n VariantProps<typeof toggleVariants> & {\r\n spacing?: number;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n showCheckIcon?: boolean;\r\n }\r\n>({\r\n size: \"default\",\r\n variant: \"default\",\r\n spacing: 2,\r\n orientation: \"horizontal\",\r\n showCheckIcon: false,\r\n});\r\n\r\nfunction ToggleGroup({\r\n className,\r\n variant,\r\n size,\r\n spacing = 2,\r\n orientation = \"horizontal\",\r\n showCheckIcon = false,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\r\n VariantProps<typeof toggleVariants> & {\r\n spacing?: number;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n showCheckIcon?: boolean;\r\n }) {\r\n return (\r\n <ToggleGroupPrimitive.Root\r\n data-slot=\"toggle-group\"\r\n data-variant={variant}\r\n data-size={size}\r\n data-spacing={spacing}\r\n data-orientation={orientation}\r\n style={{ \"--gap\": `${spacing * 0.25}rem` } as React.CSSProperties}\r\n className={cn(\r\n \"group/toggle-group data-vertical:flex-col data-vertical:items-stretch flex w-fit flex-row items-center gap-[var(--gap)] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)]\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <ToggleGroupContext.Provider\r\n value={{ variant, size, spacing, orientation, showCheckIcon }}\r\n >\r\n {children}\r\n </ToggleGroupContext.Provider>\r\n </ToggleGroupPrimitive.Root>\r\n );\r\n}\r\n\r\nfunction ToggleGroupItem({\r\n className,\r\n children,\r\n variant = \"default\",\r\n size = \"default\",\r\n ...props\r\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\r\n VariantProps<typeof toggleVariants>) {\r\n const context = React.useContext(ToggleGroupContext);\r\n\r\n return (\r\n <ToggleGroupPrimitive.Item\r\n data-slot=\"toggle-group-item\"\r\n data-variant={context.variant || variant}\r\n data-size={context.size || size}\r\n data-spacing={context.spacing}\r\n className={cn(\r\n \"group/item group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t shrink-0 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2\",\r\n toggleVariants({\r\n variant: context.variant || variant,\r\n size: context.size || size,\r\n }),\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {context.showCheckIcon && (\r\n <Check className=\"hidden size-4 group-data-[state=on]/item:block\" />\r\n )}\r\n {children}\r\n </ToggleGroupPrimitive.Item>\r\n );\r\n}\r\n\r\nexport { ToggleGroup, ToggleGroupItem };\r\n"],
5
- "mappings": "sIAEA,UAAYA,MAAW,QAEvB,OAAS,eAAeC,MAA4B,WAKpD,OAAS,SAAAC,MAAa,eA6ChB,cAAAC,EAoBF,QAAAC,MApBE,oBA3CN,IAAMC,EAA2B,gBAM/B,CACA,KAAM,UACN,QAAS,UACT,QAAS,EACT,YAAa,aACb,cAAe,EACjB,CAAC,EAED,SAASC,EAAYC,EAchB,CAdgB,IAAAC,EAAAD,EACnB,WAAAE,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,EACV,YAAAC,EAAc,aACd,cAAAC,EAAgB,GAChB,SAAAC,CAhCF,EAyBqBP,EAQhBQ,EAAAC,EARgBT,EAQhB,CAPH,YACA,UACA,OACA,UACA,cACA,gBACA,aAQA,OACEL,EAACe,EAAqB,KAArBC,EAAAC,EAAA,CACC,YAAU,eACV,eAAcV,EACd,YAAWC,EACX,eAAcC,EACd,mBAAkBC,EAClB,MAAO,CAAE,QAAS,GAAGD,EAAU,GAAI,KAAM,EACzC,UAAWS,EACT,yLACAZ,CACF,GACIO,GAXL,CAaC,SAAAb,EAACE,EAAmB,SAAnB,CACC,MAAO,CAAE,QAAAK,EAAS,KAAAC,EAAM,QAAAC,EAAS,YAAAC,EAAa,cAAAC,CAAc,EAE3D,SAAAC,EACH,GACF,CAEJ,CAEA,SAASO,EAAgBf,EAOc,CAPd,IAAAC,EAAAD,EACvB,WAAAE,EACA,SAAAM,EACA,QAAAL,EAAU,UACV,KAAAC,EAAO,SAnET,EA+DyBH,EAKpBQ,EAAAC,EALoBT,EAKpB,CAJH,YACA,WACA,UACA,SAIA,IAAMe,EAAgB,aAAWlB,CAAkB,EAEnD,OACED,EAACc,EAAqB,KAArBC,EAAAC,EAAA,CACC,YAAU,oBACV,eAAcG,EAAQ,SAAWb,EACjC,YAAWa,EAAQ,MAAQZ,EAC3B,eAAcY,EAAQ,QACtB,UAAWF,EACT,84BACAG,EAAe,CACb,QAASD,EAAQ,SAAWb,EAC5B,KAAMa,EAAQ,MAAQZ,CACxB,CAAC,EACDF,CACF,GACIO,GAbL,CAeE,UAAAO,EAAQ,eACPpB,EAACsB,EAAA,CAAM,UAAU,iDAAiD,EAEnEV,IACH,CAEJ",
6
- "names": ["React", "ToggleGroupPrimitive", "Check", "jsx", "jsxs", "ToggleGroupContext", "ToggleGroup", "_a", "_b", "className", "variant", "size", "spacing", "orientation", "showCheckIcon", "children", "props", "__objRest", "ToggleGroupPrimitive", "__spreadProps", "__spreadValues", "cn", "ToggleGroupItem", "context", "toggleVariants", "Check"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as d}from"./chunk-WIFBPNRH.js";import{a as b,b as h,c as s}from"./chunk-WHECA25N.js";import*as g from"react";import{Slider as t}from"radix-ui";import{cva as y}from"class-variance-authority";import{jsx as r,jsxs as I}from"react/jsx-runtime";var C=y("absolute select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full",{variants:{variant:{default:"bg-primary","primary-dark":"bg-primary-dark"}},defaultVariants:{variant:"default"}}),E=y("border",{variants:{variant:{default:"border-ring ring-ring/50","primary-dark":"border-primary-dark ring-primary-dark/50"}},defaultVariants:{variant:"default"}});function D(O){var p=O,{className:w,defaultValue:i,value:n,min:c=0,max:u=100,hideEdgeThumbs:V=!1,readOnly:k=!1,variant:m,showValues:R=!1,formatValue:f}=p,P=s(p,["className","defaultValue","value","min","max","hideEdgeThumbs","readOnly","variant","showValues","formatValue"]);let S=Array.isArray(i)?i:[c,u],[T,A]=g.useState(S),e=Array.isArray(n)?n:T,v=P,{onValueChange:o}=v,N=s(v,["onValueChange"]),z=l=>{A(l),o==null||o(l)};return I(t.Root,h(b({"data-slot":"slider",defaultValue:i,value:n,min:c,max:u,className:d("relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col data-[disabled]:opacity-50",w,k&&"pointer-events-none"),onValueChange:z},N),{children:[r(t.Track,{"data-slot":"slider-track",className:"relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:h-1 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1",children:r(t.Range,{"data-slot":"slider-range",className:C({variant:m})})}),Array.from({length:e.length},(l,a)=>{let x=a===0||a===e.length-1;return r(t.Thumb,{"data-slot":"slider-thumb",className:d("hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 relative block size-3 shrink-0 select-none rounded-full bg-white transition-[color,box-shadow] after:absolute after:-inset-2 disabled:pointer-events-none disabled:opacity-50",E({variant:m}),V&&x&&"pointer-events-none opacity-0"),children:R&&r("span",{className:"pointer-events-none absolute -top-6 left-1/2 -translate-x-1/2 whitespace-nowrap text-xs",children:f?f(e[a]):e[a]})},a)})]}))}export{D as a};
2
- //# sourceMappingURL=chunk-Z2DKDZMC.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/slider/index.tsx"],
4
- "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Slider as SliderPrimitive } from \"radix-ui\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst sliderRangeVariants = cva(\r\n \"absolute select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-primary\",\r\n \"primary-dark\": \"bg-primary-dark\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n },\r\n);\r\n\r\nconst sliderThumbVariants = cva(\"border\", {\r\n variants: {\r\n variant: {\r\n default: \"border-ring ring-ring/50\",\r\n \"primary-dark\": \"border-primary-dark ring-primary-dark/50\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n});\r\n\r\nfunction Slider({\r\n className,\r\n defaultValue,\r\n value,\r\n min = 0,\r\n max = 100,\r\n hideEdgeThumbs = false,\r\n readOnly = false,\r\n variant,\r\n showValues = false,\r\n formatValue,\r\n ...props\r\n}: React.ComponentProps<typeof SliderPrimitive.Root> &\r\n VariantProps<typeof sliderRangeVariants> & {\r\n readOnly?: boolean;\r\n hideEdgeThumbs?: boolean;\r\n showValues?: boolean;\r\n formatValue?: (value: number) => string;\r\n }) {\r\n const initialValues = Array.isArray(defaultValue) ? defaultValue : [min, max];\r\n\r\n const [internalValues, setInternalValues] =\r\n React.useState<number[]>(initialValues);\r\n\r\n const displayValues = Array.isArray(value) ? value : internalValues;\r\n\r\n const { onValueChange, ...rest } = props;\r\n\r\n const handleValueChange = (vals: number[]) => {\r\n setInternalValues(vals);\r\n onValueChange?.(vals);\r\n };\r\n\r\n return (\r\n <SliderPrimitive.Root\r\n data-slot=\"slider\"\r\n defaultValue={defaultValue}\r\n value={value}\r\n min={min}\r\n max={max}\r\n className={cn(\r\n \"relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col data-[disabled]:opacity-50\",\r\n className,\r\n readOnly && \"pointer-events-none\",\r\n )}\r\n onValueChange={handleValueChange}\r\n {...rest}\r\n >\r\n <SliderPrimitive.Track\r\n data-slot=\"slider-track\"\r\n className=\"relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:h-1 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1\"\r\n >\r\n <SliderPrimitive.Range\r\n data-slot=\"slider-range\"\r\n className={sliderRangeVariants({ variant })}\r\n />\r\n </SliderPrimitive.Track>\r\n {Array.from({ length: displayValues.length }, (_, index) => {\r\n const isEdge = index === 0 || index === displayValues.length - 1;\r\n return (\r\n <SliderPrimitive.Thumb\r\n data-slot=\"slider-thumb\"\r\n key={index}\r\n className={cn(\r\n \"hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 relative block size-3 shrink-0 select-none rounded-full bg-white transition-[color,box-shadow] after:absolute after:-inset-2 disabled:pointer-events-none disabled:opacity-50\",\r\n sliderThumbVariants({ variant }),\r\n hideEdgeThumbs && isEdge && \"pointer-events-none opacity-0\",\r\n )}\r\n >\r\n {showValues && (\r\n <span className=\"pointer-events-none absolute -top-6 left-1/2 -translate-x-1/2 whitespace-nowrap text-xs\">\r\n {formatValue\r\n ? formatValue(displayValues[index])\r\n : displayValues[index]}\r\n </span>\r\n )}\r\n </SliderPrimitive.Thumb>\r\n );\r\n })}\r\n </SliderPrimitive.Root>\r\n );\r\n}\r\n\r\nexport { Slider };\r\n"],
5
- "mappings": "8FAEA,UAAYA,MAAW,QACvB,OAAS,UAAUC,MAAuB,WAC1C,OAAS,OAAAC,MAA8B,2BAiEnC,OAkBI,OAAAC,EAlBJ,QAAAC,MAAA,oBA7DJ,IAAMC,EAAsBC,EAC1B,+FACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,aACT,eAAgB,iBAClB,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAEMC,EAAsBD,EAAI,SAAU,CACxC,SAAU,CACR,QAAS,CACP,QAAS,2BACT,eAAgB,0CAClB,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CAAC,EAED,SAASE,EAAOC,EAkBX,CAlBW,IAAAC,EAAAD,EACd,WAAAE,EACA,aAAAC,EACA,MAAAC,EACA,IAAAC,EAAM,EACN,IAAAC,EAAM,IACN,eAAAC,EAAiB,GACjB,SAAAC,EAAW,GACX,QAAAC,EACA,WAAAC,EAAa,GACb,YAAAC,CA7CF,EAmCgBV,EAWXW,EAAAC,EAXWZ,EAWX,CAVH,YACA,eACA,QACA,MACA,MACA,iBACA,WACA,UACA,aACA,gBASA,IAAMa,EAAgB,MAAM,QAAQX,CAAY,EAAIA,EAAe,CAACE,EAAKC,CAAG,EAEtE,CAACS,EAAgBC,CAAiB,EAChC,WAAmBF,CAAa,EAElCG,EAAgB,MAAM,QAAQb,CAAK,EAAIA,EAAQW,EAElBf,EAAAY,EAA3B,eAAAM,CA7DV,EA6DqClB,EAATmB,EAAAN,EAASb,EAAT,CAAlB,kBAEFoB,EAAqBC,GAAmB,CAC5CL,EAAkBK,CAAI,EACtBH,GAAA,MAAAA,EAAgBG,EAClB,EAEA,OACE1B,EAAC2B,EAAgB,KAAhBC,EAAAC,EAAA,CACC,YAAU,SACV,aAAcrB,EACd,MAAOC,EACP,IAAKC,EACL,IAAKC,EACL,UAAWmB,EACT,sOACAvB,EACAM,GAAY,qBACd,EACA,cAAeY,GACXD,GAZL,CAcC,UAAAzB,EAAC4B,EAAgB,MAAhB,CACC,YAAU,eACV,UAAU,gMAEV,SAAA5B,EAAC4B,EAAgB,MAAhB,CACC,YAAU,eACV,UAAW1B,EAAoB,CAAE,QAAAa,CAAQ,CAAC,EAC5C,EACF,EACC,MAAM,KAAK,CAAE,OAAQQ,EAAc,MAAO,EAAG,CAACS,EAAGC,IAAU,CAC1D,IAAMC,EAASD,IAAU,GAAKA,IAAUV,EAAc,OAAS,EAC/D,OACEvB,EAAC4B,EAAgB,MAAhB,CACC,YAAU,eAEV,UAAWG,EACT,6PACA3B,EAAoB,CAAE,QAAAW,CAAQ,CAAC,EAC/BF,GAAkBqB,GAAU,+BAC9B,EAEC,SAAAlB,GACChB,EAAC,QAAK,UAAU,0FACb,SAAAiB,EACGA,EAAYM,EAAcU,CAAK,CAAC,EAChCV,EAAcU,CAAK,EACzB,GAZGA,CAcP,CAEJ,CAAC,IACH,CAEJ",
6
- "names": ["React", "SliderPrimitive", "cva", "jsx", "jsxs", "sliderRangeVariants", "cva", "sliderThumbVariants", "Slider", "_a", "_b", "className", "defaultValue", "value", "min", "max", "hideEdgeThumbs", "readOnly", "variant", "showValues", "formatValue", "props", "__objRest", "initialValues", "internalValues", "setInternalValues", "displayValues", "onValueChange", "rest", "handleValueChange", "vals", "SliderPrimitive", "__spreadProps", "__spreadValues", "cn", "_", "index", "isEdge"]
7
- }