@lawnguru/ui 0.0.0-stage → 3.0.0

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 (240) hide show
  1. package/README.md +29 -3
  2. package/dist/chunk-2FVVWPIW.js +2 -0
  3. package/dist/chunk-2FVVWPIW.js.map +7 -0
  4. package/dist/chunk-2R5NZUY2.js +2 -0
  5. package/dist/chunk-2R5NZUY2.js.map +7 -0
  6. package/dist/chunk-2ZNU7SP6.js +2 -0
  7. package/dist/chunk-2ZNU7SP6.js.map +7 -0
  8. package/dist/chunk-322C3AJR.js +2 -0
  9. package/dist/chunk-322C3AJR.js.map +7 -0
  10. package/dist/chunk-46MFR2CI.js +2 -0
  11. package/dist/chunk-46MFR2CI.js.map +7 -0
  12. package/dist/chunk-4HREOJXZ.js +2 -0
  13. package/dist/chunk-4HREOJXZ.js.map +7 -0
  14. package/dist/chunk-5AXWISGI.js +2 -0
  15. package/dist/chunk-5AXWISGI.js.map +7 -0
  16. package/dist/chunk-62LTWWXS.js +2 -0
  17. package/dist/chunk-62LTWWXS.js.map +7 -0
  18. package/dist/chunk-63IVPQSD.js +2 -0
  19. package/dist/chunk-63IVPQSD.js.map +7 -0
  20. package/dist/chunk-6MI7ACXZ.js +2 -0
  21. package/dist/chunk-6MI7ACXZ.js.map +7 -0
  22. package/dist/chunk-7EVFMYIH.js +2 -0
  23. package/dist/chunk-7EVFMYIH.js.map +7 -0
  24. package/dist/chunk-7H74R7P4.js +2 -0
  25. package/dist/chunk-7H74R7P4.js.map +7 -0
  26. package/dist/chunk-7TYPESVD.js +2 -0
  27. package/dist/chunk-7TYPESVD.js.map +7 -0
  28. package/dist/chunk-A4EVMSOO.js +2 -0
  29. package/dist/chunk-A4EVMSOO.js.map +7 -0
  30. package/dist/chunk-BF3VTYEM.js +2 -0
  31. package/dist/chunk-BF3VTYEM.js.map +7 -0
  32. package/dist/chunk-BJWILCTE.js +2 -0
  33. package/dist/chunk-BJWILCTE.js.map +7 -0
  34. package/dist/chunk-BY3UM6EV.js +2 -0
  35. package/dist/chunk-BY3UM6EV.js.map +7 -0
  36. package/dist/chunk-C6BWVSUV.js +2 -0
  37. package/dist/chunk-C6BWVSUV.js.map +7 -0
  38. package/dist/chunk-CALZEY6V.js +2 -0
  39. package/dist/chunk-CALZEY6V.js.map +7 -0
  40. package/dist/chunk-CF236UZ4.js +2 -0
  41. package/dist/chunk-CF236UZ4.js.map +7 -0
  42. package/dist/chunk-DBMJIVTY.js +2 -0
  43. package/dist/chunk-DBMJIVTY.js.map +7 -0
  44. package/dist/chunk-DCPZZOJQ.js +2 -0
  45. package/dist/chunk-DCPZZOJQ.js.map +7 -0
  46. package/dist/chunk-EPZCTKQC.js +2 -0
  47. package/dist/chunk-EPZCTKQC.js.map +7 -0
  48. package/dist/chunk-EWEMD7AS.js +2 -0
  49. package/dist/chunk-EWEMD7AS.js.map +7 -0
  50. package/dist/chunk-F4MEBVNH.js +2 -0
  51. package/dist/chunk-F4MEBVNH.js.map +7 -0
  52. package/dist/chunk-FKH5WAC7.js +2 -0
  53. package/dist/chunk-FKH5WAC7.js.map +7 -0
  54. package/dist/chunk-FUXRPZVU.js +2 -0
  55. package/dist/chunk-FUXRPZVU.js.map +7 -0
  56. package/dist/chunk-GATZOHQ6.js +1 -0
  57. package/dist/chunk-GATZOHQ6.js.map +7 -0
  58. package/dist/chunk-GTEOHHVD.js +2 -0
  59. package/dist/chunk-GTEOHHVD.js.map +7 -0
  60. package/dist/chunk-HE3CSN3R.js +2 -0
  61. package/dist/chunk-HE3CSN3R.js.map +7 -0
  62. package/dist/chunk-IM2PR6JL.js +2 -0
  63. package/dist/chunk-IM2PR6JL.js.map +7 -0
  64. package/dist/chunk-INK2D47B.js +2 -0
  65. package/dist/chunk-INK2D47B.js.map +7 -0
  66. package/dist/chunk-JAPB4ZVX.js +2 -0
  67. package/dist/chunk-JAPB4ZVX.js.map +7 -0
  68. package/dist/chunk-JVQR7SBQ.js +2 -0
  69. package/dist/chunk-JVQR7SBQ.js.map +7 -0
  70. package/dist/chunk-KCQQSXMU.js +2 -0
  71. package/dist/chunk-KCQQSXMU.js.map +7 -0
  72. package/dist/chunk-KGEITSDG.js +2 -0
  73. package/dist/chunk-KGEITSDG.js.map +7 -0
  74. package/dist/chunk-KLHKZS2N.js +2 -0
  75. package/dist/chunk-KLHKZS2N.js.map +7 -0
  76. package/dist/chunk-KR5A3H22.js +2 -0
  77. package/dist/chunk-KR5A3H22.js.map +7 -0
  78. package/dist/chunk-L4EACCHY.js +2 -0
  79. package/dist/chunk-L4EACCHY.js.map +7 -0
  80. package/dist/chunk-LS37UWHK.js +2 -0
  81. package/dist/chunk-LS37UWHK.js.map +7 -0
  82. package/dist/chunk-LUG5DIYB.js +2 -0
  83. package/dist/chunk-LUG5DIYB.js.map +7 -0
  84. package/dist/chunk-M3WRRDK4.js +2 -0
  85. package/dist/chunk-M3WRRDK4.js.map +7 -0
  86. package/dist/chunk-N4JYYENQ.js +2 -0
  87. package/dist/chunk-N4JYYENQ.js.map +7 -0
  88. package/dist/chunk-NAS2AFA3.js +2 -0
  89. package/dist/chunk-NAS2AFA3.js.map +7 -0
  90. package/dist/chunk-NMUGPQJR.js +2 -0
  91. package/dist/chunk-NMUGPQJR.js.map +7 -0
  92. package/dist/chunk-OSONBAJY.js +2 -0
  93. package/dist/chunk-OSONBAJY.js.map +7 -0
  94. package/dist/chunk-P2J4T7VX.js +2 -0
  95. package/dist/chunk-P2J4T7VX.js.map +7 -0
  96. package/dist/chunk-PLDAFSMG.js +2 -0
  97. package/dist/chunk-PLDAFSMG.js.map +7 -0
  98. package/dist/chunk-PQXLSFXS.js +2 -0
  99. package/dist/chunk-PQXLSFXS.js.map +7 -0
  100. package/dist/chunk-PRAYE34P.js +2 -0
  101. package/dist/chunk-PRAYE34P.js.map +7 -0
  102. package/dist/chunk-PYVYS6W4.js +2 -0
  103. package/dist/chunk-PYVYS6W4.js.map +7 -0
  104. package/dist/chunk-Q3PG3WWG.js +2 -0
  105. package/dist/chunk-Q3PG3WWG.js.map +7 -0
  106. package/dist/chunk-RHVVPPZE.js +2 -0
  107. package/dist/chunk-RHVVPPZE.js.map +7 -0
  108. package/dist/chunk-RRDBPO2I.js +2 -0
  109. package/dist/chunk-RRDBPO2I.js.map +7 -0
  110. package/dist/chunk-S2I5LIDP.js +2 -0
  111. package/dist/chunk-S2I5LIDP.js.map +7 -0
  112. package/dist/chunk-SJZ34LYG.js +2 -0
  113. package/dist/chunk-SJZ34LYG.js.map +7 -0
  114. package/dist/chunk-T73JL4BL.js +2 -0
  115. package/dist/chunk-T73JL4BL.js.map +7 -0
  116. package/dist/chunk-U26IEDZT.js +2 -0
  117. package/dist/chunk-U26IEDZT.js.map +7 -0
  118. package/dist/chunk-UQUO6MUG.js +2 -0
  119. package/dist/chunk-UQUO6MUG.js.map +7 -0
  120. package/dist/chunk-UUB5URTQ.js +2 -0
  121. package/dist/chunk-UUB5URTQ.js.map +7 -0
  122. package/dist/chunk-V3VA2O5O.js +2 -0
  123. package/dist/chunk-V3VA2O5O.js.map +7 -0
  124. package/dist/chunk-VIGX5NKJ.js +2 -0
  125. package/dist/chunk-VIGX5NKJ.js.map +7 -0
  126. package/dist/chunk-WHECA25N.js +2 -0
  127. package/dist/chunk-WHECA25N.js.map +7 -0
  128. package/dist/chunk-WIFBPNRH.js +2 -0
  129. package/dist/chunk-WIFBPNRH.js.map +7 -0
  130. package/dist/chunk-YLCKVKJM.js +2 -0
  131. package/dist/chunk-YLCKVKJM.js.map +7 -0
  132. package/dist/chunk-Z2DKDZMC.js +2 -0
  133. package/dist/chunk-Z2DKDZMC.js.map +7 -0
  134. package/dist/chunk-ZJVH3SNI.js +2 -0
  135. package/dist/chunk-ZJVH3SNI.js.map +7 -0
  136. package/dist/components/alert/index.js +2 -0
  137. package/dist/components/alert/index.js.map +7 -0
  138. package/dist/components/avatar/index.js +2 -0
  139. package/dist/components/avatar/index.js.map +7 -0
  140. package/dist/components/badge/index.js +2 -0
  141. package/dist/components/badge/index.js.map +7 -0
  142. package/dist/components/button/index.js +2 -0
  143. package/dist/components/button/index.js.map +7 -0
  144. package/dist/components/calendar/index.js +2 -0
  145. package/dist/components/calendar/index.js.map +7 -0
  146. package/dist/components/card/index.js +2 -0
  147. package/dist/components/card/index.js.map +7 -0
  148. package/dist/components/carousel/index.js +2 -0
  149. package/dist/components/carousel/index.js.map +7 -0
  150. package/dist/components/checkbox/index.js +2 -0
  151. package/dist/components/checkbox/index.js.map +7 -0
  152. package/dist/components/collapsible/index.js +2 -0
  153. package/dist/components/collapsible/index.js.map +7 -0
  154. package/dist/components/combobox/index.js +2 -0
  155. package/dist/components/combobox/index.js.map +7 -0
  156. package/dist/components/command/index.js +2 -0
  157. package/dist/components/command/index.js.map +7 -0
  158. package/dist/components/confirm/index.js +2 -0
  159. package/dist/components/confirm/index.js.map +7 -0
  160. package/dist/components/dialog/index.js +2 -0
  161. package/dist/components/dialog/index.js.map +7 -0
  162. package/dist/components/dialog-responsive/index.js +2 -0
  163. package/dist/components/dialog-responsive/index.js.map +7 -0
  164. package/dist/components/drawer/index.js +2 -0
  165. package/dist/components/drawer/index.js.map +7 -0
  166. package/dist/components/dropdown-menu/index.js +2 -0
  167. package/dist/components/dropdown-menu/index.js.map +7 -0
  168. package/dist/components/dropdown-menu-responsive/index.js +2 -0
  169. package/dist/components/dropdown-menu-responsive/index.js.map +7 -0
  170. package/dist/components/empty/index.js +2 -0
  171. package/dist/components/empty/index.js.map +7 -0
  172. package/dist/components/form/index.js +2 -0
  173. package/dist/components/form/index.js.map +7 -0
  174. package/dist/components/input/index.js +2 -0
  175. package/dist/components/input/index.js.map +7 -0
  176. package/dist/components/input-group/index.js +2 -0
  177. package/dist/components/input-group/index.js.map +7 -0
  178. package/dist/components/input-otp/index.js +2 -0
  179. package/dist/components/input-otp/index.js.map +7 -0
  180. package/dist/components/input-password/index.js +2 -0
  181. package/dist/components/input-password/index.js.map +7 -0
  182. package/dist/components/item/index.js +2 -0
  183. package/dist/components/item/index.js.map +7 -0
  184. package/dist/components/label/index.js +2 -0
  185. package/dist/components/label/index.js.map +7 -0
  186. package/dist/components/loading-page/index.js +2 -0
  187. package/dist/components/loading-page/index.js.map +7 -0
  188. package/dist/components/photo-lightbox/index.js +2 -0
  189. package/dist/components/photo-lightbox/index.js.map +7 -0
  190. package/dist/components/photo-upload/index.js +2 -0
  191. package/dist/components/photo-upload/index.js.map +7 -0
  192. package/dist/components/popover/index.js +2 -0
  193. package/dist/components/popover/index.js.map +7 -0
  194. package/dist/components/progress/index.js +2 -0
  195. package/dist/components/progress/index.js.map +7 -0
  196. package/dist/components/questionnaire/index.js +2 -0
  197. package/dist/components/questionnaire/index.js.map +7 -0
  198. package/dist/components/radio-group/index.js +2 -0
  199. package/dist/components/radio-group/index.js.map +7 -0
  200. package/dist/components/rating/index.js +2 -0
  201. package/dist/components/rating/index.js.map +7 -0
  202. package/dist/components/resizable/index.js +2 -0
  203. package/dist/components/resizable/index.js.map +7 -0
  204. package/dist/components/scroll-area/index.js +2 -0
  205. package/dist/components/scroll-area/index.js.map +7 -0
  206. package/dist/components/select/index.js +2 -0
  207. package/dist/components/select/index.js.map +7 -0
  208. package/dist/components/separator/index.js +2 -0
  209. package/dist/components/separator/index.js.map +7 -0
  210. package/dist/components/sheet/index.js +2 -0
  211. package/dist/components/sheet/index.js.map +7 -0
  212. package/dist/components/slider/index.js +2 -0
  213. package/dist/components/slider/index.js.map +7 -0
  214. package/dist/components/spinner/index.js +2 -0
  215. package/dist/components/spinner/index.js.map +7 -0
  216. package/dist/components/table/index.js +2 -0
  217. package/dist/components/table/index.js.map +7 -0
  218. package/dist/components/tabs/index.js +2 -0
  219. package/dist/components/tabs/index.js.map +7 -0
  220. package/dist/components/text-area/index.js +2 -0
  221. package/dist/components/text-area/index.js.map +7 -0
  222. package/dist/components/toggle/index.js +2 -0
  223. package/dist/components/toggle/index.js.map +7 -0
  224. package/dist/components/toggle-group/index.js +2 -0
  225. package/dist/components/toggle-group/index.js.map +7 -0
  226. package/dist/hooks/index.js +2 -0
  227. package/dist/hooks/index.js.map +7 -0
  228. package/dist/hooks/use-is-touch-device.js +2 -0
  229. package/dist/hooks/use-is-touch-device.js.map +7 -0
  230. package/dist/index.d.ts +716 -0
  231. package/dist/index.js +2 -0
  232. package/dist/index.js.map +7 -0
  233. package/dist/lib/utils.js +2 -0
  234. package/dist/lib/utils.js.map +7 -0
  235. package/dist/output.css +4882 -0
  236. package/dist/tailwind.preset.d.ts +341 -0
  237. package/dist/tailwind.preset.js +2 -0
  238. package/dist/tailwind.preset.js.map +7 -0
  239. package/dist/variables.css +93 -0
  240. package/package.json +133 -6
@@ -0,0 +1,2 @@
1
+ import{a as C,b as T,i as y,j as h,m as x,n as g}from"./chunk-VIGX5NKJ.js";import{a as l,b as f,d as D,g as M}from"./chunk-7EVFMYIH.js";import{a as v}from"./chunk-46MFR2CI.js";import{a as R}from"./chunk-WIFBPNRH.js";import{a,b as w,c as i}from"./chunk-WHECA25N.js";import*as p from"react";import{Fragment as S,jsx as n}from"react/jsx-runtime";var m=p.createContext({isTouch:!1}),d=()=>p.useContext(m),b=({children:e,open:o,onOpenChange:s})=>{let t=v(),r=p.useMemo(()=>({isTouch:t}),[t]);return t?n(m.Provider,{value:r,children:n(l,{open:o,onOpenChange:s,children:e})}):n(m.Provider,{value:r,children:n(C,{open:o,onOpenChange:s,children:e})})};b.displayName="DropdownMenuResponsive";var P=p.forwardRef((t,s)=>{var r=t,{className:e}=r,o=i(r,["className"]);let{isTouch:u}=d();return n(u?f:T,a({ref:s,className:e},o))});P.displayName="DropdownMenuResponsiveTrigger";var L=p.forwardRef((r,t)=>{var u=r,{className:e,children:o}=u,s=i(u,["className","children"]);let{isTouch:c}=d();return c?n(M,{ref:t,className:e,children:n("div",{className:"pb-safe flex flex-col",children:o})}):n(y,w(a({ref:t,className:e},s),{children:o}))});L.displayName="DropdownMenuResponsiveContent";var E=p.forwardRef((u,r)=>{var c=u,{className:e,children:o,onClick:s}=c,t=i(c,["className","children","onClick"]);let{isTouch:N}=d();return N?n(D,{asChild:!0,children:n("button",{className:R("flex w-full items-center gap-2 px-4 py-3 text-sm transition-colors hover:bg-accent focus:outline-none",e),onClick:s,children:o})}):n(h,w(a({ref:r,className:e,onClick:s},t),{children:o}))});E.displayName="DropdownMenuResponsiveItem";var H=s=>{var t=s,{className:e}=t,o=i(t,["className"]);let{isTouch:r}=d();return r?n("div",a({className:R("px-4 py-2 text-xs font-semibold text-muted-foreground",e)},o)):n(x,a({className:e},o))};H.displayName="DropdownMenuResponsiveLabel";var I=s=>{var t=s,{className:e}=t,o=i(t,["className"]);let{isTouch:r}=d();return r?n("hr",{className:R("my-1 border-muted",e)}):n(g,a({className:e},o))};I.displayName="DropdownMenuResponsiveSeparator";var W=p.forwardRef((t,s)=>{var r=t,{children:e}=r,o=i(r,["children"]);let{isTouch:u}=d();return u?n(D,w(a({ref:s},o),{children:e})):n(S,{children:e})});W.displayName="DropdownMenuResponsiveClose";export{d as a,b,P as c,L as d,E as e,H as f,I as g,W as h};
2
+ //# sourceMappingURL=chunk-A4EVMSOO.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/dropdown-menu-responsive/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/dropdown-menu\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerTrigger,\n} from \"@/components/drawer\";\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\nimport { cn } from \"@/lib/utils\";\n\ntype DropdownMenuResponsiveContextType = {\n isTouch: boolean;\n};\n\nconst DropdownMenuResponsiveContext =\n React.createContext<DropdownMenuResponsiveContextType>({\n isTouch: false,\n });\n\nconst useDropdownMenuResponsive = () =>\n React.useContext(DropdownMenuResponsiveContext);\n\ntype DropdownMenuResponsiveProps = {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nconst DropdownMenuResponsive = ({\n children,\n open,\n onOpenChange,\n}: DropdownMenuResponsiveProps) => {\n const isTouch = useIsTouchDevice();\n\n const contextValue = React.useMemo(() => ({ isTouch }), [isTouch]);\n\n if (isTouch) {\n return (\n <DropdownMenuResponsiveContext.Provider value={contextValue}>\n <Drawer open={open} onOpenChange={onOpenChange}>\n {children}\n </Drawer>\n </DropdownMenuResponsiveContext.Provider>\n );\n }\n\n return (\n <DropdownMenuResponsiveContext.Provider value={contextValue}>\n <DropdownMenu open={open} onOpenChange={onOpenChange}>\n {children}\n </DropdownMenu>\n </DropdownMenuResponsiveContext.Provider>\n );\n};\nDropdownMenuResponsive.displayName = \"DropdownMenuResponsive\";\n\nconst DropdownMenuResponsiveTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuTrigger>\n>(({ className, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n const Comp = isTouch ? DrawerTrigger : DropdownMenuTrigger;\n\n return <Comp ref={ref} className={className} {...props} />;\n});\nDropdownMenuResponsiveTrigger.displayName = \"DropdownMenuResponsiveTrigger\";\n\nconst DropdownMenuResponsiveContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuContent>\n>(({ className, children, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerContent ref={ref} className={className}>\n <div className=\"pb-safe flex flex-col\">{children}</div>\n </DrawerContent>\n );\n }\n\n return (\n <DropdownMenuContent ref={ref} className={className} {...props}>\n {children}\n </DropdownMenuContent>\n );\n});\nDropdownMenuResponsiveContent.displayName = \"DropdownMenuResponsiveContent\";\n\nconst DropdownMenuResponsiveItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DropdownMenuItem>\n>(({ className, children, onClick, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerClose asChild>\n <button\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 text-sm transition-colors hover:bg-accent focus:outline-none\",\n className,\n )}\n onClick={\n onClick as unknown as React.MouseEventHandler<HTMLButtonElement>\n }\n >\n {children}\n </button>\n </DrawerClose>\n );\n }\n\n return (\n <DropdownMenuItem\n ref={ref}\n className={className}\n onClick={onClick}\n {...props}\n >\n {children}\n </DropdownMenuItem>\n );\n});\nDropdownMenuResponsiveItem.displayName = \"DropdownMenuResponsiveItem\";\n\nconst DropdownMenuResponsiveLabel = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuLabel>) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <div\n className={cn(\n \"px-4 py-2 text-xs font-semibold text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n }\n\n return <DropdownMenuLabel className={className} {...props} />;\n};\nDropdownMenuResponsiveLabel.displayName = \"DropdownMenuResponsiveLabel\";\n\nconst DropdownMenuResponsiveSeparator = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuSeparator>) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return <hr className={cn(\"my-1 border-muted\", className)} />;\n }\n\n return <DropdownMenuSeparator className={className} {...props} />;\n};\nDropdownMenuResponsiveSeparator.displayName = \"DropdownMenuResponsiveSeparator\";\n\nconst DropdownMenuResponsiveClose = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DrawerClose>\n>(({ children, ...props }, ref) => {\n const { isTouch } = useDropdownMenuResponsive();\n\n if (isTouch) {\n return (\n <DrawerClose ref={ref} {...props}>\n {children}\n </DrawerClose>\n );\n }\n\n return <>{children}</>;\n});\nDropdownMenuResponsiveClose.displayName = \"DropdownMenuResponsiveClose\";\n\nexport {\n DropdownMenuResponsive,\n DropdownMenuResponsiveTrigger,\n DropdownMenuResponsiveContent,\n DropdownMenuResponsiveItem,\n DropdownMenuResponsiveLabel,\n DropdownMenuResponsiveSeparator,\n DropdownMenuResponsiveClose,\n useDropdownMenuResponsive,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "Fragment", "jsx", "DropdownMenuResponsiveContext", "useDropdownMenuResponsive", "DropdownMenuResponsive", "children", "open", "onOpenChange", "isTouch", "useIsTouchDevice", "contextValue", "Drawer", "DropdownMenu", "DropdownMenuResponsiveTrigger", "_a", "ref", "_b", "className", "props", "__objRest", "DrawerTrigger", "DropdownMenuTrigger", "__spreadValues", "DropdownMenuResponsiveContent", "DrawerContent", "DropdownMenuContent", "__spreadProps", "DropdownMenuResponsiveItem", "onClick", "DrawerClose", "cn", "DropdownMenuItem", "DropdownMenuResponsiveLabel", "DropdownMenuLabel", "DropdownMenuResponsiveSeparator", "DropdownMenuSeparator", "DropdownMenuResponsiveClose"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as r}from"./chunk-WIFBPNRH.js";import{a as e,c as o}from"./chunk-WHECA25N.js";import*as n from"react";import{Slot as p}from"radix-ui";import{cva as v}from"class-variance-authority";import{jsx as f}from"react/jsx-runtime";var g=v("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground","destructive-outline":"border border-input bg-background text-destructive shadow-sm hover:bg-destructive/5",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 px-3 text-xs",lg:"h-10 px-8",xl:"h-14 px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),b=n.forwardRef((m,c)=>{var t=m,{className:s,variant:i,size:a,asChild:d=!1}=t,u=o(t,["className","variant","size","asChild"]);let l=d?p.Slot:"button";return f(l,e({className:r(g({variant:i,size:a,className:s})),ref:c},u))});b.displayName="Button";export{g as a,b};
2
+ //# sourceMappingURL=chunk-BF3VTYEM.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/button/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n \"destructive-outline\":\n \"border border-input bg-background text-destructive shadow-sm hover:bg-destructive/5\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 px-3 text-xs\",\n lg: \"h-10 px-8\",\n xl: \"h-14 px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type ButtonProps = {\n asChild?: boolean;\n} & React.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QACvB,OAAS,QAAQC,MAAqB,WACtC,OAAS,OAAAC,MAA8B,2BA8CjC,cAAAC,MAAA,oBA1CN,IAAMC,EAAiBC,EACrB,wSACA,CACE,SAAU,CACR,QAAS,CACP,QACE,gEACF,YACE,+EACF,QACE,2FACF,sBACE,sFACF,UACE,yEACF,MAAO,+CACP,KAAM,iDACR,EACA,KAAM,CACJ,QAAS,gBACT,GAAI,mBACJ,GAAI,YACJ,GAAI,YACJ,KAAM,SACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAOMC,EAAe,aACnB,CAACC,EAAyDC,IAAQ,CAAjE,IAAAC,EAAAF,EAAE,WAAAG,EAAW,QAAAC,EAAS,KAAAC,EAAM,QAAAC,EAAU,EA7CzC,EA6CGJ,EAAgDK,EAAAC,EAAhDN,EAAgD,CAA9C,YAAW,UAAS,OAAM,YAC3B,IAAMO,EAAOH,EAAUI,EAAc,KAAO,SAC5C,OACEd,EAACa,EAAAE,EAAA,CACC,UAAWC,EAAGf,EAAe,CAAE,QAAAO,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,CAAC,EAC1D,IAAKF,GACDM,EACN,CAEJ,CACF,EACAR,EAAO,YAAc",
6
+ "names": ["React", "SlotPrimitive", "cva", "jsx", "buttonVariants", "cva", "Button", "_a", "ref", "_b", "className", "variant", "size", "asChild", "props", "__objRest", "Comp", "SlotPrimitive", "__spreadValues", "cn"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as n}from"./chunk-WIFBPNRH.js";import{a as c,b as d,c as s}from"./chunk-WHECA25N.js";import*as m from"react";import{Select as e}from"radix-ui";import{CheckIcon as v,ChevronDownIcon as S,ChevronUpIcon as g}from"lucide-react";import{jsx as t,jsxs as f}from"react/jsx-runtime";var B=e.Root,T=e.Group,D=e.Value,w=m.forwardRef((a,l)=>{var p=a,{className:r,children:i}=p,o=s(p,["className","children"]);return f(e.Trigger,d(c({ref:l,className:n("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1",r)},o),{children:[i,t(e.Icon,{asChild:!0,children:t(S,{className:"h-4 w-4 opacity-50"})})]}))});w.displayName=e.Trigger.displayName;var y=m.forwardRef((l,o)=>{var a=l,{className:r}=a,i=s(a,["className"]);return t(e.ScrollUpButton,d(c({ref:o,className:n("flex cursor-default items-center justify-center py-1",r)},i),{children:t(g,{className:"h-4 w-4"})}))});y.displayName=e.ScrollUpButton.displayName;var R=m.forwardRef((l,o)=>{var a=l,{className:r}=a,i=s(a,["className"]);return t(e.ScrollDownButton,d(c({ref:o,className:n("flex cursor-default items-center justify-center py-1",r)},i),{children:t(S,{className:"h-4 w-4"})}))});R.displayName=e.ScrollDownButton.displayName;var h=m.forwardRef((p,a)=>{var u=p,{className:r,children:i,position:o="popper"}=u,l=s(u,["className","children","position"]);return t(e.Portal,{children:f(e.Content,d(c({ref:a,className:n("relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] origin-[--radix-select-content-transform-origin] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",r),position:o},l),{children:[t(y,{}),t(e.Viewport,{className:n("p-1",o==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:i}),t(R,{})]}))})});h.displayName=e.Content.displayName;var P=m.forwardRef((l,o)=>{var a=l,{className:r}=a,i=s(a,["className"]);return t(e.Label,c({ref:o,className:n("px-2 py-1.5 text-sm font-semibold",r)},i))});P.displayName=e.Label.displayName;var N=m.forwardRef((a,l)=>{var p=a,{className:r,children:i}=p,o=s(p,["className","children"]);return f(e.Item,d(c({ref:l,className:n("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r)},o),{children:[t("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:t(e.ItemIndicator,{children:t(v,{className:"h-4 w-4"})})}),t(e.ItemText,{children:i})]}))});N.displayName=e.Item.displayName;var x=m.forwardRef((l,o)=>{var a=l,{className:r}=a,i=s(a,["className"]);return t(e.Separator,c({ref:o,className:n("-mx-1 my-1 h-px bg-muted",r)},i))});x.displayName=e.Separator.displayName;export{B as a,T as b,D as c,w as d,y as e,R as f,h as g,P as h,N as i,x as j};
2
+ //# sourceMappingURL=chunk-BJWILCTE.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/select/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] origin-[--radix-select-content-transform-origin] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "SelectPrimitive", "CheckIcon", "ChevronDownIcon", "ChevronUpIcon", "jsx", "jsxs", "Select", "SelectPrimitive", "SelectGroup", "SelectValue", "SelectTrigger", "_a", "ref", "_b", "className", "children", "props", "__objRest", "__spreadProps", "__spreadValues", "cn", "ChevronDownIcon", "SelectScrollUpButton", "ChevronUpIcon", "SelectScrollDownButton", "SelectContent", "position", "SelectLabel", "SelectItem", "CheckIcon", "SelectSeparator"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as r}from"./chunk-WIFBPNRH.js";import{a as e,c as a}from"./chunk-WHECA25N.js";import*as n from"react";import{Popover as o}from"radix-ui";import{jsx as i}from"react/jsx-runtime";var g=o.Root,R=o.Trigger,h=o.Anchor,l=n.forwardRef((c,f)=>{var t=c,{className:d,align:p="center",sideOffset:s=4}=t,m=a(t,["className","align","sideOffset"]);return i(o.Portal,{children:i(o.Content,e({ref:f,align:p,sideOffset:s,className:r("z-50 w-72 origin-[--radix-popover-content-transform-origin] rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",d)},m))})});l.displayName=o.Content.displayName;export{g as a,R as b,h as c,l as d};
2
+ //# sourceMappingURL=chunk-BY3UM6EV.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/popover/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 origin-[--radix-popover-content-transform-origin] rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QACvB,OAAS,WAAWC,MAAwB,WAexC,cAAAC,MAAA,oBAXJ,IAAMC,EAAUC,EAAiB,KAE3BC,EAAiBD,EAAiB,QAElCE,EAAgBF,EAAiB,OAEjCG,EAAuB,aAG3B,CAACC,EAA2DC,IAAK,CAAhE,IAAAC,EAAAF,EAAE,WAAAG,EAAW,MAAAC,EAAQ,SAAU,WAAAC,EAAa,CAd/C,EAcGH,EAAkDI,EAAAC,EAAlDL,EAAkD,CAAhD,YAAW,QAAkB,eAChC,OAAAR,EAACE,EAAiB,OAAjB,CACC,SAAAF,EAACE,EAAiB,QAAjBY,EAAA,CACC,IAAKP,EACL,MAAOG,EACP,WAAYC,EACZ,UAAWI,EACT,+dACAN,CACF,GACIG,EACN,EACF,EACD,EACDP,EAAe,YAAcH,EAAiB,QAAQ",
6
+ "names": ["React", "PopoverPrimitive", "jsx", "Popover", "PopoverPrimitive", "PopoverTrigger", "PopoverAnchor", "PopoverContent", "_a", "ref", "_b", "className", "align", "sideOffset", "props", "__objRest", "__spreadValues", "cn"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as C,b as T,i as y,j as h,m as x,n as g}from"./chunk-VIGX5NKJ.js";import{a as l,b as f,d as D,g as M}from"./chunk-7EVFMYIH.js";import{a as v}from"./chunk-46MFR2CI.js";import{a as R}from"./chunk-WIFBPNRH.js";import{a,b as w,c as i}from"./chunk-WHECA25N.js";import*as p from"react";import{Fragment as S,jsx as n}from"react/jsx-runtime";var m=p.createContext({isTouch:!1}),d=()=>p.useContext(m),b=({children:e,open:o,onOpenChange:s})=>{let t=v(),r=p.useMemo(()=>({isTouch:t}),[t]);return t?n(m.Provider,{value:r,children:n(l,{open:o,onOpenChange:s,children:e})}):n(m.Provider,{value:r,children:n(C,{open:o,onOpenChange:s,children:e})})};b.displayName="DropdownMenuResponsive";var P=p.forwardRef((t,s)=>{var r=t,{className:e}=r,o=i(r,["className"]);let{isTouch:u}=d();return n(u?f:T,a({ref:s,className:e},o))});P.displayName="DropdownMenuResponsiveTrigger";var L=p.forwardRef((r,t)=>{var u=r,{className:e,children:o}=u,s=i(u,["className","children"]);let{isTouch:c}=d();return c?n(M,{ref:t,className:e,children:n("div",{className:"pb-safe flex flex-col",children:o})}):n(y,w(a({ref:t,className:e},s),{children:o}))});L.displayName="DropdownMenuResponsiveContent";var E=p.forwardRef((u,r)=>{var c=u,{className:e,children:o,onClick:s}=c,t=i(c,["className","children","onClick"]);let{isTouch:N}=d();return N?n(D,{asChild:!0,children:n("button",{className:R("flex w-full items-center gap-2 px-4 py-3 text-sm transition-colors hover:bg-accent focus:outline-none",e),onClick:s,children:o})}):n(h,w(a({ref:r,className:e,onClick:s},t),{children:o}))});E.displayName="DropdownMenuResponsiveItem";var H=s=>{var t=s,{className:e}=t,o=i(t,["className"]);let{isTouch:r}=d();return r?n("div",a({className:R("px-4 py-2 text-xs font-semibold text-muted-foreground",e)},o)):n(x,a({className:e},o))};H.displayName="DropdownMenuResponsiveLabel";var I=s=>{var t=s,{className:e}=t,o=i(t,["className"]);let{isTouch:r}=d();return r?n("hr",{className:R("my-1 border-muted",e)}):n(g,a({className:e},o))};I.displayName="DropdownMenuResponsiveSeparator";var W=p.forwardRef((t,s)=>{var r=t,{children:e}=r,o=i(r,["children"]);let{isTouch:u}=d();return u?n(D,w(a({ref:s},o),{children:e})):n(S,{children:e})});W.displayName="DropdownMenuResponsiveClose";export{d as a,b,P as c,L as d,E as e,H as f,I as g,W as h};
2
+ //# sourceMappingURL=chunk-C6BWVSUV.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/dropdown-menu-responsive/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from \"@/components/dropdown-menu\";\r\nimport {\r\n Drawer,\r\n DrawerClose,\r\n DrawerContent,\r\n DrawerTrigger,\r\n} from \"@/components/drawer\";\r\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\ntype DropdownMenuResponsiveContextType = {\r\n isTouch: boolean;\r\n};\r\n\r\nconst DropdownMenuResponsiveContext =\r\n React.createContext<DropdownMenuResponsiveContextType>({\r\n isTouch: false,\r\n });\r\n\r\nconst useDropdownMenuResponsive = () =>\r\n React.useContext(DropdownMenuResponsiveContext);\r\n\r\ntype DropdownMenuResponsiveProps = {\r\n children: React.ReactNode;\r\n open?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n};\r\n\r\nconst DropdownMenuResponsive = ({\r\n children,\r\n open,\r\n onOpenChange,\r\n}: DropdownMenuResponsiveProps) => {\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 <DropdownMenuResponsiveContext.Provider value={contextValue}>\r\n <Drawer open={open} onOpenChange={onOpenChange}>\r\n {children}\r\n </Drawer>\r\n </DropdownMenuResponsiveContext.Provider>\r\n );\r\n }\r\n\r\n return (\r\n <DropdownMenuResponsiveContext.Provider value={contextValue}>\r\n <DropdownMenu open={open} onOpenChange={onOpenChange}>\r\n {children}\r\n </DropdownMenu>\r\n </DropdownMenuResponsiveContext.Provider>\r\n );\r\n};\r\nDropdownMenuResponsive.displayName = \"DropdownMenuResponsive\";\r\n\r\nconst DropdownMenuResponsiveTrigger = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuTrigger>\r\n>(({ className, ...props }, ref) => {\r\n const { isTouch } = useDropdownMenuResponsive();\r\n const Comp = isTouch ? DrawerTrigger : DropdownMenuTrigger;\r\n\r\n return <Comp ref={ref} className={className} {...props} />;\r\n});\r\nDropdownMenuResponsiveTrigger.displayName = \"DropdownMenuResponsiveTrigger\";\r\n\r\nconst DropdownMenuResponsiveContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuContent>\r\n>(({ className, children, ...props }, ref) => {\r\n const { isTouch } = useDropdownMenuResponsive();\r\n\r\n if (isTouch) {\r\n return (\r\n <DrawerContent ref={ref} className={className}>\r\n <div className=\"pb-safe flex flex-col\">{children}</div>\r\n </DrawerContent>\r\n );\r\n }\r\n\r\n return (\r\n <DropdownMenuContent ref={ref} className={className} {...props}>\r\n {children}\r\n </DropdownMenuContent>\r\n );\r\n});\r\nDropdownMenuResponsiveContent.displayName = \"DropdownMenuResponsiveContent\";\r\n\r\nconst DropdownMenuResponsiveItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuItem>\r\n>(({ className, children, onClick, ...props }, ref) => {\r\n const { isTouch } = useDropdownMenuResponsive();\r\n\r\n if (isTouch) {\r\n return (\r\n <DrawerClose asChild>\r\n <button\r\n className={cn(\r\n \"flex w-full items-center gap-2 px-4 py-3 text-sm transition-colors hover:bg-accent focus:outline-none\",\r\n className,\r\n )}\r\n onClick={\r\n onClick as unknown as React.MouseEventHandler<HTMLButtonElement>\r\n }\r\n >\r\n {children}\r\n </button>\r\n </DrawerClose>\r\n );\r\n }\r\n\r\n return (\r\n <DropdownMenuItem\r\n ref={ref}\r\n className={className}\r\n onClick={onClick}\r\n {...props}\r\n >\r\n {children}\r\n </DropdownMenuItem>\r\n );\r\n});\r\nDropdownMenuResponsiveItem.displayName = \"DropdownMenuResponsiveItem\";\r\n\r\nconst DropdownMenuResponsiveLabel = ({\r\n className,\r\n ...props\r\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuLabel>) => {\r\n const { isTouch } = useDropdownMenuResponsive();\r\n\r\n if (isTouch) {\r\n return (\r\n <div\r\n className={cn(\r\n \"px-4 py-2 text-xs font-semibold text-muted-foreground\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n }\r\n\r\n return <DropdownMenuLabel className={className} {...props} />;\r\n};\r\nDropdownMenuResponsiveLabel.displayName = \"DropdownMenuResponsiveLabel\";\r\n\r\nconst DropdownMenuResponsiveSeparator = ({\r\n className,\r\n ...props\r\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuSeparator>) => {\r\n const { isTouch } = useDropdownMenuResponsive();\r\n\r\n if (isTouch) {\r\n return <hr className={cn(\"my-1 border-muted\", className)} />;\r\n }\r\n\r\n return <DropdownMenuSeparator className={className} {...props} />;\r\n};\r\nDropdownMenuResponsiveSeparator.displayName = \"DropdownMenuResponsiveSeparator\";\r\n\r\nconst DropdownMenuResponsiveClose = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentPropsWithoutRef<typeof DrawerClose>\r\n>(({ children, ...props }, ref) => {\r\n const { isTouch } = useDropdownMenuResponsive();\r\n\r\n if (isTouch) {\r\n return (\r\n <DrawerClose ref={ref} {...props}>\r\n {children}\r\n </DrawerClose>\r\n );\r\n }\r\n\r\n return <>{children}</>;\r\n});\r\nDropdownMenuResponsiveClose.displayName = \"DropdownMenuResponsiveClose\";\r\n\r\nexport {\r\n DropdownMenuResponsive,\r\n DropdownMenuResponsiveTrigger,\r\n DropdownMenuResponsiveContent,\r\n DropdownMenuResponsiveItem,\r\n DropdownMenuResponsiveLabel,\r\n DropdownMenuResponsiveSeparator,\r\n DropdownMenuResponsiveClose,\r\n useDropdownMenuResponsive,\r\n};\r\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "Fragment", "jsx", "DropdownMenuResponsiveContext", "useDropdownMenuResponsive", "DropdownMenuResponsive", "children", "open", "onOpenChange", "isTouch", "useIsTouchDevice", "contextValue", "Drawer", "DropdownMenu", "DropdownMenuResponsiveTrigger", "_a", "ref", "_b", "className", "props", "__objRest", "DrawerTrigger", "DropdownMenuTrigger", "__spreadValues", "DropdownMenuResponsiveContent", "DrawerContent", "DropdownMenuContent", "__spreadProps", "DropdownMenuResponsiveItem", "onClick", "DrawerClose", "cn", "DropdownMenuItem", "DropdownMenuResponsiveLabel", "DropdownMenuLabel", "DropdownMenuResponsiveSeparator", "DropdownMenuSeparator", "DropdownMenuResponsiveClose"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as s}from"./chunk-WIFBPNRH.js";import{a as d,c as i}from"./chunk-WHECA25N.js";import*as o from"react";import{jsx as c}from"react/jsx-runtime";var n=o.forwardRef((l,r)=>{var e=l,{className:t}=e,a=i(e,["className"]);return c("div",d({ref:r,className:s("rounded-xl border bg-card text-card-foreground shadow",t)},a))});n.displayName="Card";var m=o.forwardRef((l,r)=>{var e=l,{className:t}=e,a=i(e,["className"]);return c("div",d({ref:r,className:s("flex flex-col space-y-1.5 p-6",t)},a))});m.displayName="CardHeader";var f=o.forwardRef((l,r)=>{var e=l,{className:t}=e,a=i(e,["className"]);return c("div",d({ref:r,className:s("font-semibold leading-none tracking-tight",t)},a))});f.displayName="CardTitle";var H=o.forwardRef((l,r)=>{var e=l,{className:t}=e,a=i(e,["className"]);return c("div",d({ref:r,className:s("text-sm text-muted-foreground",t)},a))});H.displayName="CardDescription";var T=o.forwardRef((l,r)=>{var e=l,{className:t}=e,a=i(e,["className"]);return c("div",d({ref:r,className:s("p-6 pt-0",t)},a))});T.displayName="CardContent";var R=o.forwardRef((l,r)=>{var e=l,{className:t}=e,a=i(e,["className"]);return c("div",d({ref:r,className:s("flex items-center p-6 pt-0",t)},a))});R.displayName="CardFooter";export{n as a,m as b,f as c,H as d,T as e,R as f};
2
+ //# sourceMappingURL=chunk-CALZEY6V.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/card/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QAQrB,cAAAC,MAAA,oBAJF,IAAMC,EAAa,aAGjB,CAACC,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAPL,EAOGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,MAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EACT,wDACAJ,CACF,GACIC,EACN,EACD,EACDL,EAAK,YAAc,OAEnB,IAAMS,EAAmB,aAGvB,CAACR,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAtBL,EAsBGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,MAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EAAG,gCAAiCJ,CAAS,GACpDC,EACN,EACD,EACDI,EAAW,YAAc,aAEzB,IAAMC,EAAkB,aAGtB,CAACT,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAlCL,EAkCGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,MAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EAAG,4CAA6CJ,CAAS,GAChEC,EACN,EACD,EACDK,EAAU,YAAc,YAExB,IAAMC,EAAwB,aAG5B,CAACV,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CA9CL,EA8CGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,MAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EAAG,gCAAiCJ,CAAS,GACpDC,EACN,EACD,EACDM,EAAgB,YAAc,kBAE9B,IAAMC,EAAoB,aAGxB,CAACX,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CA1DL,EA0DGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,MAAAQ,EAAA,CAAI,IAAKL,EAAK,UAAWM,EAAG,WAAYJ,CAAS,GAAOC,EAAO,EACjE,EACDO,EAAY,YAAc,cAE1B,IAAMC,EAAmB,aAGvB,CAACZ,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAlEL,EAkEGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,MAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EAAG,6BAA8BJ,CAAS,GACjDC,EACN,EACD,EACDQ,EAAW,YAAc",
6
+ "names": ["React", "jsx", "Card", "_a", "ref", "_b", "className", "props", "__objRest", "__spreadValues", "cn", "CardHeader", "CardTitle", "CardDescription", "CardContent", "CardFooter"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as p}from"./chunk-WIFBPNRH.js";import{a as s,b as f,c as i}from"./chunk-WHECA25N.js";import*as o from"react";import{OTPInput as v,OTPInputContext as P}from"input-otp";import{MinusIcon as I}from"lucide-react";import{jsx as n,jsxs as h}from"react/jsx-runtime";var O=o.forwardRef((m,c)=>{var r=m,{className:e,containerClassName:t}=r,a=i(r,["className","containerClassName"]);return n(v,s({ref:c,containerClassName:p("flex items-center gap-2 has-[:disabled]:opacity-50",t),className:p("disabled:cursor-not-allowed",e)},a))});O.displayName="InputOTP";var T=o.forwardRef((c,a)=>{var m=c,{className:e}=m,t=i(m,["className"]);return n("div",s({ref:a,className:p("flex items-center gap-2",e)},t))});T.displayName="InputOTPGroup";var x=o.forwardRef((m,c)=>{var r=m,{index:e,className:t}=r,a=i(r,["index","className"]);let d=o.useContext(P),{char:l,hasFakeCaret:u,isActive:R}=d.slots[e];return h("div",f(s({ref:c,className:p("relative flex h-10 w-10 items-center justify-center rounded-sm border border-input py-6 text-sm font-normal shadow-sm transition-all sm:w-12 sm:text-lg",R&&"z-10 ring-2 ring-primary ring-offset-2",t)},a),{children:[l,u&&n("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:n("div",{className:"animate-caret-blink h-4 w-px bg-foreground duration-1000"})})]}))});x.displayName="InputOTPSlot";var y=o.forwardRef((a,t)=>{var e=i(a,[]);return n("div",f(s({ref:t,role:"separator"},e),{children:n(I,{})}))});y.displayName="InputOTPSeparator";export{O as a,T as b,x as c,y as d};
2
+ //# sourceMappingURL=chunk-CF236UZ4.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/input-otp/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { cn } from \"@/lib/utils\";\nimport { MinusIcon } from \"lucide-react\";\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n));\nInputOTP.displayName = \"InputOTP\";\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n));\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 items-center justify-center rounded-sm border border-input py-6 text-sm font-normal shadow-sm transition-all sm:w-12 sm:text-lg\",\n isActive && \"z-10 ring-2 ring-primary ring-offset-2\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink h-4 w-px bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n));\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],
5
+ "mappings": "8FAAA,UAAYA,MAAW,QACvB,OAAS,YAAAC,EAAU,mBAAAC,MAAuB,YAE1C,OAAS,aAAAC,MAAiB,eAMxB,cAAAC,EAgCE,QAAAC,MAhCF,oBAJF,IAAMC,EAAiB,aAGrB,CAACC,EAA6CC,IAAK,CAAlD,IAAAC,EAAAF,EAAE,WAAAG,EAAW,mBAAAC,CARhB,EAQGF,EAAoCG,EAAAC,EAApCJ,EAAoC,CAAlC,YAAW,uBACd,OAAAL,EAACU,EAAAC,EAAA,CACC,IAAKP,EACL,mBAAoBQ,EAClB,qDACAL,CACF,EACA,UAAWK,EAAG,8BAA+BN,CAAS,GAClDE,EACN,EACD,EACDN,EAAS,YAAc,WAEvB,IAAMW,EAAsB,aAG1B,CAACV,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAxBL,EAwBGD,EAAgBG,EAAAC,EAAhBJ,EAAgB,CAAd,cACH,OAAAL,EAAC,MAAAW,EAAA,CACC,IAAKP,EACL,UAAWQ,EAAG,0BAA2BN,CAAS,GAC9CE,EACN,EACD,EACDK,EAAc,YAAc,gBAE5B,IAAMC,EAAqB,aAGzB,CAACX,EAAgCC,IAAQ,CAAxC,IAAAC,EAAAF,EAAE,OAAAY,EAAO,UAAAT,CApCZ,EAoCGD,EAAuBG,EAAAC,EAAvBJ,EAAuB,CAArB,QAAO,cACV,IAAMW,EAAwB,aAAWC,CAAe,EAClD,CAAE,KAAAC,EAAM,aAAAC,EAAc,SAAAC,CAAS,EAAIJ,EAAgB,MAAMD,CAAK,EAEpE,OACEd,EAAC,MAAAoB,EAAAV,EAAA,CACC,IAAKP,EACL,UAAWQ,EACT,0JACAQ,GAAY,yCACZd,CACF,GACIE,GAPL,CASE,UAAAU,EACAC,GACCnB,EAAC,OAAI,UAAU,wEACb,SAAAA,EAAC,OAAI,UAAU,2DAA2D,EAC5E,IAEJ,CAEJ,CAAC,EACDc,EAAa,YAAc,eAE3B,IAAMQ,EAA0B,aAG9B,CAACnB,EAAcC,IAAK,CAAnB,IAAKI,EAAAC,EAALN,EAAK,IACN,OAAAH,EAAC,MAAAqB,EAAAV,EAAA,CAAI,IAAKP,EAAK,KAAK,aAAgBI,GAAnC,CACC,SAAAR,EAACuB,EAAA,EAAU,GACb,EACD,EACDD,EAAkB,YAAc",
6
+ "names": ["React", "OTPInput", "OTPInputContext", "MinusIcon", "jsx", "jsxs", "InputOTP", "_a", "ref", "_b", "className", "containerClassName", "props", "__objRest", "OTPInput", "__spreadValues", "cn", "InputOTPGroup", "InputOTPSlot", "index", "inputOTPContext", "OTPInputContext", "char", "hasFakeCaret", "isActive", "__spreadProps", "InputOTPSeparator", "MinusIcon"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as P}from"./chunk-7TYPESVD.js";import{a as c}from"./chunk-WIFBPNRH.js";import{a as l,b as x,c as d}from"./chunk-WHECA25N.js";import*as o from"react";import{Slot as y}from"radix-ui";import{Controller as C,FormProvider as V,useFormContext as v}from"react-hook-form";import{jsx as n}from"react/jsx-runtime";var D=i=>{var s=i,{children:t}=s,a=d(s,["children"]);let{setFocus:r,formState:{errors:e}}=a;return o.useEffect(()=>{let m=Object.keys(e).reduce((p,f)=>{let F=p;return e[F]?F:f},null);m&&r(m)},[e,r]),n(V,x(l({},a),{children:t}))},R=o.createContext({}),$=a=>{var t=d(a,[]);return n(R.Provider,{value:{name:t.name},children:n(C,l({},t))})},u=()=>{let t=o.useContext(R),a=o.useContext(T),{getFieldState:i,formState:s}=v(),r=i(t.name,s);if(!t)throw new Error("useFormField should be used within <FormField>");let{id:e}=a;return l({id:e,name:t.name,formItemId:`${e}-form-item`,formDescriptionId:`${e}-form-item-description`,formMessageId:`${e}-form-item-message`},r)},T=o.createContext({}),I=o.forwardRef((s,i)=>{var r=s,{className:t}=r,a=d(r,["className"]);let e=o.useId();return n(T.Provider,{value:{id:e},children:n("div",l({ref:i,className:c("space-y-2",t)},a))})});I.displayName="FormItem";var b=o.forwardRef((s,i)=>{var r=s,{className:t}=r,a=d(r,["className"]);let{error:e,formItemId:m}=u();return n(P,l({ref:i,className:c(e&&"text-destructive",t),htmlFor:m},a))});b.displayName="FormLabel";var h=o.forwardRef((i,a)=>{var t=d(i,[]);let{error:s,formItemId:r,formDescriptionId:e,formMessageId:m}=u();return n(y.Slot,l({ref:a,id:r,"aria-describedby":s?`${e} ${m}`:`${e}`,"aria-invalid":!!s},t))});h.displayName="FormControl";var L=o.forwardRef((s,i)=>{var r=s,{className:t}=r,a=d(r,["className"]);let{formDescriptionId:e}=u();return n("p",l({ref:i,id:e,className:c("text-[0.8rem] text-muted-foreground",t)},a))});L.displayName="FormDescription";var g=o.forwardRef((r,s)=>{var e=r,{className:t,children:a}=e,i=d(e,["className","children"]);var F;let{error:m,formMessageId:p}=u(),f=m?String((F=m==null?void 0:m.message)!=null?F:""):a;return f?n("p",x(l({ref:s,id:p,className:c("text-[0.8rem] font-medium text-destructive",t)},i),{children:f})):null});g.displayName="FormMessage";export{D as a,$ as b,u as c,I as d,b as e,h as f,L as g,g as h};
2
+ //# sourceMappingURL=chunk-DBMJIVTY.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/form/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Label as LabelPrimitive, Slot as SlotPrimitive } from \"radix-ui\";\n\nimport {\n Controller,\n FormProvider,\n FormProviderProps,\n useFormContext,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"@/components/label\";\n\nconst Form = <\n TFieldValues extends FieldValues,\n TContext = object,\n TTransformedValues extends FieldValues | undefined = undefined,\n>({\n children,\n ...props\n}: FormProviderProps<TFieldValues, TContext, TTransformedValues>) => {\n const {\n setFocus,\n formState: { errors },\n } = props;\n\n React.useEffect(() => {\n const firstError = (\n Object.keys(errors) as Array<keyof typeof errors>\n ).reduce<keyof typeof errors | null>((field, a) => {\n const fieldKey = field as keyof typeof errors;\n return !!errors[fieldKey] ? fieldKey : a;\n }, null);\n\n if (firstError) {\n setFocus(firstError as FieldPath<TFieldValues>);\n }\n }, [errors, setFocus]);\n\n return <FormProvider {...props}>{children}</FormProvider>;\n};\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof SlotPrimitive.Slot>,\n React.ComponentPropsWithoutRef<typeof SlotPrimitive.Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <SlotPrimitive.Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-[0.8rem] text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-[0.8rem] font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "SlotPrimitive", "Controller", "FormProvider", "useFormContext", "jsx", "Form", "_a", "_b", "children", "props", "__objRest", "setFocus", "errors", "firstError", "field", "a", "fieldKey", "FormProvider", "__spreadProps", "__spreadValues", "FormFieldContext", "FormField", "Controller", "useFormField", "fieldContext", "itemContext", "FormItemContext", "getFieldState", "formState", "useFormContext", "fieldState", "id", "FormItem", "ref", "className", "cn", "FormLabel", "error", "formItemId", "Label", "FormControl", "formDescriptionId", "formMessageId", "SlotPrimitive", "FormDescription", "FormMessage", "body"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as b}from"./chunk-WIFBPNRH.js";import{a as o,c as r}from"./chunk-WHECA25N.js";import*as s from"react";import{jsx as T}from"react/jsx-runtime";var m=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("div",{className:"relative w-full overflow-auto",children:T("table",o({ref:l,className:b("w-full caption-bottom text-sm",t)},a))})});m.displayName="Table";var d=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("thead",o({ref:l,className:b("[&_tr]:border-b",t)},a))});d.displayName="TableHeader";var n=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("tbody",o({ref:l,className:b("[&_tr:last-child]:border-0",t)},a))});n.displayName="TableBody";var i=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("tfoot",o({ref:l,className:b("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t)},a))});i.displayName="TableFooter";var f=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("tr",o({ref:l,className:b("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t)},a))});f.displayName="TableRow";var R=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("th",o({ref:l,className:b("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t)},a))});R.displayName="TableHead";var H=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("td",o({ref:l,className:b("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t)},a))});H.displayName="TableCell";var L=s.forwardRef((c,l)=>{var e=c,{className:t}=e,a=r(e,["className"]);return T("caption",o({ref:l,className:b("mt-4 text-sm text-muted-foreground",t)},a))});L.displayName="TableCaption";export{m as a,d as b,n as c,i as d,f as e,R as f,H as g,L as h};
2
+ //# sourceMappingURL=chunk-DCPZZOJQ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/table/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\n </div>\n ),\n)\nTable.displayName = 'Table'\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n))\nTableHeader.displayName = 'TableHeader'\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n))\nTableBody.displayName = 'TableBody'\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n))\nTableFooter.displayName = 'TableFooter'\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n ),\n)\nTableRow.displayName = 'TableRow'\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n))\nTableHead.displayName = 'TableHead'\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n))\nTableCell.displayName = 'TableCell'\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n))\nTableCaption.displayName = 'TableCaption'\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QAOjB,cAAAC,MAAA,oBAHN,IAAMC,EAAc,aAClB,CAACC,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CALL,EAKGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACD,OAAAJ,EAAC,OAAI,UAAU,gCACb,SAAAA,EAAC,QAAAQ,EAAA,CAAM,IAAKL,EAAK,UAAWM,EAAG,gCAAiCJ,CAAS,GAAOC,EAAO,EACzF,EAEJ,EACAL,EAAM,YAAc,QAEpB,IAAMS,EAAoB,aAGxB,CAACR,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAhBL,EAgBGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,QAAAQ,EAAA,CAAM,IAAKL,EAAK,UAAWM,EAAG,kBAAmBJ,CAAS,GAAOC,EAAO,EAC1E,EACDI,EAAY,YAAc,cAE1B,IAAMC,EAAkB,aAGtB,CAACT,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAxBL,EAwBGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,QAAAQ,EAAA,CAAM,IAAKL,EAAK,UAAWM,EAAG,6BAA8BJ,CAAS,GAAOC,EAAO,EACrF,EACDK,EAAU,YAAc,YAExB,IAAMC,EAAoB,aAGxB,CAACV,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAhCL,EAgCGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,QAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EAAG,0DAA2DJ,CAAS,GAC9EC,EACN,EACD,EACDM,EAAY,YAAc,cAE1B,IAAMC,EAAiB,aACrB,CAACX,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CA1CL,EA0CGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACD,OAAAJ,EAAC,KAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EACT,8EACAJ,CACF,GACIC,EACN,EAEJ,EACAO,EAAS,YAAc,WAEvB,IAAMC,EAAkB,aAGtB,CAACZ,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CA1DL,EA0DGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,KAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EACT,yIACAJ,CACF,GACIC,EACN,EACD,EACDQ,EAAU,YAAc,YAExB,IAAMC,EAAkB,aAGtB,CAACb,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAzEL,EAyEGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,KAAAQ,EAAA,CACC,IAAKL,EACL,UAAWM,EACT,uFACAJ,CACF,GACIC,EACN,EACD,EACDS,EAAU,YAAc,YAExB,IAAMC,EAAqB,aAGzB,CAACd,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAxFL,EAwFGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAAC,UAAAQ,EAAA,CAAQ,IAAKL,EAAK,UAAWM,EAAG,qCAAsCJ,CAAS,GAAOC,EAAO,EAC/F,EACDU,EAAa,YAAc",
6
+ "names": ["React", "jsx", "Table", "_a", "ref", "_b", "className", "props", "__objRest", "__spreadValues", "cn", "TableHeader", "TableBody", "TableFooter", "TableRow", "TableHead", "TableCell", "TableCaption"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as N,c as h,d as y,e as w,f as P,h as p}from"./chunk-NAS2AFA3.js";import{a as R,b as k,d as S}from"./chunk-BY3UM6EV.js";import{b as C}from"./chunk-JAPB4ZVX.js";import{a as s}from"./chunk-WIFBPNRH.js";import*as a from"react";import{CheckIcon as H,ChevronsUpDownIcon as J}from"lucide-react";import{jsx as o,jsxs as t}from"react/jsx-runtime";function Y({items:u,placeholder:I="Select item...",emptyMessage:_="No item found.",searchable:B=!1,searchPlaceholder:E="Search...",value:v,onValueChange:r,onInputChange:n,className:G,popoverClassName:L,trigger:T,onAddOption:l,addNewOption:f}){var g;let[x,m]=a.useState(!1),[j,D]=a.useState(""),[F,b]=a.useState(""),i=v!==void 0,c=i?v:j,M=a.useCallback(e=>{i?r==null||r(e):D(e)},[i,r]),U=a.useCallback(e=>{b(e),n==null||n(e)},[n]),q=a.useCallback(()=>{l&&(l(""),b(""),m(!1))},[l]),z=!!(l&&f);return t(R,{open:x,onOpenChange:m,children:[o(k,{asChild:!0,children:T||t(C,{variant:"outline",role:"combobox","aria-expanded":x,className:s("w-[300px] justify-between",G),children:[c?(g=u.find(e=>e.value===c))==null?void 0:g.label:I,o(J,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),o(S,{className:s("w-[300px] p-0",L),children:t(N,{children:[B?o(h,{placeholder:E,onValueChange:U,value:F}):o("button",{autoFocus:!0,"aria-hidden":"true",className:"sr-only"}),t(y,{children:[o(w,{children:_}),t(P,{children:[u.map(e=>{let d=c===e.value;return t(p,{value:e.value,onSelect:A=>{M(d?"":A),m(!1)},className:s("group flex items-center gap-3 p-3",{"[&_*]:!text-primary":d}),children:[o(H,{className:s("mt-0.5 h-4 w-4 shrink-0",d?"opacity-100":"opacity-0")}),t("div",{className:s("flex min-w-0 flex-1 flex-col gap-2"),children:[o("div",{className:"text-sm leading-none",children:e.label}),o("div",{className:"text-sm leading-none text-muted-foreground",children:e.description})]})]},e.value)}),z&&t(p,{value:"__add_new_option",onSelect:()=>{q()},className:"flex items-center gap-3 p-3 text-primary",children:[o("div",{className:"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border border-current text-xs font-bold",children:"+"}),o("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:o("div",{className:"text-sm font-medium leading-none",children:f})})]})]})]})]})})]})}export{Y as a};
2
+ //# sourceMappingURL=chunk-EPZCTKQC.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/combobox/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon, ChevronsUpDownIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\n\ntype ComboboxItem = {\n value: string;\n label: string;\n description: string;\n};\n\nexport type { ComboboxItem };\n\nexport type ComboboxProps = {\n items: ComboboxItem[];\n placeholder?: string;\n emptyMessage?: string;\n searchable?: boolean;\n searchPlaceholder?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n onInputChange?: (value: string) => void;\n className?: string;\n popoverClassName?: string;\n trigger?: React.ReactNode;\n onAddOption?: (value: string) => void;\n addNewOption?: string;\n};\n\nexport function Combobox({\n items,\n placeholder = \"Select item...\",\n emptyMessage = \"No item found.\",\n searchable = false,\n searchPlaceholder = \"Search...\",\n value: controlledValue,\n onValueChange,\n onInputChange,\n className,\n popoverClassName,\n trigger,\n onAddOption,\n addNewOption,\n}: ComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState(\"\");\n const [searchValue, setSearchValue] = React.useState(\"\");\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internalValue;\n\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (isControlled) {\n onValueChange?.(newValue);\n } else {\n setInternalValue(newValue);\n }\n },\n [isControlled, onValueChange],\n );\n\n const handleSearchChange = React.useCallback(\n (newSearchValue: string) => {\n setSearchValue(newSearchValue);\n onInputChange?.(newSearchValue);\n },\n [onInputChange],\n );\n\n const handleAddNew = React.useCallback(() => {\n if (onAddOption) {\n onAddOption(\"\");\n setSearchValue(\"\");\n setOpen(false);\n }\n }, [onAddOption]);\n\n const showAddNew = Boolean(onAddOption && !!addNewOption);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n {trigger || (\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\"w-[300px] justify-between\", className)}\n >\n {value\n ? items.find((item) => item.value === value)?.label\n : placeholder}\n <ChevronsUpDownIcon className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n )}\n </PopoverTrigger>\n <PopoverContent className={cn(\"w-[300px] p-0\", popoverClassName)}>\n <Command>\n {searchable ? (\n <CommandInput\n placeholder={searchPlaceholder}\n onValueChange={handleSearchChange}\n value={searchValue}\n />\n ) : (\n <button autoFocus aria-hidden=\"true\" className=\"sr-only\" />\n )}\n <CommandList>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n <CommandGroup>\n {items.map((item) => {\n const selected = value === item.value;\n\n return (\n <CommandItem\n key={item.value}\n value={item.value}\n onSelect={(currentValue) => {\n handleValueChange(selected ? \"\" : currentValue);\n setOpen(false);\n }}\n className={cn(\"group flex items-center gap-3 p-3\", {\n \"[&_*]:!text-primary\": selected,\n })}\n >\n <CheckIcon\n className={cn(\n \"mt-0.5 h-4 w-4 shrink-0\",\n selected ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n <div className={cn(\"flex min-w-0 flex-1 flex-col gap-2\")}>\n <div className=\"text-sm leading-none\">{item.label}</div>\n <div className=\"text-sm leading-none text-muted-foreground\">\n {item.description}\n </div>\n </div>\n </CommandItem>\n );\n })}\n {showAddNew && (\n <CommandItem\n value={`__add_new_option`}\n onSelect={() => {\n // Prevent default value change behavior\n handleAddNew();\n }}\n className=\"flex items-center gap-3 p-3 text-primary\"\n >\n <div className=\"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border border-current text-xs font-bold\">\n +\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <div className=\"text-sm font-medium leading-none\">\n {addNewOption}\n </div>\n </div>\n </CommandItem>\n )}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "CheckIcon", "ChevronsUpDownIcon", "jsx", "jsxs", "Combobox", "items", "placeholder", "emptyMessage", "searchable", "searchPlaceholder", "controlledValue", "onValueChange", "onInputChange", "className", "popoverClassName", "trigger", "onAddOption", "addNewOption", "_a", "open", "setOpen", "internalValue", "setInternalValue", "searchValue", "setSearchValue", "isControlled", "value", "handleValueChange", "newValue", "handleSearchChange", "newSearchValue", "handleAddNew", "showAddNew", "Popover", "PopoverTrigger", "Button", "cn", "item", "ChevronsUpDownIcon", "PopoverContent", "Command", "CommandInput", "CommandList", "CommandEmpty", "CommandGroup", "selected", "CommandItem", "currentValue", "CheckIcon"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as g}from"./chunk-6MI7ACXZ.js";import{b as c}from"./chunk-JAPB4ZVX.js";import{a as m}from"./chunk-NMUGPQJR.js";import{a as s}from"./chunk-WIFBPNRH.js";import{a as o,c as e}from"./chunk-WHECA25N.js";import{cva as f}from"class-variance-authority";import{jsx as i}from"react/jsx-runtime";function w(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("div",o({"data-slot":"input-group",role:"group",className:s("group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",n)},a))}var b=f("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function G(t){var u=t,{className:n,align:a="inline-start"}=u,r=e(u,["className","align"]);return i("div",o({role:"group","data-slot":"input-group-addon","data-align":a,className:s(b({align:a}),n),onClick:l=>{var p,d;l.target.closest("button")||(d=(p=l.currentTarget.parentElement)==null?void 0:p.querySelector("input"))==null||d.focus()}},r))}var h=f("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function I(l){var p=l,{className:n,type:a="button",variant:r="ghost",size:t}=p,u=e(p,["className","type","variant","size"]);return i(c,o({type:a,variant:r,className:s(h({size:t}),n)},u))}function P(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("span",o({className:s("flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",n)},a))}function C(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(g,o({"data-slot":"input-group-control",className:s("h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent",n)},a))}function R(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(m,o({"data-slot":"input-group-control",className:s("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",n)},a))}export{w as a,G as b,I as c,P as d,C as e,R as f};
2
+ //# sourceMappingURL=chunk-EWEMD7AS.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/input-group/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Textarea } from \"@/components/text-area\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size,\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> & {\n size?: \"xs\" | \"sm\" | \"icon-xs\" | \"icon-sm\";\n}) {\n return (\n <Button\n type={type}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],
5
+ "mappings": "+MACA,OAAS,OAAAA,MAA8B,2BASnC,cAAAC,MAAA,oBAFJ,SAASC,EAAWC,EAAsD,CAAtD,IAAAC,EAAAD,EAAE,WAAAE,CARtB,EAQoBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACpB,OACEH,EAAC,MAAAO,EAAA,CACC,YAAU,cACV,KAAK,QACL,UAAWC,EACT,2JACA,qCAGA,kDACA,gDACA,iIACA,2HAGA,kMAGA,iLAEAJ,CACF,GACIC,EACN,CAEJ,CAEA,IAAMI,EAA0BC,EAC9B,0PACA,CACE,SAAU,CACR,MAAO,CACL,eACE,wEACF,aACE,uEACF,cACE,oGACF,YACE,kGACJ,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAEA,SAASC,EAAgBT,EAIsD,CAJtD,IAAAC,EAAAD,EACvB,WAAAE,EACA,MAAAQ,EAAQ,cA3DV,EAyDyBT,EAGpBE,EAAAC,EAHoBH,EAGpB,CAFH,YACA,UAGA,OACEH,EAAC,MAAAO,EAAA,CACC,KAAK,QACL,YAAU,oBACV,aAAYK,EACZ,UAAWJ,EAAGC,EAAwB,CAAE,MAAAG,CAAM,CAAC,EAAGR,CAAS,EAC3D,QAAUS,GAAM,CApEtB,IAAAX,EAAAC,EAqEaU,EAAE,OAAuB,QAAQ,QAAQ,IAG9CV,GAAAD,EAAAW,EAAE,cAAc,gBAAhB,YAAAX,EAA+B,cAAc,WAA7C,MAAAC,EAAuD,OACzD,GACIE,EACN,CAEJ,CAEA,IAAMS,EAA2BJ,EAC/B,8CACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,0GACJ,GAAI,kDACJ,UACE,8DACF,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CACF,EAEA,SAASK,EAAiBb,EAQvB,CARuB,IAAAC,EAAAD,EACxB,WAAAE,EACA,KAAAY,EAAO,SACP,QAAAC,EAAU,QACV,KAAAC,CArGF,EAiG0Bf,EAKrBE,EAAAC,EALqBH,EAKrB,CAJH,YACA,OACA,UACA,SAKA,OACEH,EAACmB,EAAAZ,EAAA,CACC,KAAMS,EACN,QAASC,EACT,UAAWT,EAAGM,EAAyB,CAAE,KAAAI,CAAK,CAAC,EAAGd,CAAS,GACvDC,EACN,CAEJ,CAEA,SAASe,EAAelB,EAAuD,CAAvD,IAAAC,EAAAD,EAAE,WAAAE,CApH1B,EAoHwBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACxB,OACEH,EAAC,OAAAO,EAAA,CACC,UAAWC,EACT,yHACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASgB,EAAgBnB,EAGS,CAHT,IAAAC,EAAAD,EACvB,WAAAE,CAjIF,EAgIyBD,EAEpBE,EAAAC,EAFoBH,EAEpB,CADH,cAGA,OACEH,EAACsB,EAAAf,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,sIACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASkB,EAAmBrB,EAGS,CAHT,IAAAC,EAAAD,EAC1B,WAAAE,CAjJF,EAgJ4BD,EAEvBE,EAAAC,EAFuBH,EAEvB,CADH,cAGA,OACEH,EAACwB,EAAAjB,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,oHACAJ,CACF,GACIC,EACN,CAEJ",
6
+ "names": ["cva", "jsx", "InputGroup", "_a", "_b", "className", "props", "__objRest", "__spreadValues", "cn", "inputGroupAddonVariants", "cva", "InputGroupAddon", "align", "e", "inputGroupButtonVariants", "InputGroupButton", "type", "variant", "size", "Button", "InputGroupText", "InputGroupInput", "Input", "InputGroupTextarea", "Textarea"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as h,b as y,c as N,e as C,f as P}from"./chunk-PLDAFSMG.js";import{a as k}from"./chunk-46MFR2CI.js";import{a as n}from"./chunk-WIFBPNRH.js";import*as r from"react";import{Dialog as l}from"radix-ui";import{XIcon as R}from"lucide-react";import{jsx as e,jsxs as o}from"react/jsx-runtime";var f="rounded-full border-0 bg-primary-dark text-inverted-primary shadow-[0_1px_3px_rgba(0,0,0,0.3)] hover:bg-primary-dark/80 hover:text-inverted-primary disabled:opacity-40";function $(t,m){let u=r.useCallback(a=>t?(t.on("reInit",a),t.on("select",a),()=>{t.off("reInit",a),t.off("select",a)}):()=>{},[t]);return r.useSyncExternalStore(u,()=>{var a;return(a=t==null?void 0:t.selectedScrollSnap())!=null?a:m},()=>m)}function S({photos:t,open:m,onOpenChange:u,initialIndex:a=0,title:v="Photos",trigger:p}){let w=k(),[c,z]=r.useState(),g=r.useRef(null),d=$(c,a),x=`${d+1} of ${t.length}`;return o(l.Root,{open:m,onOpenChange:u,children:[p&&e(l.Trigger,{asChild:!0,children:p}),o(l.Portal,{children:[e(l.Overlay,{className:"fixed inset-0 z-50 bg-black/[0.92] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 max-sm:bg-black/95"}),o(l.Content,{"data-slot":"photo-lightbox","aria-describedby":void 0,onOpenAutoFocus:()=>{g.current=document.activeElement},onCloseAutoFocus:i=>{var s;p||(i.preventDefault(),(s=g.current)==null||s.focus())},className:"fixed inset-0 z-50 outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",children:[e(l.Title,{className:"sr-only",children:v}),o(h,{setApi:z,opts:{startIndex:a},className:"flex h-full flex-col items-center gap-6 p-6 sm:gap-0 sm:px-6 sm:pb-8 sm:pt-6",children:[o("div",{className:"relative flex h-10 w-full shrink-0 items-center justify-center",children:[o(l.Close,{className:n(f,"absolute flex items-center justify-center outline-none focus-visible:ring-2 focus-visible:ring-inverted-primary/60","left-0 size-8 sm:left-auto sm:right-0 sm:size-10"),children:[e(R,{className:"size-4 sm:size-5"}),e("span",{className:"sr-only",children:"Close"})]}),e("p",{className:"text-sm font-medium text-inverted-primary/60 sm:hidden",children:x}),e("p",{className:"hidden text-[11px] tracking-[0.015em] text-inverted-primary sm:block",children:w?"Swipe to navigate":"Use arrow keys to navigate \xB7 ESC to close"})]}),o("div",{className:"relative flex min-h-0 w-full flex-1 items-center justify-center sm:px-20 sm:py-8",children:[e("div",{className:"w-full",children:e(y,{className:"ml-0",children:t.map((i,s)=>{var b;return e(N,{className:"flex items-center justify-center pl-0",children:e("img",{src:i.src,alt:(b=i.alt)!=null?b:`${v} ${s+1}`,className:"max-h-[calc(100dvh-16rem)] max-w-full rounded-md object-contain shadow-[0_6px_24px_rgba(0,0,0,0.35)] sm:max-h-[calc(100dvh-14rem)] sm:max-w-[min(900px,100%)] sm:rounded-lg"})},`${i.src}-${s}`)})})}),e(C,{placement:"inline",className:n(f,"absolute left-1.5 top-1/2 size-10 -translate-y-1/2 sm:left-0 sm:size-12")}),e(P,{placement:"inline",className:n(f,"absolute right-1.5 top-1/2 size-10 -translate-y-1/2 sm:right-0 sm:size-12")})]}),t.length>1&&o("div",{className:"flex shrink-0 flex-col items-center gap-6 sm:gap-2.5",children:[e("div",{className:"flex max-w-full gap-1.5 overflow-x-auto sm:gap-2",children:t.map((i,s)=>e("button",{type:"button",onClick:()=>c==null?void 0:c.scrollTo(s),"aria-label":`Show photo ${s+1}`,"aria-current":s===d,className:n("h-9 w-12 shrink-0 overflow-hidden rounded-[5px] opacity-40 outline-none transition-opacity hover:opacity-70 focus-visible:ring-2 focus-visible:ring-inverted-primary/60 sm:h-12 sm:w-16 sm:rounded-[6px] sm:opacity-45",s===d&&"border-2 border-inverted-primary opacity-100 sm:opacity-100"),children:e("img",{src:i.src,alt:"",className:"size-full object-cover"})},`${i.src}-${s}`))}),e("div",{className:"flex gap-2.5 sm:gap-1.5","aria-hidden":"true",children:t.map((i,s)=>e("span",{className:n("size-1.5 rounded-full bg-inverted-primary/40 sm:size-2",s===d&&"bg-inverted-primary")},`${i.src}-${s}`))}),e("p",{className:"hidden text-[13px] font-medium tracking-[0.005em] text-inverted-primary/50 sm:block",children:x}),e("p",{className:"text-[11px] tracking-[0.015em] text-inverted-primary/60 sm:hidden",children:"Swipe to navigate"})]})]})]})]})]})}export{S as a};
2
+ //# sourceMappingURL=chunk-F4MEBVNH.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/photo-lightbox/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\r\nimport { XIcon } from \"lucide-react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport {\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselNext,\r\n CarouselPrevious,\r\n type CarouselApi,\r\n} from \"@/components/carousel\";\r\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\r\n\r\nexport type PhotoLightboxPhoto = {\r\n src: string;\r\n alt?: string;\r\n};\r\n\r\nexport type PhotoLightboxProps = {\r\n photos: PhotoLightboxPhoto[];\r\n open?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n initialIndex?: number;\r\n title?: string;\r\n trigger?: React.ReactNode;\r\n};\r\n\r\nconst iconButtonClassName =\r\n \"rounded-full border-0 bg-primary-dark text-inverted-primary shadow-[0_1px_3px_rgba(0,0,0,0.3)] hover:bg-primary-dark/80 hover:text-inverted-primary disabled:opacity-40\";\r\n\r\nfunction useSelectedIndex(api: CarouselApi, fallback: number) {\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 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 return React.useSyncExternalStore(\r\n subscribe,\r\n () => api?.selectedScrollSnap() ?? fallback,\r\n () => fallback,\r\n );\r\n}\r\n\r\n/**\r\n * Full-screen photo viewer with arrows, thumbnails and dots; swipe-first on touch devices.\r\n * @param props.photos - photos to browse\r\n * @param props.initialIndex - photo shown when the viewer opens\r\n * @param props.trigger - optional element that opens the viewer\r\n */\r\nfunction PhotoLightbox({\r\n photos,\r\n open,\r\n onOpenChange,\r\n initialIndex = 0,\r\n title = \"Photos\",\r\n trigger,\r\n}: PhotoLightboxProps) {\r\n const isTouch = useIsTouchDevice();\r\n const [api, setApi] = React.useState<CarouselApi>();\r\n const openerRef = React.useRef<HTMLElement | null>(null);\r\n const selected = useSelectedIndex(api, initialIndex);\r\n const counter = `${selected + 1} of ${photos.length}`;\r\n\r\n return (\r\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\r\n {trigger && (\r\n <DialogPrimitive.Trigger asChild>{trigger}</DialogPrimitive.Trigger>\r\n )}\r\n <DialogPrimitive.Portal>\r\n <DialogPrimitive.Overlay className=\"fixed inset-0 z-50 bg-black/[0.92] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 max-sm:bg-black/95\" />\r\n <DialogPrimitive.Content\r\n data-slot=\"photo-lightbox\"\r\n aria-describedby={undefined}\r\n onOpenAutoFocus={() => {\r\n openerRef.current = document.activeElement as HTMLElement | null;\r\n }}\r\n onCloseAutoFocus={(event) => {\r\n // Radix only restores focus to its own Trigger\r\n if (trigger) return;\r\n event.preventDefault();\r\n openerRef.current?.focus();\r\n }}\r\n className=\"fixed inset-0 z-50 outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\"\r\n >\r\n <DialogPrimitive.Title className=\"sr-only\">\r\n {title}\r\n </DialogPrimitive.Title>\r\n <Carousel\r\n setApi={setApi}\r\n opts={{ startIndex: initialIndex }}\r\n className=\"flex h-full flex-col items-center gap-6 p-6 sm:gap-0 sm:px-6 sm:pb-8 sm:pt-6\"\r\n >\r\n <div className=\"relative flex h-10 w-full shrink-0 items-center justify-center\">\r\n <DialogPrimitive.Close\r\n className={cn(\r\n iconButtonClassName,\r\n \"absolute flex items-center justify-center outline-none focus-visible:ring-2 focus-visible:ring-inverted-primary/60\",\r\n \"left-0 size-8 sm:left-auto sm:right-0 sm:size-10\",\r\n )}\r\n >\r\n <XIcon className=\"size-4 sm:size-5\" />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogPrimitive.Close>\r\n <p className=\"text-sm font-medium text-inverted-primary/60 sm:hidden\">\r\n {counter}\r\n </p>\r\n <p className=\"hidden text-[11px] tracking-[0.015em] text-inverted-primary sm:block\">\r\n {isTouch\r\n ? \"Swipe to navigate\"\r\n : \"Use arrow keys to navigate \u00B7 ESC to close\"}\r\n </p>\r\n </div>\r\n\r\n <div className=\"relative flex min-h-0 w-full flex-1 items-center justify-center sm:px-20 sm:py-8\">\r\n <div className=\"w-full\">\r\n <CarouselContent className=\"ml-0\">\r\n {photos.map((photo, index) => (\r\n <CarouselItem\r\n key={`${photo.src}-${index}`}\r\n className=\"flex items-center justify-center pl-0\"\r\n >\r\n <img\r\n src={photo.src}\r\n alt={photo.alt ?? `${title} ${index + 1}`}\r\n className=\"max-h-[calc(100dvh-16rem)] max-w-full rounded-md object-contain shadow-[0_6px_24px_rgba(0,0,0,0.35)] sm:max-h-[calc(100dvh-14rem)] sm:max-w-[min(900px,100%)] sm:rounded-lg\"\r\n />\r\n </CarouselItem>\r\n ))}\r\n </CarouselContent>\r\n </div>\r\n <CarouselPrevious\r\n placement=\"inline\"\r\n className={cn(\r\n iconButtonClassName,\r\n \"absolute left-1.5 top-1/2 size-10 -translate-y-1/2 sm:left-0 sm:size-12\",\r\n )}\r\n />\r\n <CarouselNext\r\n placement=\"inline\"\r\n className={cn(\r\n iconButtonClassName,\r\n \"absolute right-1.5 top-1/2 size-10 -translate-y-1/2 sm:right-0 sm:size-12\",\r\n )}\r\n />\r\n </div>\r\n\r\n {photos.length > 1 && (\r\n <div className=\"flex shrink-0 flex-col items-center gap-6 sm:gap-2.5\">\r\n <div className=\"flex max-w-full gap-1.5 overflow-x-auto sm:gap-2\">\r\n {photos.map((photo, index) => (\r\n <button\r\n key={`${photo.src}-${index}`}\r\n type=\"button\"\r\n onClick={() => api?.scrollTo(index)}\r\n aria-label={`Show photo ${index + 1}`}\r\n aria-current={index === selected}\r\n className={cn(\r\n \"h-9 w-12 shrink-0 overflow-hidden rounded-[5px] opacity-40 outline-none transition-opacity hover:opacity-70 focus-visible:ring-2 focus-visible:ring-inverted-primary/60 sm:h-12 sm:w-16 sm:rounded-[6px] sm:opacity-45\",\r\n index === selected &&\r\n \"border-2 border-inverted-primary opacity-100 sm:opacity-100\",\r\n )}\r\n >\r\n <img\r\n src={photo.src}\r\n alt=\"\"\r\n className=\"size-full object-cover\"\r\n />\r\n </button>\r\n ))}\r\n </div>\r\n <div className=\"flex gap-2.5 sm:gap-1.5\" aria-hidden=\"true\">\r\n {photos.map((photo, index) => (\r\n <span\r\n key={`${photo.src}-${index}`}\r\n className={cn(\r\n \"size-1.5 rounded-full bg-inverted-primary/40 sm:size-2\",\r\n index === selected && \"bg-inverted-primary\",\r\n )}\r\n />\r\n ))}\r\n </div>\r\n <p className=\"hidden text-[13px] font-medium tracking-[0.005em] text-inverted-primary/50 sm:block\">\r\n {counter}\r\n </p>\r\n <p className=\"text-[11px] tracking-[0.015em] text-inverted-primary/60 sm:hidden\">\r\n Swipe to navigate\r\n </p>\r\n </div>\r\n )}\r\n </Carousel>\r\n </DialogPrimitive.Content>\r\n </DialogPrimitive.Portal>\r\n </DialogPrimitive.Root>\r\n );\r\n}\r\n\r\nexport { PhotoLightbox };\r\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "DialogPrimitive", "XIcon", "jsx", "jsxs", "iconButtonClassName", "useSelectedIndex", "api", "fallback", "subscribe", "onStoreChange", "_a", "PhotoLightbox", "photos", "open", "onOpenChange", "initialIndex", "title", "trigger", "isTouch", "useIsTouchDevice", "setApi", "openerRef", "selected", "counter", "DialogPrimitive", "event", "Carousel", "cn", "XIcon", "CarouselContent", "photo", "index", "CarouselItem", "CarouselPrevious", "CarouselNext"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as f}from"./chunk-WIFBPNRH.js";import{a as l,c as i}from"./chunk-WHECA25N.js";import*as m from"react";import{Avatar as a}from"radix-ui";import{jsx as c}from"react/jsx-runtime";var p=m.forwardRef((s,r)=>{var e=s,{className:t}=e,o=i(e,["className"]);return c(a.Root,l({ref:r,className:f("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",t)},o))});p.displayName=a.Root.displayName;var R=m.forwardRef((s,r)=>{var e=s,{className:t}=e,o=i(e,["className"]);return c(a.Image,l({ref:r,className:f("aspect-square h-full w-full",t)},o))});R.displayName=a.Image.displayName;var v=m.forwardRef((s,r)=>{var e=s,{className:t}=e,o=i(e,["className"]);return c(a.Fallback,l({ref:r,className:f("flex h-full w-full items-center justify-center rounded-full bg-muted",t)},o))});v.displayName=a.Fallback.displayName;export{p as a,R as b,v as c};
2
+ //# sourceMappingURL=chunk-FKH5WAC7.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/avatar/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QACvB,OAAS,UAAUC,MAAuB,WAQxC,cAAAC,MAAA,oBAJF,IAAMC,EAAe,aAGnB,CAACC,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CARL,EAQGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAACQ,EAAgB,KAAhBC,EAAA,CACC,IAAKN,EACL,UAAWO,EACT,gEACAL,CACF,GACIC,EACN,EACD,EACDL,EAAO,YAAcO,EAAgB,KAAK,YAE1C,IAAMG,EAAoB,aAGxB,CAACT,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAvBL,EAuBGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAACQ,EAAgB,MAAhBC,EAAA,CACC,IAAKN,EACL,UAAWO,EAAG,8BAA+BL,CAAS,GAClDC,EACN,EACD,EACDK,EAAY,YAAcH,EAAgB,MAAM,YAEhD,IAAMI,EAAuB,aAG3B,CAACV,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAnCL,EAmCGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAJ,EAACQ,EAAgB,SAAhBC,EAAA,CACC,IAAKN,EACL,UAAWO,EACT,uEACAL,CACF,GACIC,EACN,EACD,EACDM,EAAe,YAAcJ,EAAgB,SAAS",
6
+ "names": ["React", "AvatarPrimitive", "jsx", "Avatar", "_a", "ref", "_b", "className", "props", "__objRest", "AvatarPrimitive", "__spreadValues", "cn", "AvatarImage", "AvatarFallback"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as g}from"./chunk-6MI7ACXZ.js";import{b as c}from"./chunk-BF3VTYEM.js";import{a as m}from"./chunk-NMUGPQJR.js";import{a as s}from"./chunk-WIFBPNRH.js";import{a as o,c as e}from"./chunk-WHECA25N.js";import{cva as f}from"class-variance-authority";import{jsx as i}from"react/jsx-runtime";function w(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("div",o({"data-slot":"input-group",role:"group",className:s("group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",n)},a))}var b=f("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function G(t){var u=t,{className:n,align:a="inline-start"}=u,r=e(u,["className","align"]);return i("div",o({role:"group","data-slot":"input-group-addon","data-align":a,className:s(b({align:a}),n),onClick:l=>{var p,d;l.target.closest("button")||(d=(p=l.currentTarget.parentElement)==null?void 0:p.querySelector("input"))==null||d.focus()}},r))}var h=f("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function I(l){var p=l,{className:n,type:a="button",variant:r="ghost",size:t}=p,u=e(p,["className","type","variant","size"]);return i(c,o({type:a,variant:r,className:s(h({size:t}),n)},u))}function P(r){var t=r,{className:n}=t,a=e(t,["className"]);return i("span",o({className:s("flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",n)},a))}function C(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(g,o({"data-slot":"input-group-control",className:s("h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent",n)},a))}function R(r){var t=r,{className:n}=t,a=e(t,["className"]);return i(m,o({"data-slot":"input-group-control",className:s("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",n)},a))}export{w as a,G as b,I as c,P as d,C as e,R as f};
2
+ //# sourceMappingURL=chunk-FUXRPZVU.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/input-group/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Textarea } from \"@/components/text-area\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size,\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> & {\n size?: \"xs\" | \"sm\" | \"icon-xs\" | \"icon-sm\";\n}) {\n return (\n <Button\n type={type}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"h-full flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],
5
+ "mappings": "+MACA,OAAS,OAAAA,MAA8B,2BASnC,cAAAC,MAAA,oBAFJ,SAASC,EAAWC,EAAsD,CAAtD,IAAAC,EAAAD,EAAE,WAAAE,CARtB,EAQoBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACpB,OACEH,EAAC,MAAAO,EAAA,CACC,YAAU,cACV,KAAK,QACL,UAAWC,EACT,2JACA,qCAGA,kDACA,gDACA,iIACA,2HAGA,kMAGA,iLAEAJ,CACF,GACIC,EACN,CAEJ,CAEA,IAAMI,EAA0BC,EAC9B,0PACA,CACE,SAAU,CACR,MAAO,CACL,eACE,wEACF,aACE,uEACF,cACE,oGACF,YACE,kGACJ,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAEA,SAASC,EAAgBT,EAIsD,CAJtD,IAAAC,EAAAD,EACvB,WAAAE,EACA,MAAAQ,EAAQ,cA3DV,EAyDyBT,EAGpBE,EAAAC,EAHoBH,EAGpB,CAFH,YACA,UAGA,OACEH,EAAC,MAAAO,EAAA,CACC,KAAK,QACL,YAAU,oBACV,aAAYK,EACZ,UAAWJ,EAAGC,EAAwB,CAAE,MAAAG,CAAM,CAAC,EAAGR,CAAS,EAC3D,QAAUS,GAAM,CApEtB,IAAAX,EAAAC,EAqEaU,EAAE,OAAuB,QAAQ,QAAQ,IAG9CV,GAAAD,EAAAW,EAAE,cAAc,gBAAhB,YAAAX,EAA+B,cAAc,WAA7C,MAAAC,EAAuD,OACzD,GACIE,EACN,CAEJ,CAEA,IAAMS,EAA2BJ,EAC/B,8CACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,0GACJ,GAAI,kDACJ,UACE,8DACF,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CACF,EAEA,SAASK,EAAiBb,EAQvB,CARuB,IAAAC,EAAAD,EACxB,WAAAE,EACA,KAAAY,EAAO,SACP,QAAAC,EAAU,QACV,KAAAC,CArGF,EAiG0Bf,EAKrBE,EAAAC,EALqBH,EAKrB,CAJH,YACA,OACA,UACA,SAKA,OACEH,EAACmB,EAAAZ,EAAA,CACC,KAAMS,EACN,QAASC,EACT,UAAWT,EAAGM,EAAyB,CAAE,KAAAI,CAAK,CAAC,EAAGd,CAAS,GACvDC,EACN,CAEJ,CAEA,SAASe,EAAelB,EAAuD,CAAvD,IAAAC,EAAAD,EAAE,WAAAE,CApH1B,EAoHwBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACxB,OACEH,EAAC,OAAAO,EAAA,CACC,UAAWC,EACT,yHACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASgB,EAAgBnB,EAGS,CAHT,IAAAC,EAAAD,EACvB,WAAAE,CAjIF,EAgIyBD,EAEpBE,EAAAC,EAFoBH,EAEpB,CADH,cAGA,OACEH,EAACsB,EAAAf,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,sIACAJ,CACF,GACIC,EACN,CAEJ,CAEA,SAASkB,EAAmBrB,EAGS,CAHT,IAAAC,EAAAD,EAC1B,WAAAE,CAjJF,EAgJ4BD,EAEvBE,EAAAC,EAFuBH,EAEvB,CADH,cAGA,OACEH,EAACwB,EAAAjB,EAAA,CACC,YAAU,sBACV,UAAWC,EACT,oHACAJ,CACF,GACIC,EACN,CAEJ",
6
+ "names": ["cva", "jsx", "InputGroup", "_a", "_b", "className", "props", "__objRest", "__spreadValues", "cn", "inputGroupAddonVariants", "cva", "InputGroupAddon", "align", "e", "inputGroupButtonVariants", "InputGroupButton", "type", "variant", "size", "Button", "InputGroupText", "InputGroupInput", "Input", "InputGroupTextarea", "Textarea"]
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-GATZOHQ6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as n}from"./chunk-WIFBPNRH.js";import{a,c as r}from"./chunk-WHECA25N.js";import{Loader2Icon as i}from"lucide-react";import{jsx as m}from"react/jsx-runtime";function f(p){var o=p,{className:e}=o,t=r(o,["className"]);return m(i,a({role:"status","aria-label":"Loading",className:n("size-4 animate-spin",e)},t))}export{f as a};
2
+ //# sourceMappingURL=chunk-GTEOHHVD.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/spinner/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Loader2Icon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Spinner({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <Loader2Icon\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\"size-4 animate-spin\", className)}\n {...props}\n />\n );\n}\n\nexport { Spinner };\n"],
5
+ "mappings": "kFACA,OAAS,eAAAA,MAAmB,eAMxB,cAAAC,MAAA,oBAFJ,SAASC,EAAQC,EAAsD,CAAtD,IAAAC,EAAAD,EAAE,WAAAE,CALnB,EAKiBD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACjB,OACEH,EAACO,EAAAC,EAAA,CACC,KAAK,SACL,aAAW,UACX,UAAWC,EAAG,sBAAuBL,CAAS,GAC1CC,EACN,CAEJ",
6
+ "names": ["Loader2Icon", "jsx", "Spinner", "_a", "_b", "className", "props", "__objRest", "Loader2Icon", "__spreadValues", "cn"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as d}from"./chunk-WIFBPNRH.js";import{a as n,b as p,c as r}from"./chunk-WHECA25N.js";import*as m from"react";import{Dialog as e}from"radix-ui";import{XIcon as D}from"lucide-react";import{jsx as l,jsxs as c}from"react/jsx-runtime";var h=e.Root,T=e.Trigger,u=e.Portal,w=e.Close,g=m.forwardRef((o,i)=>{var s=o,{className:t}=s,a=r(s,["className"]);return l(e.Overlay,n({ref:i,className:d("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t)},a))});g.displayName=e.Overlay.displayName;var y=m.forwardRef((s,o)=>{var f=s,{className:t,children:a}=f,i=r(f,["className","children"]);return c(u,{children:[l(g,{}),c(e.Content,p(n({ref:o,className:d("fixed left-[50%] top-[50%] z-50 grid max-h-[85dvh] w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t)},i),{children:[a,c(e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[l(D,{className:"h-4 w-4"}),l("span",{className:"sr-only",children:"Close"})]})]}))]})});y.displayName=e.Content.displayName;var R=i=>{var o=i,{className:t}=o,a=r(o,["className"]);return l("div",n({className:d("flex flex-col space-y-1.5 text-center sm:text-left",t)},a))};R.displayName="DialogHeader";var v=i=>{var o=i,{className:t}=o,a=r(o,["className"]);return l("div",n({className:d("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t)},a))};v.displayName="DialogFooter";var x=m.forwardRef((o,i)=>{var s=o,{className:t}=s,a=r(s,["className"]);return l(e.Title,n({ref:i,className:d("text-left text-lg font-semibold leading-none tracking-tight",t)},a))});x.displayName=e.Title.displayName;var N=m.forwardRef((o,i)=>{var s=o,{className:t}=s,a=r(s,["className"]);return l(e.Description,n({ref:i,className:d("text-left text-sm text-muted-foreground",t)},a))});N.displayName=e.Description.displayName;export{h as a,T as b,u as c,w as d,g as e,y as f,R as g,v as h,x as i,N as j};
2
+ //# sourceMappingURL=chunk-HE3CSN3R.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/dialog/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { XIcon } from \"lucide-react\";\r\n\r\nconst Dialog = DialogPrimitive.Root;\r\n\r\nconst DialogTrigger = DialogPrimitive.Trigger;\r\n\r\nconst DialogPortal = DialogPrimitive.Portal;\r\n\r\nconst DialogClose = DialogPrimitive.Close;\r\n\r\nconst DialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <DialogPrimitive.Overlay\r\n ref={ref}\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\r\n\r\nconst DialogContent = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <DialogPortal>\r\n <DialogOverlay />\r\n <DialogPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed left-[50%] top-[50%] z-50 grid max-h-[85dvh] w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\r\n <XIcon className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogPrimitive.Close>\r\n </DialogPrimitive.Content>\r\n </DialogPortal>\r\n));\r\nDialogContent.displayName = DialogPrimitive.Content.displayName;\r\n\r\nconst DialogHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n);\r\nDialogHeader.displayName = \"DialogHeader\";\r\n\r\nconst DialogFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n);\r\nDialogFooter.displayName = \"DialogFooter\";\r\n\r\nconst DialogTitle = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <DialogPrimitive.Title\r\n ref={ref}\r\n className={cn(\r\n \"text-left text-lg font-semibold leading-none tracking-tight\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\r\n\r\nconst DialogDescription = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <DialogPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-left text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n));\r\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\r\n\r\nexport {\r\n Dialog,\r\n DialogPortal,\r\n DialogOverlay,\r\n DialogTrigger,\r\n DialogClose,\r\n DialogContent,\r\n DialogHeader,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n};\r\n"],
5
+ "mappings": "8FAEA,UAAYA,MAAW,QACvB,OAAS,UAAUC,MAAuB,WAE1C,OAAS,SAAAC,MAAa,eAcpB,cAAAC,EA0BI,QAAAC,MA1BJ,oBAZF,IAAMC,EAASC,EAAgB,KAEzBC,EAAgBD,EAAgB,QAEhCE,EAAeF,EAAgB,OAE/BG,EAAcH,EAAgB,MAE9BI,EAAsB,aAG1B,CAACC,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAlBL,EAkBGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAV,EAACG,EAAgB,QAAhBW,EAAA,CACC,IAAKL,EACL,UAAWM,EACT,yJACAJ,CACF,GACIC,EACN,EACD,EACDL,EAAc,YAAcJ,EAAgB,QAAQ,YAEpD,IAAMa,EAAsB,aAG1B,CAACR,EAAmCC,IAAK,CAAxC,IAAAC,EAAAF,EAAE,WAAAG,EAAW,SAAAM,CAjChB,EAiCGP,EAA0BE,EAAAC,EAA1BH,EAA0B,CAAxB,YAAW,aACd,OAAAT,EAACI,EAAA,CACC,UAAAL,EAACO,EAAA,EAAc,EACfN,EAACE,EAAgB,QAAhBe,EAAAJ,EAAA,CACC,IAAKL,EACL,UAAWM,EACT,4gBACAJ,CACF,GACIC,GANL,CAQE,UAAAK,EACDhB,EAACE,EAAgB,MAAhB,CAAsB,UAAU,gRAC/B,UAAAH,EAACmB,EAAA,CAAM,UAAU,UAAU,EAC3BnB,EAAC,QAAK,UAAU,UAAU,iBAAK,GACjC,IACF,GACF,EACD,EACDgB,EAAc,YAAcb,EAAgB,QAAQ,YAEpD,IAAMiB,EAAgBZ,GAGmB,CAHnB,IAAAE,EAAAF,EACpB,WAAAG,CAvDF,EAsDsBD,EAEjBE,EAAAC,EAFiBH,EAEjB,CADH,cAGA,OAAAV,EAAC,MAAAc,EAAA,CACC,UAAWC,EACT,qDACAJ,CACF,GACIC,EACN,GAEFQ,EAAa,YAAc,eAE3B,IAAMC,EAAgBb,GAGmB,CAHnB,IAAAE,EAAAF,EACpB,WAAAG,CArEF,EAoEsBD,EAEjBE,EAAAC,EAFiBH,EAEjB,CADH,cAGA,OAAAV,EAAC,MAAAc,EAAA,CACC,UAAWC,EACT,gEACAJ,CACF,GACIC,EACN,GAEFS,EAAa,YAAc,eAE3B,IAAMC,EAAoB,aAGxB,CAACd,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CArFL,EAqFGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAV,EAACG,EAAgB,MAAhBW,EAAA,CACC,IAAKL,EACL,UAAWM,EACT,8DACAJ,CACF,GACIC,EACN,EACD,EACDU,EAAY,YAAcnB,EAAgB,MAAM,YAEhD,IAAMoB,EAA0B,aAG9B,CAACf,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CApGL,EAoGGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAV,EAACG,EAAgB,YAAhBW,EAAA,CACC,IAAKL,EACL,UAAWM,EAAG,0CAA2CJ,CAAS,GAC9DC,EACN,EACD,EACDW,EAAkB,YAAcpB,EAAgB,YAAY",
6
+ "names": ["React", "DialogPrimitive", "XIcon", "jsx", "jsxs", "Dialog", "DialogPrimitive", "DialogTrigger", "DialogPortal", "DialogClose", "DialogOverlay", "_a", "ref", "_b", "className", "props", "__objRest", "__spreadValues", "cn", "DialogContent", "children", "__spreadProps", "XIcon", "DialogHeader", "DialogFooter", "DialogTitle", "DialogDescription"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as s}from"./chunk-WIFBPNRH.js";import{a as t,c as i}from"./chunk-WHECA25N.js";import*as n from"react";import{unstable_PasswordToggleField as o}from"radix-ui";import{EyeOffIcon as f,EyeIcon as g}from"lucide-react";import{jsx as e,jsxs as u}from"react/jsx-runtime";var p=n.forwardRef((c,d)=>{var r=c,{className:l}=r,a=i(r,["className"]);return e(o.Root,{children:u("div",{className:"relative",children:[e(o.Input,t({ref:d,className:s("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 pr-10 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",l)},a)),e(o.Toggle,{className:s("absolute right-0 top-0 inline-flex h-10 items-center justify-center px-3 py-2 hover:bg-transparent","text-muted-foreground transition-colors hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50"),children:e(o.Icon,{visible:e(g,{className:"h-4 w-4"}),hidden:e(f,{className:"h-4 w-4"})})})]})})});p.displayName="InputPassword";export{p as a};
2
+ //# sourceMappingURL=chunk-IM2PR6JL.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/input-password/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { unstable_PasswordToggleField as PasswordToggleField } from \"radix-ui\";\nimport { EyeOffIcon, EyeIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type InputPasswordProps = {\n className?: string;\n} & React.ComponentPropsWithoutRef<typeof PasswordToggleField.Input>;\n\nconst InputPassword = React.forwardRef<\n React.ElementRef<typeof PasswordToggleField.Input>,\n InputPasswordProps\n>(({ className, ...props }, ref) => {\n return (\n <PasswordToggleField.Root>\n <div className=\"relative\">\n <PasswordToggleField.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 pr-10 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n <PasswordToggleField.Toggle\n className={cn(\n \"absolute right-0 top-0 inline-flex h-10 items-center justify-center px-3 py-2 hover:bg-transparent\",\n \"text-muted-foreground transition-colors hover:text-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n )}\n >\n <PasswordToggleField.Icon\n visible={<EyeIcon className=\"h-4 w-4\" />}\n hidden={<EyeOffIcon className=\"h-4 w-4\" />}\n />\n </PasswordToggleField.Toggle>\n </div>\n </PasswordToggleField.Root>\n );\n});\nInputPassword.displayName = \"InputPassword\";\n\nexport { InputPassword };\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QACvB,OAAS,gCAAgCC,MAA2B,WACpE,OAAS,cAAAC,EAAY,WAAAC,MAAe,eAc9B,OACE,OAAAC,EADF,QAAAC,MAAA,oBANN,IAAMC,EAAsB,aAG1B,CAACC,EAAyBC,IAAQ,CAAjC,IAAAC,EAAAF,EAAE,WAAAG,CAbL,EAaGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OACEL,EAACS,EAAoB,KAApB,CACC,SAAAR,EAAC,OAAI,UAAU,WACb,UAAAD,EAACS,EAAoB,MAApBC,EAAA,CACC,IAAKN,EACL,UAAWO,EACT,qWACAL,CACF,GACIC,EACN,EACAP,EAACS,EAAoB,OAApB,CACC,UAAWE,EACT,qGACA,gEACA,sGACA,kDACF,EAEA,SAAAX,EAACS,EAAoB,KAApB,CACC,QAAST,EAACY,EAAA,CAAQ,UAAU,UAAU,EACtC,OAAQZ,EAACa,EAAA,CAAW,UAAU,UAAU,EAC1C,EACF,GACF,EACF,CAEJ,CAAC,EACDX,EAAc,YAAc",
6
+ "names": ["React", "PasswordToggleField", "EyeOffIcon", "EyeIcon", "jsx", "jsxs", "InputPassword", "_a", "ref", "_b", "className", "props", "__objRest", "PasswordToggleField", "__spreadValues", "cn", "EyeIcon", "EyeOffIcon"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as s}from"./chunk-WIFBPNRH.js";import{a as l,c as o}from"./chunk-WHECA25N.js";import*as i from"react";import{cva as g}from"class-variance-authority";import{jsx as n}from"react/jsx-runtime";var b=g("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg]:absolute [&>svg]:left-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 bg-rose-50 text-destructive dark:border-destructive [&>svg]:text-destructive",warning:"border-yellow-500/50 bg-yellow-50 text-yellow-800 dark:border-yellow-500 dark:bg-yellow-950/30 dark:text-yellow-200 [&>svg]:text-yellow-600 dark:[&>svg]:text-yellow-400",info:"border-blue-500/50 bg-blue-50 text-blue-800 dark:border-blue-500 dark:bg-blue-950/30 dark:text-blue-200 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-400"}},defaultVariants:{variant:"default"}}),c=i.forwardRef((e,d)=>{var p=e,{className:t,variant:r}=p,a=o(p,["className","variant"]);return n("div",l({ref:d,role:"alert",className:s(b({variant:r}),t)},a))});c.displayName="Alert";var u=i.forwardRef((d,a)=>{var e=d,{className:t}=e,r=o(e,["className"]);return n("h5",l({ref:a,className:s("mb-1 font-medium leading-none tracking-tight",t)},r))});u.displayName="AlertTitle";var v=i.forwardRef((d,a)=>{var e=d,{className:t}=e,r=o(e,["className"]);return n("div",l({ref:a,className:s("text-sm [&_p]:leading-relaxed",t)},r))});v.displayName="AlertDescription";export{c as a,u as b,v as c};
2
+ //# sourceMappingURL=chunk-INK2D47B.js.map