@lawnguru/ui 0.0.0-stage → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/README.md +30 -2
  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-322C3AJR.js +2 -0
  7. package/dist/chunk-322C3AJR.js.map +7 -0
  8. package/dist/chunk-46MFR2CI.js +2 -0
  9. package/dist/chunk-46MFR2CI.js.map +7 -0
  10. package/dist/chunk-4HREOJXZ.js +2 -0
  11. package/dist/chunk-4HREOJXZ.js.map +7 -0
  12. package/dist/chunk-5AXWISGI.js +2 -0
  13. package/dist/chunk-5AXWISGI.js.map +7 -0
  14. package/dist/chunk-62LTWWXS.js +2 -0
  15. package/dist/chunk-62LTWWXS.js.map +7 -0
  16. package/dist/chunk-63IVPQSD.js +2 -0
  17. package/dist/chunk-63IVPQSD.js.map +7 -0
  18. package/dist/chunk-6MI7ACXZ.js +2 -0
  19. package/dist/chunk-6MI7ACXZ.js.map +7 -0
  20. package/dist/chunk-7EVFMYIH.js +2 -0
  21. package/dist/chunk-7EVFMYIH.js.map +7 -0
  22. package/dist/chunk-7H74R7P4.js +2 -0
  23. package/dist/chunk-7H74R7P4.js.map +7 -0
  24. package/dist/chunk-7TYPESVD.js +2 -0
  25. package/dist/chunk-7TYPESVD.js.map +7 -0
  26. package/dist/chunk-A4EVMSOO.js +2 -0
  27. package/dist/chunk-A4EVMSOO.js.map +7 -0
  28. package/dist/chunk-BF3VTYEM.js +2 -0
  29. package/dist/chunk-BF3VTYEM.js.map +7 -0
  30. package/dist/chunk-BJWILCTE.js +2 -0
  31. package/dist/chunk-BJWILCTE.js.map +7 -0
  32. package/dist/chunk-BY3UM6EV.js +2 -0
  33. package/dist/chunk-BY3UM6EV.js.map +7 -0
  34. package/dist/chunk-CALZEY6V.js +2 -0
  35. package/dist/chunk-CALZEY6V.js.map +7 -0
  36. package/dist/chunk-CF236UZ4.js +2 -0
  37. package/dist/chunk-CF236UZ4.js.map +7 -0
  38. package/dist/chunk-DBMJIVTY.js +2 -0
  39. package/dist/chunk-DBMJIVTY.js.map +7 -0
  40. package/dist/chunk-DCPZZOJQ.js +2 -0
  41. package/dist/chunk-DCPZZOJQ.js.map +7 -0
  42. package/dist/chunk-FKH5WAC7.js +2 -0
  43. package/dist/chunk-FKH5WAC7.js.map +7 -0
  44. package/dist/chunk-FUXRPZVU.js +2 -0
  45. package/dist/chunk-FUXRPZVU.js.map +7 -0
  46. package/dist/chunk-GATZOHQ6.js +1 -0
  47. package/dist/chunk-GATZOHQ6.js.map +7 -0
  48. package/dist/chunk-GTEOHHVD.js +2 -0
  49. package/dist/chunk-GTEOHHVD.js.map +7 -0
  50. package/dist/chunk-IM2PR6JL.js +2 -0
  51. package/dist/chunk-IM2PR6JL.js.map +7 -0
  52. package/dist/chunk-INK2D47B.js +2 -0
  53. package/dist/chunk-INK2D47B.js.map +7 -0
  54. package/dist/chunk-JVQR7SBQ.js +2 -0
  55. package/dist/chunk-JVQR7SBQ.js.map +7 -0
  56. package/dist/chunk-KCQQSXMU.js +2 -0
  57. package/dist/chunk-KCQQSXMU.js.map +7 -0
  58. package/dist/chunk-KGEITSDG.js +2 -0
  59. package/dist/chunk-KGEITSDG.js.map +7 -0
  60. package/dist/chunk-KR5A3H22.js +2 -0
  61. package/dist/chunk-KR5A3H22.js.map +7 -0
  62. package/dist/chunk-L4EACCHY.js +2 -0
  63. package/dist/chunk-L4EACCHY.js.map +7 -0
  64. package/dist/chunk-LUG5DIYB.js +2 -0
  65. package/dist/chunk-LUG5DIYB.js.map +7 -0
  66. package/dist/chunk-M3WRRDK4.js +2 -0
  67. package/dist/chunk-M3WRRDK4.js.map +7 -0
  68. package/dist/chunk-NMUGPQJR.js +2 -0
  69. package/dist/chunk-NMUGPQJR.js.map +7 -0
  70. package/dist/chunk-P2J4T7VX.js +2 -0
  71. package/dist/chunk-P2J4T7VX.js.map +7 -0
  72. package/dist/chunk-PQXLSFXS.js +2 -0
  73. package/dist/chunk-PQXLSFXS.js.map +7 -0
  74. package/dist/chunk-PRAYE34P.js +2 -0
  75. package/dist/chunk-PRAYE34P.js.map +7 -0
  76. package/dist/chunk-PYVYS6W4.js +2 -0
  77. package/dist/chunk-PYVYS6W4.js.map +7 -0
  78. package/dist/chunk-Q3PG3WWG.js +2 -0
  79. package/dist/chunk-Q3PG3WWG.js.map +7 -0
  80. package/dist/chunk-RHVVPPZE.js +2 -0
  81. package/dist/chunk-RHVVPPZE.js.map +7 -0
  82. package/dist/chunk-RRDBPO2I.js +2 -0
  83. package/dist/chunk-RRDBPO2I.js.map +7 -0
  84. package/dist/chunk-S2I5LIDP.js +2 -0
  85. package/dist/chunk-S2I5LIDP.js.map +7 -0
  86. package/dist/chunk-SJZ34LYG.js +2 -0
  87. package/dist/chunk-SJZ34LYG.js.map +7 -0
  88. package/dist/chunk-T73JL4BL.js +2 -0
  89. package/dist/chunk-T73JL4BL.js.map +7 -0
  90. package/dist/chunk-UUB5URTQ.js +2 -0
  91. package/dist/chunk-UUB5URTQ.js.map +7 -0
  92. package/dist/chunk-VIGX5NKJ.js +2 -0
  93. package/dist/chunk-VIGX5NKJ.js.map +7 -0
  94. package/dist/chunk-WHECA25N.js +2 -0
  95. package/dist/chunk-WHECA25N.js.map +7 -0
  96. package/dist/chunk-WIFBPNRH.js +2 -0
  97. package/dist/chunk-WIFBPNRH.js.map +7 -0
  98. package/dist/chunk-ZJVH3SNI.js +2 -0
  99. package/dist/chunk-ZJVH3SNI.js.map +7 -0
  100. package/dist/components/alert/index.js +2 -0
  101. package/dist/components/alert/index.js.map +7 -0
  102. package/dist/components/avatar/index.js +2 -0
  103. package/dist/components/avatar/index.js.map +7 -0
  104. package/dist/components/badge/index.js +2 -0
  105. package/dist/components/badge/index.js.map +7 -0
  106. package/dist/components/button/index.js +2 -0
  107. package/dist/components/button/index.js.map +7 -0
  108. package/dist/components/calendar/index.js +2 -0
  109. package/dist/components/calendar/index.js.map +7 -0
  110. package/dist/components/card/index.js +2 -0
  111. package/dist/components/card/index.js.map +7 -0
  112. package/dist/components/carousel/index.js +2 -0
  113. package/dist/components/carousel/index.js.map +7 -0
  114. package/dist/components/checkbox/index.js +2 -0
  115. package/dist/components/checkbox/index.js.map +7 -0
  116. package/dist/components/collapsible/index.js +2 -0
  117. package/dist/components/collapsible/index.js.map +7 -0
  118. package/dist/components/combobox/index.js +2 -0
  119. package/dist/components/combobox/index.js.map +7 -0
  120. package/dist/components/command/index.js +2 -0
  121. package/dist/components/command/index.js.map +7 -0
  122. package/dist/components/confirm/index.js +2 -0
  123. package/dist/components/confirm/index.js.map +7 -0
  124. package/dist/components/dialog/index.js +2 -0
  125. package/dist/components/dialog/index.js.map +7 -0
  126. package/dist/components/dialog-responsive/index.js +2 -0
  127. package/dist/components/dialog-responsive/index.js.map +7 -0
  128. package/dist/components/drawer/index.js +2 -0
  129. package/dist/components/drawer/index.js.map +7 -0
  130. package/dist/components/dropdown-menu/index.js +2 -0
  131. package/dist/components/dropdown-menu/index.js.map +7 -0
  132. package/dist/components/dropdown-menu-responsive/index.js +2 -0
  133. package/dist/components/dropdown-menu-responsive/index.js.map +7 -0
  134. package/dist/components/empty/index.js +2 -0
  135. package/dist/components/empty/index.js.map +7 -0
  136. package/dist/components/form/index.js +2 -0
  137. package/dist/components/form/index.js.map +7 -0
  138. package/dist/components/input/index.js +2 -0
  139. package/dist/components/input/index.js.map +7 -0
  140. package/dist/components/input-group/index.js +2 -0
  141. package/dist/components/input-group/index.js.map +7 -0
  142. package/dist/components/input-otp/index.js +2 -0
  143. package/dist/components/input-otp/index.js.map +7 -0
  144. package/dist/components/input-password/index.js +2 -0
  145. package/dist/components/input-password/index.js.map +7 -0
  146. package/dist/components/item/index.js +2 -0
  147. package/dist/components/item/index.js.map +7 -0
  148. package/dist/components/label/index.js +2 -0
  149. package/dist/components/label/index.js.map +7 -0
  150. package/dist/components/loading-page/index.js +2 -0
  151. package/dist/components/loading-page/index.js.map +7 -0
  152. package/dist/components/photo-lightbox/index.js +2 -0
  153. package/dist/components/photo-lightbox/index.js.map +7 -0
  154. package/dist/components/photo-upload/index.js +2 -0
  155. package/dist/components/photo-upload/index.js.map +7 -0
  156. package/dist/components/popover/index.js +2 -0
  157. package/dist/components/popover/index.js.map +7 -0
  158. package/dist/components/progress/index.js +2 -0
  159. package/dist/components/progress/index.js.map +7 -0
  160. package/dist/components/questionnaire/index.js +2 -0
  161. package/dist/components/questionnaire/index.js.map +7 -0
  162. package/dist/components/radio-group/index.js +2 -0
  163. package/dist/components/radio-group/index.js.map +7 -0
  164. package/dist/components/rating/index.js +2 -0
  165. package/dist/components/rating/index.js.map +7 -0
  166. package/dist/components/resizable/index.js +2 -0
  167. package/dist/components/resizable/index.js.map +7 -0
  168. package/dist/components/scroll-area/index.js +2 -0
  169. package/dist/components/scroll-area/index.js.map +7 -0
  170. package/dist/components/select/index.js +2 -0
  171. package/dist/components/select/index.js.map +7 -0
  172. package/dist/components/separator/index.js +2 -0
  173. package/dist/components/separator/index.js.map +7 -0
  174. package/dist/components/sheet/index.js +2 -0
  175. package/dist/components/sheet/index.js.map +7 -0
  176. package/dist/components/slider/index.js +2 -0
  177. package/dist/components/slider/index.js.map +7 -0
  178. package/dist/components/spinner/index.js +2 -0
  179. package/dist/components/spinner/index.js.map +7 -0
  180. package/dist/components/table/index.js +2 -0
  181. package/dist/components/table/index.js.map +7 -0
  182. package/dist/components/tabs/index.js +2 -0
  183. package/dist/components/tabs/index.js.map +7 -0
  184. package/dist/components/text-area/index.js +2 -0
  185. package/dist/components/text-area/index.js.map +7 -0
  186. package/dist/components/toggle/index.js +2 -0
  187. package/dist/components/toggle/index.js.map +7 -0
  188. package/dist/components/toggle-group/index.js +2 -0
  189. package/dist/components/toggle-group/index.js.map +7 -0
  190. package/dist/hooks/index.js +2 -0
  191. package/dist/hooks/index.js.map +7 -0
  192. package/dist/hooks/use-is-touch-device.js +2 -0
  193. package/dist/hooks/use-is-touch-device.js.map +7 -0
  194. package/dist/index.d.ts +716 -0
  195. package/dist/index.js +2 -0
  196. package/dist/index.js.map +7 -0
  197. package/dist/lib/utils.js +2 -0
  198. package/dist/lib/utils.js.map +7 -0
  199. package/dist/output.css +4882 -0
  200. package/dist/tailwind.preset.d.ts +341 -0
  201. package/dist/tailwind.preset.js +2 -0
  202. package/dist/tailwind.preset.js.map +7 -0
  203. package/dist/variables.css +93 -0
  204. package/package.json +131 -4
package/README.md CHANGED
@@ -1,3 +1,31 @@
1
- # Temporary Holding Version
1
+ # LawnGuru UI
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ This is our UI project. Here, we keep all the reusable components that are used within our systems. This package is built and published to the public [npm registry](https://www.npmjs.com/package/@lawnguru/ui) as `@lawnguru/ui`, so we can install it from our projects and use the components.
4
+
5
+ In development, it uses [Storybook](https://storybook.js.org/) to create an interactive sandbox for us to build, visualize and test our components before using them in the outer world.
6
+
7
+ ## How to run it
8
+
9
+ 1. Clone the repository.
10
+ 2. Run `pnpm install` in the root folder.
11
+ 3. Run `pnpm storybook`, you should see in the output of this command, the address and port to follow to our *Storybook* view.
12
+
13
+ ## Installation
14
+
15
+ Install the package from the npm registry in your project:
16
+
17
+ ```bash
18
+ pnpm add @lawnguru/ui
19
+ # or
20
+ npm install @lawnguru/ui
21
+ ```
22
+
23
+ ## Releases
24
+
25
+ Releases are automated through GitHub Actions (`.github/workflows/publish.yaml`):
26
+
27
+ 1. Go to the **Actions** tab and run the **Publish Package** workflow manually.
28
+ 2. Choose the version bump type: patch, minor, or major.
29
+ 3. The workflow bumps the version, builds, publishes to npm, and creates a GitHub Release.
30
+
31
+ Publishing uses [npm trusted publishing](https://docs.npmjs.com/trusted-publishers) with GitHub OIDC, so no npm tokens are stored in the repository.
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-WIFBPNRH.js";import{a as d,b as m,c as n}from"./chunk-WHECA25N.js";import*as r from"react";import{Checkbox as p}from"radix-ui";import{CheckIcon as R}from"lucide-react";import{jsx as o,jsxs as x}from"react/jsx-runtime";var h=r.forwardRef((s,e)=>{var t=s,{className:i}=t,c=n(t,["className"]);return o(p.Root,m(d({ref:e,className:a("peer h-4 w-4 shrink-0 rounded-[5px] border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",i)},c),{children:o(p.Indicator,{className:a("flex items-center justify-center text-current"),children:o(R,{className:"h-4 w-4"})})}))});h.displayName=p.Root.displayName;var k=r.forwardRef((C,l)=>{var f=C,{className:i,label:c,description:e,disabled:s}=f,t=n(f,["className","label","description","disabled"]);let b=r.useId();return x("div",{className:a("flex space-x-2",{"items-center":!e,"first:*:translate-y-1":!!e},i),children:[o(h,d({ref:l,id:t.id||b,disabled:s},t)),x("div",{className:"grid gap-1.5 leading-none",children:[o("label",{htmlFor:t.id||b,className:a("text-sm leading-none",{"font-medium":!!e,"cursor-not-allowed opacity-70":!!s}),children:c}),e&&o("p",{className:"text-xs text-muted-foreground",children:e})]})]})});k.displayName="CheckboxOption";var u=r.forwardRef((t,s)=>{var l=t,{className:i,children:c}=l,e=n(l,["className","children"]);return o("div",m(d({ref:s,className:a("flex flex-col divide-y *:py-3 first:*:pt-0 last:*:pb-0 [&_label]:text-lg [&_label]:md:text-base",i)},e),{children:c}))});u.displayName="CheckboxGroup";export{h as a,k as b,u as c};
2
+ //# sourceMappingURL=chunk-2FVVWPIW.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/checkbox/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-[5px] border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <CheckIcon className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport type CheckboxOptionProps = {\n label: string | React.ReactNode;\n description?: string;\n} & React.ComponentPropsWithoutRef<typeof Checkbox>;\n\nconst CheckboxOption = React.forwardRef<\n React.ElementRef<typeof Checkbox>,\n CheckboxOptionProps\n>(({ className, label, description, disabled, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <div\n className={cn(\n \"flex space-x-2\",\n {\n \"items-center\": !description,\n \"first:*:translate-y-1\": !!description,\n },\n className,\n )}\n >\n <Checkbox ref={ref} id={props.id || id} disabled={disabled} {...props} />\n <div className=\"grid gap-1.5 leading-none\">\n <label\n htmlFor={props.id || id}\n className={cn(\"text-sm leading-none\", {\n \"font-medium\": !!description,\n \"cursor-not-allowed opacity-70\": !!disabled,\n })}\n >\n {label}\n </label>\n {description && (\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n )}\n </div>\n </div>\n );\n});\nCheckboxOption.displayName = \"CheckboxOption\";\n\nexport type CheckboxGroupProps = {\n className?: string;\n children: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>;\n\nconst CheckboxGroup = React.forwardRef<HTMLDivElement, CheckboxGroupProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col divide-y *:py-3 first:*:pt-0 last:*:pb-0 [&_label]:text-lg [&_label]:md:text-base\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n ),\n);\nCheckboxGroup.displayName = \"CheckboxGroup\";\n\nexport { Checkbox, CheckboxOption, CheckboxGroup };\n"],
5
+ "mappings": "yFAAA,UAAYA,MAAW,QACvB,OAAS,YAAYC,MAAyB,WAE9C,OAAS,aAAAC,MAAiB,eAiBpB,cAAAC,EA6BA,QAAAC,MA7BA,oBAfN,IAAMC,EAAiB,aAGrB,CAACC,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CARL,EAQGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAL,EAACS,EAAkB,KAAlBC,EAAAC,EAAA,CACC,IAAKP,EACL,UAAWQ,EACT,wQACAN,CACF,GACIC,GANL,CAQC,SAAAP,EAACS,EAAkB,UAAlB,CACC,UAAWG,EAAG,+CAA+C,EAE7D,SAAAZ,EAACa,EAAA,CAAU,UAAU,UAAU,EACjC,GACF,EACD,EACDX,EAAS,YAAcO,EAAkB,KAAK,YAO9C,IAAMK,EAAuB,aAG3B,CAACX,EAAuDC,IAAQ,CAA/D,IAAAC,EAAAF,EAAE,WAAAG,EAAW,MAAAS,EAAO,YAAAC,EAAa,SAAAC,CAlCpC,EAkCGZ,EAA8CE,EAAAC,EAA9CH,EAA8C,CAA5C,YAAW,QAAO,cAAa,aAClC,IAAMa,EAAW,QAAM,EAEvB,OACEjB,EAAC,OACC,UAAWW,EACT,iBACA,CACE,eAAgB,CAACI,EACjB,wBAAyB,CAAC,CAACA,CAC7B,EACAV,CACF,EAEA,UAAAN,EAACE,EAAAS,EAAA,CAAS,IAAKP,EAAK,GAAIG,EAAM,IAAMW,EAAI,SAAUD,GAAcV,EAAO,EACvEN,EAAC,OAAI,UAAU,4BACb,UAAAD,EAAC,SACC,QAASO,EAAM,IAAMW,EACrB,UAAWN,EAAG,uBAAwB,CACpC,cAAe,CAAC,CAACI,EACjB,gCAAiC,CAAC,CAACC,CACrC,CAAC,EAEA,SAAAF,EACH,EACCC,GACChB,EAAC,KAAE,UAAU,gCAAiC,SAAAgB,EAAY,GAE9D,GACF,CAEJ,CAAC,EACDF,EAAe,YAAc,iBAO7B,IAAMK,EAAsB,aAC1B,CAAChB,EAAmCC,IAAK,CAAxC,IAAAC,EAAAF,EAAE,WAAAG,EAAW,SAAAc,CA1EhB,EA0EGf,EAA0BE,EAAAC,EAA1BH,EAA0B,CAAxB,YAAW,aACZ,OAAAL,EAAC,MAAAU,EAAAC,EAAA,CACC,IAAKP,EACL,UAAWQ,EACT,kGACAN,CACF,GACIC,GANL,CAQE,SAAAa,GACH,EAEJ,EACAD,EAAc,YAAc",
6
+ "names": ["React", "CheckboxPrimitive", "CheckIcon", "jsx", "jsxs", "Checkbox", "_a", "ref", "_b", "className", "props", "__objRest", "CheckboxPrimitive", "__spreadProps", "__spreadValues", "cn", "CheckIcon", "CheckboxOption", "label", "description", "disabled", "id", "CheckboxGroup", "children"]
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-2R5NZUY2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/dialog/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\nimport { XIcon } from \"lucide-react\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid 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\",\n className,\n )}\n {...props}\n >\n {children}\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\">\n <XIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-left text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-left text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\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 D,b as h,c as N,d as l,e as x,f as b,g as y,h as B}from"./chunk-7H74R7P4.js";import{b as n}from"./chunk-BF3VTYEM.js";import{a}from"./chunk-WIFBPNRH.js";import{a as f,c as R}from"./chunk-WHECA25N.js";import{Fragment as w,jsx as e,jsxs as i}from"react/jsx-runtime";var P=({title:r,children:c,confirmText:p="Confirm",cancelText:d="Cancel",variant:v="default",cancelVariant:t="outline",icon:g,onConfirm:m,onCancel:u,className:k,loading:s})=>{let{isTouch:o}=D(),C=v==="destructive";return i(x,{className:a("[&>button]:hidden",!o&&"max-w-lg",k),children:[i(b,{className:a(!o&&"flex-row items-start gap-5 space-y-0",o&&"gap-4"),children:[!o&&g&&e("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[hsl(48,89%,93%)] text-[hsl(37,86%,23%)]",children:g}),i("div",{className:a(!o&&g&&"space-y-2",o&&"space-y-3"),children:[e(B,{className:"text-left",children:r}),e("p",{className:"text-left text-sm text-foreground",children:c})]})]}),e(y,{className:a(!o&&"flex-row justify-end gap-2"),children:o?i(w,{children:[e(l,{asChild:!0,children:e(n,{variant:C?"destructive":"default",size:"lg",onClick:m,disabled:s,className:"w-full",children:s?"Loading...":p})}),e(l,{asChild:!0,children:e(n,{variant:t,size:"lg",onClick:u,disabled:s,className:"w-full",children:d})})]}):i(w,{children:[e(l,{asChild:!0,children:e(n,{variant:t,onClick:u,disabled:s,children:d})}),e(l,{asChild:!0,children:e(n,{variant:C?"destructive":"default",onClick:m,disabled:s,children:s?"Loading...":p})})]})})]})},T=v=>{var t=v,{trigger:r,open:c,onOpenChange:p}=t,d=R(t,["trigger","open","onOpenChange"]);return i(h,{open:c,onOpenChange:p,children:[r&&e(N,{asChild:!0,children:r}),e(P,f({},d))]})};T.displayName="Confirm";export{T as a};
2
+ //# sourceMappingURL=chunk-322C3AJR.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/confirm/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport {\n DialogResponsive,\n DialogResponsiveContent,\n DialogResponsiveFooter,\n DialogResponsiveHeader,\n DialogResponsiveTitle,\n DialogResponsiveTrigger,\n DialogResponsiveClose,\n useDialogResponsive,\n} from \"@/components/dialog-responsive\";\nimport { Button, type ButtonProps } from \"@/components/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ConfirmProps = {\n /** The title of the confirmation dialog */\n title: string;\n /** The description/content of the confirmation dialog (can be string or React elements) */\n children: React.ReactNode;\n /** The text for the confirm button */\n confirmText?: string;\n /** The text for the cancel button */\n cancelText?: string;\n /** Whether the action is destructive (red button) */\n variant?: \"default\" | \"destructive\";\n /** Button variant for the cancel action */\n cancelVariant?: ButtonProps[\"variant\"];\n /** Icon to display in desktop mode (only visible on non-touch devices) */\n icon?: React.ReactNode;\n /** Callback when the confirm button is clicked */\n onConfirm?: () => void;\n /** Callback when the cancel button is clicked */\n onCancel?: () => void;\n /** The trigger element that opens the dialog */\n trigger?: React.ReactNode;\n /** Controlled open state */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Additional class name for the content */\n className?: string;\n /** Whether the confirm action is loading */\n loading?: boolean;\n};\n\nconst ConfirmContent = ({\n title,\n children,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n variant = \"default\",\n cancelVariant = \"outline\",\n icon,\n onConfirm,\n onCancel,\n className,\n loading,\n}: Omit<ConfirmProps, \"trigger\" | \"open\" | \"onOpenChange\">) => {\n const { isTouch } = useDialogResponsive();\n const isDestructive = variant === \"destructive\";\n\n return (\n <DialogResponsiveContent\n className={cn(\n \"[&>button]:hidden\", // Hide default close button\n !isTouch && \"max-w-lg\",\n className,\n )}\n >\n <DialogResponsiveHeader\n className={cn(\n !isTouch && \"flex-row items-start gap-5 space-y-0\",\n isTouch && \"gap-4\",\n )}\n >\n {!isTouch && icon && (\n <div className=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[hsl(48,89%,93%)] text-[hsl(37,86%,23%)]\">\n {icon}\n </div>\n )}\n <div\n className={cn(\n !isTouch && icon && \"space-y-2\",\n isTouch && \"space-y-3\",\n )}\n >\n <DialogResponsiveTitle className=\"text-left\">\n {title}\n </DialogResponsiveTitle>\n <p className=\"text-left text-sm text-foreground\">{children}</p>\n </div>\n </DialogResponsiveHeader>\n <DialogResponsiveFooter\n className={cn(!isTouch && \"flex-row justify-end gap-2\")}\n >\n {isTouch ? (\n <>\n <DialogResponsiveClose asChild>\n <Button\n variant={isDestructive ? \"destructive\" : \"default\"}\n size=\"lg\"\n onClick={onConfirm}\n disabled={loading}\n className=\"w-full\"\n >\n {loading ? \"Loading...\" : confirmText}\n </Button>\n </DialogResponsiveClose>\n <DialogResponsiveClose asChild>\n <Button\n variant={cancelVariant}\n size=\"lg\"\n onClick={onCancel}\n disabled={loading}\n className=\"w-full\"\n >\n {cancelText}\n </Button>\n </DialogResponsiveClose>\n </>\n ) : (\n <>\n <DialogResponsiveClose asChild>\n <Button\n variant={cancelVariant}\n onClick={onCancel}\n disabled={loading}\n >\n {cancelText}\n </Button>\n </DialogResponsiveClose>\n <DialogResponsiveClose asChild>\n <Button\n variant={isDestructive ? \"destructive\" : \"default\"}\n onClick={onConfirm}\n disabled={loading}\n >\n {loading ? \"Loading...\" : confirmText}\n </Button>\n </DialogResponsiveClose>\n </>\n )}\n </DialogResponsiveFooter>\n </DialogResponsiveContent>\n );\n};\n\nconst Confirm = ({\n trigger,\n open,\n onOpenChange,\n ...contentProps\n}: ConfirmProps) => {\n return (\n <DialogResponsive open={open} onOpenChange={onOpenChange}>\n {trigger && (\n <DialogResponsiveTrigger asChild>{trigger}</DialogResponsiveTrigger>\n )}\n <ConfirmContent {...contentProps} />\n </DialogResponsive>\n );\n};\n\nConfirm.displayName = \"Confirm\";\n\nexport { Confirm };\n"],
5
+ "mappings": "mNA8EU,OAoBA,YAAAA,EApBA,OAAAC,EAIF,QAAAC,MAJE,oBA/BV,IAAMC,EAAiB,CAAC,CACtB,MAAAC,EACA,SAAAC,EACA,YAAAC,EAAc,UACd,WAAAC,EAAa,SACb,QAAAC,EAAU,UACV,cAAAC,EAAgB,UAChB,KAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,IAA+D,CAC7D,GAAM,CAAE,QAAAC,CAAQ,EAAIC,EAAoB,EAClCC,EAAgBT,IAAY,cAElC,OACEN,EAACgB,EAAA,CACC,UAAWC,EACT,oBACA,CAACJ,GAAW,WACZF,CACF,EAEA,UAAAX,EAACkB,EAAA,CACC,UAAWD,EACT,CAACJ,GAAW,uCACZA,GAAW,OACb,EAEC,WAACA,GAAWL,GACXT,EAAC,OAAI,UAAU,+GACZ,SAAAS,EACH,EAEFR,EAAC,OACC,UAAWiB,EACT,CAACJ,GAAWL,GAAQ,YACpBK,GAAW,WACb,EAEA,UAAAd,EAACoB,EAAA,CAAsB,UAAU,YAC9B,SAAAjB,EACH,EACAH,EAAC,KAAE,UAAU,oCAAqC,SAAAI,EAAS,GAC7D,GACF,EACAJ,EAACqB,EAAA,CACC,UAAWH,EAAG,CAACJ,GAAW,4BAA4B,EAErD,SAAAA,EACCb,EAAAF,EAAA,CACE,UAAAC,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASP,EAAgB,cAAgB,UACzC,KAAK,KACL,QAASN,EACT,SAAUG,EACV,UAAU,SAET,SAAAA,EAAU,aAAeR,EAC5B,EACF,EACAL,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASf,EACT,KAAK,KACL,QAASG,EACT,SAAUE,EACV,UAAU,SAET,SAAAP,EACH,EACF,GACF,EAEAL,EAAAF,EAAA,CACE,UAAAC,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASf,EACT,QAASG,EACT,SAAUE,EAET,SAAAP,EACH,EACF,EACAN,EAACsB,EAAA,CAAsB,QAAO,GAC5B,SAAAtB,EAACuB,EAAA,CACC,QAASP,EAAgB,cAAgB,UACzC,QAASN,EACT,SAAUG,EAET,SAAAA,EAAU,aAAeR,EAC5B,EACF,GACF,EAEJ,GACF,CAEJ,EAEMmB,EAAWC,GAKG,CALH,IAAAC,EAAAD,EACf,SAAAE,EACA,KAAAC,EACA,aAAAC,CAxJF,EAqJiBH,EAIZI,EAAAC,EAJYL,EAIZ,CAHH,UACA,OACA,iBAGA,OACEzB,EAAC+B,EAAA,CAAiB,KAAMJ,EAAM,aAAcC,EACzC,UAAAF,GACC3B,EAACiC,EAAA,CAAwB,QAAO,GAAE,SAAAN,EAAQ,EAE5C3B,EAACE,EAAAgC,EAAA,GAAmBJ,EAAc,GACpC,CAEJ,EAEAN,EAAQ,YAAc",
6
+ "names": ["Fragment", "jsx", "jsxs", "ConfirmContent", "title", "children", "confirmText", "cancelText", "variant", "cancelVariant", "icon", "onConfirm", "onCancel", "className", "loading", "isTouch", "useDialogResponsive", "isDestructive", "DialogResponsiveContent", "cn", "DialogResponsiveHeader", "DialogResponsiveTitle", "DialogResponsiveFooter", "DialogResponsiveClose", "Button", "Confirm", "_a", "_b", "trigger", "open", "onOpenChange", "contentProps", "__objRest", "DialogResponsive", "DialogResponsiveTrigger", "__spreadValues"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import*as e from"react";function n(){let[o,c]=e.useState(!1);return e.useEffect(()=>{let t=()=>{c("ontouchstart"in window||navigator.maxTouchPoints>0||window.matchMedia("(pointer: coarse)").matches)};return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]),o}export{n as a};
2
+ //# sourceMappingURL=chunk-46MFR2CI.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/hooks/use-is-touch-device.ts"],
4
+ "sourcesContent": ["import * as React from \"react\";\n\nexport function useIsTouchDevice() {\n const [isTouch, setIsTouch] = React.useState(false);\n\n React.useEffect(() => {\n const checkTouch = () => {\n setIsTouch(\n \"ontouchstart\" in window ||\n navigator.maxTouchPoints > 0 ||\n window.matchMedia(\"(pointer: coarse)\").matches,\n );\n };\n\n checkTouch();\n window.addEventListener(\"resize\", checkTouch);\n return () => window.removeEventListener(\"resize\", checkTouch);\n }, []);\n\n return isTouch;\n}\n"],
5
+ "mappings": "AAAA,UAAYA,MAAW,QAEhB,SAASC,GAAmB,CACjC,GAAM,CAACC,EAASC,CAAU,EAAU,WAAS,EAAK,EAElD,OAAM,YAAU,IAAM,CACpB,IAAMC,EAAa,IAAM,CACvBD,EACE,iBAAkB,QAChB,UAAU,eAAiB,GAC3B,OAAO,WAAW,mBAAmB,EAAE,OAC3C,CACF,EAEA,OAAAC,EAAW,EACX,OAAO,iBAAiB,SAAUA,CAAU,EACrC,IAAM,OAAO,oBAAoB,SAAUA,CAAU,CAC9D,EAAG,CAAC,CAAC,EAEEF,CACT",
6
+ "names": ["React", "useIsTouchDevice", "isTouch", "setIsTouch", "checkTouch"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as i}from"./chunk-WIFBPNRH.js";import{a as e,b as t,c as s}from"./chunk-WHECA25N.js";import*as l from"react";import{Progress as o}from"radix-ui";import{jsx as a}from"react/jsx-runtime";var n=l.forwardRef((P,R)=>{var r=P,{className:m,value:f}=r,p=s(r,["className","value"]);return a(o.Root,t(e({ref:R,className:i("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",m)},p),{children:a(o.Indicator,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(f||0)}%)`}})}))});n.displayName=o.Root.displayName;export{n as a};
2
+ //# sourceMappingURL=chunk-4HREOJXZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/progress/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Progress as ProgressPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative h-2 w-full overflow-hidden rounded-full bg-primary/20\",\n className,\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n"],
5
+ "mappings": "8FAAA,UAAYA,MAAW,QACvB,OAAS,YAAYC,MAAyB,WAgB1C,cAAAC,MAAA,oBAZJ,IAAMC,EAAiB,aAGrB,CAACC,EAAgCC,IAAK,CAArC,IAAAC,EAAAF,EAAE,WAAAG,EAAW,MAAAC,CARhB,EAQGF,EAAuBG,EAAAC,EAAvBJ,EAAuB,CAArB,YAAW,UACd,OAAAJ,EAACS,EAAkB,KAAlBC,EAAAC,EAAA,CACC,IAAKR,EACL,UAAWS,EACT,iEACAP,CACF,GACIE,GANL,CAQC,SAAAP,EAACS,EAAkB,UAAlB,CACC,UAAU,iDACV,MAAO,CAAE,UAAW,eAAe,KAAOH,GAAS,EAAE,IAAK,EAC5D,GACF,EACD,EACDL,EAAS,YAAcQ,EAAkB,KAAK",
6
+ "names": ["React", "ProgressPrimitive", "jsx", "Progress", "_a", "ref", "_b", "className", "value", "props", "__objRest", "ProgressPrimitive", "__spreadProps", "__spreadValues", "cn"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as f}from"./chunk-PRAYE34P.js";import{a as d}from"./chunk-WIFBPNRH.js";import{a as p,b as l,c as s}from"./chunk-WHECA25N.js";import*as i from"react";import{ToggleGroup as v}from"radix-ui";import{Check as z}from"lucide-react";import{jsx as u,jsxs as P}from"react/jsx-runtime";var h=i.createContext({size:"default",variant:"default",spacing:2,orientation:"horizontal",showCheckIcon:!1});function R(C){var m=C,{className:n,variant:r,size:o,spacing:t=2,orientation:e="horizontal",showCheckIcon:c=!1,children:g}=m,a=s(m,["className","variant","size","spacing","orientation","showCheckIcon","children"]);return u(v.Root,l(p({"data-slot":"toggle-group","data-variant":r,"data-size":o,"data-spacing":t,"data-orientation":e,style:{"--gap":`${t*.25}rem`},className:d("group/toggle-group data-vertical:flex-col data-vertical:items-stretch flex w-fit flex-row items-center gap-[var(--gap)] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)]",n)},a),{children:u(h.Provider,{value:{variant:r,size:o,spacing:t,orientation:e,showCheckIcon:c},children:g})}))}function I(c){var g=c,{className:n,children:r,variant:o="default",size:t="default"}=g,e=s(g,["className","children","variant","size"]);let a=i.useContext(h);return P(v.Item,l(p({"data-slot":"toggle-group-item","data-variant":a.variant||o,"data-size":a.size||t,"data-spacing":a.spacing,className:d("group/item group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t shrink-0 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2",f({variant:a.variant||o,size:a.size||t}),n)},e),{children:[a.showCheckIcon&&u(z,{className:"hidden size-4 group-data-[state=on]/item:block"}),r]}))}export{R as a,I as b};
2
+ //# sourceMappingURL=chunk-5AXWISGI.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/toggle-group/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\nimport { toggleVariants } from \"@/components/toggle\";\n\nimport { Check } from \"lucide-react\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n orientation?: \"horizontal\" | \"vertical\";\n showCheckIcon?: boolean;\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 2,\n orientation: \"horizontal\",\n showCheckIcon: false,\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 2,\n orientation = \"horizontal\",\n showCheckIcon = false,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n orientation?: \"horizontal\" | \"vertical\";\n showCheckIcon?: boolean;\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": `${spacing * 0.25}rem` } as React.CSSProperties}\n className={cn(\n \"group/toggle-group data-vertical:flex-col data-vertical:items-stretch flex w-fit flex-row items-center gap-[var(--gap)] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)]\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation, showCheckIcon }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n );\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"group/item group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t shrink-0 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {context.showCheckIcon && (\n <Check className=\"hidden size-4 group-data-[state=on]/item:block\" />\n )}\n {children}\n </ToggleGroupPrimitive.Item>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n"],
5
+ "mappings": "sIAEA,UAAYA,MAAW,QAEvB,OAAS,eAAeC,MAA4B,WAKpD,OAAS,SAAAC,MAAa,eA6ChB,cAAAC,EAoBF,QAAAC,MApBE,oBA3CN,IAAMC,EAA2B,gBAM/B,CACA,KAAM,UACN,QAAS,UACT,QAAS,EACT,YAAa,aACb,cAAe,EACjB,CAAC,EAED,SAASC,EAAYC,EAchB,CAdgB,IAAAC,EAAAD,EACnB,WAAAE,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,EACV,YAAAC,EAAc,aACd,cAAAC,EAAgB,GAChB,SAAAC,CAhCF,EAyBqBP,EAQhBQ,EAAAC,EARgBT,EAQhB,CAPH,YACA,UACA,OACA,UACA,cACA,gBACA,aAQA,OACEL,EAACe,EAAqB,KAArBC,EAAAC,EAAA,CACC,YAAU,eACV,eAAcV,EACd,YAAWC,EACX,eAAcC,EACd,mBAAkBC,EAClB,MAAO,CAAE,QAAS,GAAGD,EAAU,GAAI,KAAM,EACzC,UAAWS,EACT,yLACAZ,CACF,GACIO,GAXL,CAaC,SAAAb,EAACE,EAAmB,SAAnB,CACC,MAAO,CAAE,QAAAK,EAAS,KAAAC,EAAM,QAAAC,EAAS,YAAAC,EAAa,cAAAC,CAAc,EAE3D,SAAAC,EACH,GACF,CAEJ,CAEA,SAASO,EAAgBf,EAOc,CAPd,IAAAC,EAAAD,EACvB,WAAAE,EACA,SAAAM,EACA,QAAAL,EAAU,UACV,KAAAC,EAAO,SAnET,EA+DyBH,EAKpBQ,EAAAC,EALoBT,EAKpB,CAJH,YACA,WACA,UACA,SAIA,IAAMe,EAAgB,aAAWlB,CAAkB,EAEnD,OACED,EAACc,EAAqB,KAArBC,EAAAC,EAAA,CACC,YAAU,oBACV,eAAcG,EAAQ,SAAWb,EACjC,YAAWa,EAAQ,MAAQZ,EAC3B,eAAcY,EAAQ,QACtB,UAAWF,EACT,84BACAG,EAAe,CACb,QAASD,EAAQ,SAAWb,EAC5B,KAAMa,EAAQ,MAAQZ,CACxB,CAAC,EACDF,CACF,GACIO,GAbL,CAeE,UAAAO,EAAQ,eACPpB,EAACsB,EAAA,CAAM,UAAU,iDAAiD,EAEnEV,IACH,CAEJ",
6
+ "names": ["React", "ToggleGroupPrimitive", "Check", "jsx", "jsxs", "ToggleGroupContext", "ToggleGroup", "_a", "_b", "className", "variant", "size", "spacing", "orientation", "showCheckIcon", "children", "props", "__objRest", "ToggleGroupPrimitive", "__spreadProps", "__spreadValues", "cn", "ToggleGroupItem", "context", "toggleVariants", "Check"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as y,b as k}from"./chunk-BF3VTYEM.js";import{a as e}from"./chunk-WIFBPNRH.js";import{a as r,b as v,c as u}from"./chunk-WHECA25N.js";import*as p from"react";import{ChevronDownIcon as D,ChevronLeftIcon as N,ChevronRightIcon as R}from"lucide-react";import{DayPicker as B,getDefaultClassNames as C}from"react-day-picker";import{jsx as o}from"react/jsx-runtime";function q(b){var _=b,{className:f,classNames:h,showOutsideDays:a=!0,captionLayout:c="label",buttonVariant:w="ghost",formatters:i,components:x}=_,g=u(_,["className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components"]);let t=C();return o(B,r({showOutsideDays:a,className:e("bg-background group/calendar p-3 [--cell-width:auto] [--cell-height:36px] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,f),captionLayout:c,formatters:r({formatMonthDropdown:n=>n.toLocaleString("default",{month:"short"})},i),classNames:r({root:e("w-fit",t.root),months:e("relative flex flex-col gap-4 md:flex-row",t.months),month:e("flex w-full flex-col gap-4",t.month),nav:e("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",t.nav),button_previous:e(y({variant:w}),"h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50",t.button_previous),button_next:e(y({variant:w}),"h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50",t.button_next),month_caption:e("flex h-[--cell-height] w-full items-center justify-center px-[--cell-width]",t.month_caption),dropdowns:e("flex h-[--cell-height] w-full items-center justify-center gap-1.5 text-sm font-medium",t.dropdowns),dropdown_root:e("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",t.dropdown_root),dropdown:e("absolute inset-0 opacity-0",t.dropdown),caption_label:e("select-none font-medium",c==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",t.caption_label),table:"w-full border-collapse",weekdays:e("flex",t.weekdays),weekday:e("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",t.weekday),week:e("mt-2 flex w-full h-[--cell-height]",t.week),week_number_header:e("w-[--cell-width] select-none",t.week_number_header),week_number:e("text-muted-foreground select-none text-[0.8rem]",t.week_number),day:e("group/day relative aspect-square h-[--cell-height] w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",t.day),range_start:e("bg-accent rounded-l-md",t.range_start),range_middle:e("rounded-none",t.range_middle),range_end:e("bg-accent rounded-r-md",t.range_end),today:e("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",t.today),outside:e("text-muted-foreground aria-selected:text-muted-foreground",t.outside),disabled:e("text-muted-foreground opacity-50",t.disabled),hidden:e("invisible",t.hidden)},h),components:r({Root:m=>{var s=m,{className:n,rootRef:d}=s,l=u(s,["className","rootRef"]);return o("div",r({"data-slot":"calendar",ref:d,className:e(n)},l))},Chevron:m=>{var s=m,{className:n,orientation:d}=s,l=u(s,["className","orientation"]);return d==="left"?o(N,r({className:e("size-4",n)},l)):d==="right"?o(R,r({className:e("size-4",n)},l)):o(D,r({className:e("size-4",n)},l))},DayButton:z,WeekNumber:l=>{var m=l,{children:n}=m,d=u(m,["children"]);return o("td",v(r({},d),{children:o("div",{className:"flex w-[--cell-width] h-[--cell-height] items-center justify-center text-center",children:n})}))}},x)},g))}function z(w){var i=w,{className:f,day:h,modifiers:a}=i,c=u(i,["className","day","modifiers"]);let x=C(),g=p.useRef(null);return p.useEffect(()=>{var b;a.focused&&((b=g.current)==null||b.focus())},[a.focused]),o(k,r({ref:g,variant:"ghost",size:"icon","data-day":h.date.toLocaleDateString(),"data-selected-single":a.selected&&!a.range_start&&!a.range_end&&!a.range_middle,"data-range-start":a.range_start,"data-range-end":a.range_end,"data-range-middle":a.range_middle,className:e("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-primary data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-[--cell-height] w-full min-w-[--cell-width] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",x.day,f)},c))}export{q as a,z as b};
2
+ //# sourceMappingURL=chunk-62LTWWXS.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/calendar/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react'\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker'\n\nimport { cn } from '@/lib/utils'\nimport { Button, buttonVariants } from '@/components/button'\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant']\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'bg-background group/calendar p-3 [--cell-width:auto] [--cell-height:36px] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[--cell-height] w-[--cell-width] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n 'flex h-[--cell-height] w-full items-center justify-center px-[--cell-width]',\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n 'flex h-[--cell-height] w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n 'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label'\n ? 'text-sm'\n : '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\n defaultClassNames.caption_label,\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal',\n defaultClassNames.weekday,\n ),\n week: cn('mt-2 flex w-full h-[--cell-height]', defaultClassNames.week),\n week_number_header: cn(\n 'w-[--cell-width] select-none',\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n 'text-muted-foreground select-none text-[0.8rem]',\n defaultClassNames.week_number,\n ),\n day: cn(\n 'group/day relative aspect-square h-[--cell-height] w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\n defaultClassNames.day,\n ),\n range_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\n today: cn(\n 'bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none',\n defaultClassNames.today,\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside,\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex w-[--cell-width] h-[--cell-height] items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-primary data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-[--cell-height] w-full min-w-[--cell-width] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "ChevronDownIcon", "ChevronLeftIcon", "ChevronRightIcon", "DayPicker", "getDefaultClassNames", "jsx", "Calendar", "_a", "_b", "className", "classNames", "showOutsideDays", "captionLayout", "buttonVariant", "formatters", "components", "props", "__objRest", "defaultClassNames", "getDefaultClassNames", "DayPicker", "__spreadValues", "cn", "date", "buttonVariants", "rootRef", "_c", "_d", "orientation", "ChevronLeftIcon", "ChevronRightIcon", "ChevronDownIcon", "CalendarDayButton", "_e", "_f", "children", "__spreadProps", "day", "modifiers", "ref", "Button"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as h,b as y,c as N,e as C,f as P}from"./chunk-S2I5LIDP.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-63IVPQSD.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/photo-lightbox/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n type CarouselApi,\n} from \"@/components/carousel\";\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\n\nexport type PhotoLightboxPhoto = {\n src: string;\n alt?: string;\n};\n\nexport type PhotoLightboxProps = {\n photos: PhotoLightboxPhoto[];\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n initialIndex?: number;\n title?: string;\n trigger?: React.ReactNode;\n};\n\nconst iconButtonClassName =\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\";\n\nfunction useSelectedIndex(api: CarouselApi, fallback: number) {\n const subscribe = React.useCallback(\n (onStoreChange: () => void) => {\n if (!api) return () => undefined;\n api.on(\"reInit\", onStoreChange);\n api.on(\"select\", onStoreChange);\n return () => {\n api.off(\"reInit\", onStoreChange);\n api.off(\"select\", onStoreChange);\n };\n },\n [api],\n );\n\n return React.useSyncExternalStore(\n subscribe,\n () => api?.selectedScrollSnap() ?? fallback,\n () => fallback,\n );\n}\n\n/**\n * Full-screen photo viewer with arrows, thumbnails and dots; swipe-first on touch devices.\n * @param props.photos - photos to browse\n * @param props.initialIndex - photo shown when the viewer opens\n * @param props.trigger - optional element that opens the viewer\n */\nfunction PhotoLightbox({\n photos,\n open,\n onOpenChange,\n initialIndex = 0,\n title = \"Photos\",\n trigger,\n}: PhotoLightboxProps) {\n const isTouch = useIsTouchDevice();\n const [api, setApi] = React.useState<CarouselApi>();\n const openerRef = React.useRef<HTMLElement | null>(null);\n const selected = useSelectedIndex(api, initialIndex);\n const counter = `${selected + 1} of ${photos.length}`;\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n {trigger && (\n <DialogPrimitive.Trigger asChild>{trigger}</DialogPrimitive.Trigger>\n )}\n <DialogPrimitive.Portal>\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\" />\n <DialogPrimitive.Content\n data-slot=\"photo-lightbox\"\n aria-describedby={undefined}\n onOpenAutoFocus={() => {\n openerRef.current = document.activeElement as HTMLElement | null;\n }}\n onCloseAutoFocus={(event) => {\n // Radix only restores focus to its own Trigger\n if (trigger) return;\n event.preventDefault();\n openerRef.current?.focus();\n }}\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\"\n >\n <DialogPrimitive.Title className=\"sr-only\">\n {title}\n </DialogPrimitive.Title>\n <Carousel\n setApi={setApi}\n opts={{ startIndex: initialIndex }}\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\"\n >\n <div className=\"relative flex h-10 w-full shrink-0 items-center justify-center\">\n <DialogPrimitive.Close\n className={cn(\n iconButtonClassName,\n \"absolute flex items-center justify-center outline-none focus-visible:ring-2 focus-visible:ring-inverted-primary/60\",\n \"left-0 size-8 sm:left-auto sm:right-0 sm:size-10\",\n )}\n >\n <XIcon className=\"size-4 sm:size-5\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n <p className=\"text-sm font-medium text-inverted-primary/60 sm:hidden\">\n {counter}\n </p>\n <p className=\"hidden text-[11px] tracking-[0.015em] text-inverted-primary sm:block\">\n {isTouch\n ? \"Swipe to navigate\"\n : \"Use arrow keys to navigate \u00B7 ESC to close\"}\n </p>\n </div>\n\n <div className=\"relative flex min-h-0 w-full flex-1 items-center justify-center sm:px-20 sm:py-8\">\n <div className=\"w-full\">\n <CarouselContent className=\"ml-0\">\n {photos.map((photo, index) => (\n <CarouselItem\n key={`${photo.src}-${index}`}\n className=\"flex items-center justify-center pl-0\"\n >\n <img\n src={photo.src}\n alt={photo.alt ?? `${title} ${index + 1}`}\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\"\n />\n </CarouselItem>\n ))}\n </CarouselContent>\n </div>\n <CarouselPrevious\n placement=\"inline\"\n className={cn(\n iconButtonClassName,\n \"absolute left-1.5 top-1/2 size-10 -translate-y-1/2 sm:left-0 sm:size-12\",\n )}\n />\n <CarouselNext\n placement=\"inline\"\n className={cn(\n iconButtonClassName,\n \"absolute right-1.5 top-1/2 size-10 -translate-y-1/2 sm:right-0 sm:size-12\",\n )}\n />\n </div>\n\n {photos.length > 1 && (\n <div className=\"flex shrink-0 flex-col items-center gap-6 sm:gap-2.5\">\n <div className=\"flex max-w-full gap-1.5 overflow-x-auto sm:gap-2\">\n {photos.map((photo, index) => (\n <button\n key={`${photo.src}-${index}`}\n type=\"button\"\n onClick={() => api?.scrollTo(index)}\n aria-label={`Show photo ${index + 1}`}\n aria-current={index === selected}\n className={cn(\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\",\n index === selected &&\n \"border-2 border-inverted-primary opacity-100 sm:opacity-100\",\n )}\n >\n <img\n src={photo.src}\n alt=\"\"\n className=\"size-full object-cover\"\n />\n </button>\n ))}\n </div>\n <div className=\"flex gap-2.5 sm:gap-1.5\" aria-hidden=\"true\">\n {photos.map((photo, index) => (\n <span\n key={`${photo.src}-${index}`}\n className={cn(\n \"size-1.5 rounded-full bg-inverted-primary/40 sm:size-2\",\n index === selected && \"bg-inverted-primary\",\n )}\n />\n ))}\n </div>\n <p className=\"hidden text-[13px] font-medium tracking-[0.005em] text-inverted-primary/50 sm:block\">\n {counter}\n </p>\n <p className=\"text-[11px] tracking-[0.015em] text-inverted-primary/60 sm:hidden\">\n Swipe to navigate\n </p>\n </div>\n )}\n </Carousel>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n\nexport { PhotoLightbox };\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 o}from"./chunk-WIFBPNRH.js";import{a as t,c as r}from"./chunk-WHECA25N.js";import*as n from"react";import{jsx as f}from"react/jsx-runtime";var l=n.forwardRef((d,u)=>{var e=d,{className:i,type:p}=e,s=r(e,["className","type"]);return f("input",t({type:p,className:o("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 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",i),ref:u},s))});l.displayName="Input";export{l as a};
2
+ //# sourceMappingURL=chunk-6MI7ACXZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/input/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type InputProps = {} & React.InputHTMLAttributes<HTMLInputElement>;\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 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 ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QASjB,cAAAC,MAAA,oBAHN,IAAMC,EAAc,aAClB,CAACC,EAA+BC,IAAQ,CAAvC,IAAAC,EAAAF,EAAE,WAAAG,EAAW,KAAAC,CAPhB,EAOGF,EAAsBG,EAAAC,EAAtBJ,EAAsB,CAApB,YAAW,SACZ,OACEJ,EAAC,QAAAS,EAAA,CACC,KAAMH,EACN,UAAWI,EACT,+VACAL,CACF,EACA,IAAKF,GACDI,EACN,CAEJ,CACF,EACAN,EAAM,YAAc",
6
+ "names": ["React", "jsx", "Input", "_a", "ref", "_b", "className", "type", "props", "__objRest", "__spreadValues", "cn"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as p}from"./chunk-WIFBPNRH.js";import{a as o,b as v,c as s}from"./chunk-WHECA25N.js";import*as w from"react";import{Drawer as n}from"@base-ui/react/drawer";import{jsx as t,jsxs as x}from"react/jsx-runtime";var g=w.createContext(null);function h(){let e=w.useContext(g);if(!e)throw new Error("useDrawer must be used within a Drawer.");return e}function R(c){var l=c,{modal:e=!0,showSwipeHandle:r=!1,snapPoints:i,swipeDirection:a="down"}=l,d=s(l,["modal","showSwipeHandle","snapPoints","swipeDirection"]);let u=i!=null&&i.length>0,f=w.useMemo(()=>({hasSnapPoints:u,modal:e,showSwipeHandle:r,swipeDirection:a}),[u,e,r,a]);return t(g.Provider,{value:f,children:t(n.Root,o({"data-slot":"drawer",modal:e,snapPoints:i,swipeDirection:a},d))})}function C(a){var d=a,{asChild:e,children:r}=d,i=s(d,["asChild","children"]);let c=e?w.Children.only(r):void 0;return t(n.Trigger,v(o({"data-slot":"drawer-trigger",render:c},i),{children:e?void 0:r}))}function y(r){var e=s(r,[]);return t(n.Portal,o({"data-slot":"drawer-portal"},e))}function _(a){var d=a,{asChild:e,children:r}=d,i=s(d,["asChild","children"]);let c=e?w.Children.only(r):void 0;return t(n.Close,v(o({"data-slot":"drawer-close",render:c},i),{children:e?void 0:r}))}function b(i){var a=i,{className:e}=a,r=s(a,["className"]);return t(n.Backdrop,o({"data-slot":"drawer-overlay",className:p("duration-[450ms] ease-[cubic-bezier(0.32,0.72,0,1)] data-[ending-style]:duration-[calc(var(--drawer-swipe-strength)*400ms)] fixed inset-0 z-50 min-h-dvh select-none bg-black/30 opacity-[max(var(--drawer-overlay-min-opacity,0),calc(1-var(--drawer-swipe-progress)))] transition-opacity data-[ending-style]:pointer-events-none data-[ending-style]:opacity-0 data-[starting-style]:opacity-0 data-[swiping]:duration-0 data-[snap-points]:[--drawer-overlay-min-opacity:0.5] supports-[-webkit-touch-callout:none]:absolute supports-[backdrop-filter]:backdrop-blur-sm",e)},r))}function k(i){var a=i,{className:e}=a,r=s(a,["className"]);return t("div",o({"data-slot":"drawer-swipe-handle","aria-hidden":"true",className:p("relative z-10 flex shrink-0 cursor-grab transition-opacity duration-200 after:block after:shrink-0 after:rounded-full after:bg-muted active:cursor-grabbing group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-direction=up]/drawer-popup:items-start group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[nested-drawer-open]/drawer-popup:opacity-0 group-data-[nested-drawer-swiping]/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:after:h-[100px] group-data-[swipe-axis=y]/drawer-popup:after:h-1.5 group-data-[swipe-axis=x]/drawer-popup:after:w-1.5 group-data-[swipe-axis=y]/drawer-popup:after:w-[100px]",e)},r))}function N(a){var d=a,{className:e,children:r}=d,i=s(d,["className","children"]);let{hasSnapPoints:c,modal:l,showSwipeHandle:u,swipeDirection:f}=h(),m=f==="down"||f==="up"?"y":"x";return x(y,{"data-slot":"drawer-portal",children:[l===!0&&t(b,{"data-snap-points":c?"":void 0}),t(n.Viewport,{"data-slot":"drawer-viewport","data-modal":l,className:"pointer-events-none fixed inset-0 z-50 select-none data-[modal=true]:pointer-events-auto",children:x(n.Popup,v(o({"data-slot":"drawer-popup","data-swipe-axis":m,"data-snap-points":c?"":void 0,className:p("group/drawer-popup duration-[450ms] ease-[cubic-bezier(0.22,1,0.36,1)] pointer-events-auto fixed z-50 flex h-[var(--drawer-content-height)] max-h-[var(--drawer-content-max-height,none)] min-h-0 w-[var(--drawer-content-width,auto)] select-none flex-col rounded-t-[min(var(--radius-4xl),24px)] border border-popover bg-popover !pb-[var(--drawer-keyboard-inset,0px)] text-sm text-popover-foreground shadow-xl outline-none transition-[transform,height,opacity,filter] will-change-transform [--drawer-bleed-background:transparent] [--drawer-inset:0.5rem] [--drawer-stacked-shadow:0_-20px_25px_-5px_rgb(0_0_0/0.1),0_-8px_10px_-6px_rgb(0_0_0/0.1)] [interpolate-size:allow-keywords] [transform:translate3d(var(--translate-x,0px),var(--translate-y,0px),0)_scale(var(--stack-scale))] data-[swipe-direction=down]:data-[nested-drawer-open]:shadow-[var(--drawer-stacked-shadow)] dark:border-border","data-[nested-drawer-open]:overflow-hidden data-[nested-drawer-open]:brightness-95","after:pointer-events-none after:absolute after:bg-[var(--drawer-bleed-background,hsl(var(--popover)))] data-[swipe-axis=x]:after:inset-y-0 data-[swipe-axis=y]:after:inset-x-0 data-[swipe-direction=down]:after:top-full data-[swipe-direction=left]:after:right-full data-[swipe-direction=right]:after:left-full data-[swipe-direction=up]:after:bottom-full data-[swipe-axis=y]:after:h-[var(--bleed)] data-[swipe-axis=x]:after:w-[var(--bleed)]","[--drawer-content-height:var(--drawer-height,auto)] data-[swipe-axis=y]:data-[snap-points]:[--drawer-content-height:100dvh] data-[swipe-axis=y]:[--drawer-content-max-height:calc(100dvh-6rem)] data-[swipe-axis=x]:[--drawer-content-width:75%] data-[swipe-axis=x]:sm:[--drawer-content-width:24rem]","[--bleed:3rem] [--peek:1rem] [--stack-height:var(--drawer-frontmost-height,var(--drawer-height,0px))] [--stack-peek-offset:max(0px,calc((var(--nested-drawers)-var(--stack-progress))*var(--peek)))] [--stack-progress:clamp(0,var(--drawer-swipe-progress),1)] [--stack-scale-base:max(0,calc(1-(var(--nested-drawers)*var(--stack-step))))] [--stack-scale:clamp(0,calc(var(--stack-scale-base)+(var(--stack-step)*var(--stack-progress))),1)] [--stack-shrink:calc(1-var(--stack-scale))] [--stack-step:0.05]","data-[ending-style]:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-[ending-style]:data-[nested-drawer-swiping]:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-[ending-style]:data-[swiping]:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-[ending-style]:opacity-[0.9999] data-[nested-drawer-swiping]:duration-0 data-[swiping]:duration-0 data-[ending-style]:[transform:var(--closed-transform)] data-[starting-style]:[transform:var(--closed-transform)]","data-[swipe-axis=y]:inset-x-0 data-[swipe-axis=y]:data-[nested-drawer-open]:h-[var(--stack-height)]","data-[swipe-axis=x]:inset-y-0 data-[swipe-axis=x]:flex-row","data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:origin-bottom data-[swipe-direction=down]:[--closed-transform:translate3d(0,calc(100%+var(--drawer-inset,0px)+2px),0)] data-[swipe-direction=down]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)-var(--stack-peek-offset)-(var(--stack-shrink)*var(--stack-height)))]","data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:[--closed-transform:translate3d(0,calc(-100%-var(--drawer-inset,0px)-2px),0)] data-[swipe-direction=up]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)+var(--stack-peek-offset)+(var(--stack-shrink)*var(--stack-height)))]","data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:[--closed-transform:translate3d(calc(-100%-var(--drawer-inset,0px)-2px),0,0)] data-[swipe-direction=left]:[--translate-x:calc(var(--drawer-swipe-movement-x)+var(--stack-peek-offset)+(var(--stack-shrink)*100%))]","data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:[--closed-transform:translate3d(calc(100%+var(--drawer-inset,0px)+2px),0,0)] data-[swipe-direction=right]:[--translate-x:calc(var(--drawer-swipe-movement-x)-var(--stack-peek-offset)-(var(--stack-shrink)*100%))]",e)},i),{children:[u&&t(k,{}),t(n.Content,{"data-slot":"drawer-content",className:p("ease-[cubic-bezier(0.45,1.005,0,1.005)] flex min-h-0 flex-1 select-text flex-col overflow-hidden overscroll-contain rounded-[inherit] transition-opacity duration-300 group-data-[swiping]/drawer-popup:select-none group-data-[nested-drawer-open]/drawer-popup:opacity-0 group-data-[nested-drawer-swiping]/drawer-popup:opacity-100"),children:r})]}))})]})}function z(i){var a=i,{className:e}=a,r=s(a,["className"]);return t("div",o({"data-slot":"drawer-header",className:p("flex shrink-0 flex-col gap-0.5 p-4 pb-0 group-data-[swipe-axis=y]/drawer-popup:text-center md:gap-1.5 md:text-left",e)},r))}function T(i){var a=i,{className:e}=a,r=s(a,["className"]);return t("div",o({"data-slot":"drawer-footer",className:p("mt-auto flex shrink-0 flex-col gap-2 p-4 pt-0",e)},r))}function S(i){var a=i,{className:e}=a,r=s(a,["className"]);return t(n.Title,o({"data-slot":"drawer-title",className:p("cn-font-heading text-base font-medium text-foreground",e)},r))}function V(i){var a=i,{className:e}=a,r=s(a,["className"]);return t(n.Description,o({"data-slot":"drawer-description",className:p("text-balance text-sm text-muted-foreground",e)},r))}function H({children:e}){return t(n.VirtualKeyboardProvider,{children:e})}export{R as a,C as b,y as c,_ as d,b as e,k as f,N as g,z as h,T as i,S as j,V as k,H as l};
2
+ //# sourceMappingURL=chunk-7EVFMYIH.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/drawer/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"@base-ui/react/drawer\";\n\nimport { cn } from \"@/lib/utils\";\n\ntype DrawerContextProps = {\n hasSnapPoints: boolean;\n modal: DrawerPrimitive.Root.Props[\"modal\"];\n showSwipeHandle: boolean;\n swipeDirection: NonNullable<DrawerPrimitive.Root.Props[\"swipeDirection\"]>;\n};\n\nconst DrawerContext = React.createContext<DrawerContextProps | null>(null);\n\nfunction useDrawer() {\n const context = React.useContext(DrawerContext);\n\n if (!context) {\n throw new Error(\"useDrawer must be used within a Drawer.\");\n }\n\n return context;\n}\n\nfunction Drawer({\n modal = true,\n showSwipeHandle = false,\n snapPoints,\n swipeDirection = \"down\",\n ...props\n}: DrawerPrimitive.Root.Props & {\n showSwipeHandle?: boolean;\n}) {\n const hasSnapPoints = snapPoints != null && snapPoints.length > 0;\n const contextValue = React.useMemo(\n () => ({ hasSnapPoints, modal, showSwipeHandle, swipeDirection }),\n [hasSnapPoints, modal, showSwipeHandle, swipeDirection],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <DrawerPrimitive.Root\n data-slot=\"drawer\"\n modal={modal}\n snapPoints={snapPoints}\n swipeDirection={swipeDirection}\n {...props}\n />\n </DrawerContext.Provider>\n );\n}\n\nfunction DrawerTrigger({\n asChild,\n children,\n ...props\n}: DrawerPrimitive.Trigger.Props & { asChild?: boolean }) {\n const renderProp = asChild\n ? (React.Children.only(children) as React.ReactElement)\n : undefined;\n\n return (\n <DrawerPrimitive.Trigger\n data-slot=\"drawer-trigger\"\n render={renderProp}\n {...props}\n >\n {asChild ? undefined : children}\n </DrawerPrimitive.Trigger>\n );\n}\n\nfunction DrawerPortal({ ...props }: DrawerPrimitive.Portal.Props) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({\n asChild,\n children,\n ...props\n}: DrawerPrimitive.Close.Props & { asChild?: boolean }) {\n const renderProp = asChild\n ? (React.Children.only(children) as React.ReactElement)\n : undefined;\n\n return (\n <DrawerPrimitive.Close\n data-slot=\"drawer-close\"\n render={renderProp}\n {...props}\n >\n {asChild ? undefined : children}\n </DrawerPrimitive.Close>\n );\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: DrawerPrimitive.Backdrop.Props) {\n return (\n <DrawerPrimitive.Backdrop\n data-slot=\"drawer-overlay\"\n className={cn(\n \"duration-[450ms] ease-[cubic-bezier(0.32,0.72,0,1)] data-[ending-style]:duration-[calc(var(--drawer-swipe-strength)*400ms)] fixed inset-0 z-50 min-h-dvh select-none bg-black/30 opacity-[max(var(--drawer-overlay-min-opacity,0),calc(1-var(--drawer-swipe-progress)))] transition-opacity data-[ending-style]:pointer-events-none data-[ending-style]:opacity-0 data-[starting-style]:opacity-0 data-[swiping]:duration-0 data-[snap-points]:[--drawer-overlay-min-opacity:0.5] supports-[-webkit-touch-callout:none]:absolute supports-[backdrop-filter]:backdrop-blur-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerSwipeHandle({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-swipe-handle\"\n aria-hidden=\"true\"\n className={cn(\n \"relative z-10 flex shrink-0 cursor-grab transition-opacity duration-200 after:block after:shrink-0 after:rounded-full after:bg-muted active:cursor-grabbing group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-direction=up]/drawer-popup:items-start group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[nested-drawer-open]/drawer-popup:opacity-0 group-data-[nested-drawer-swiping]/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:after:h-[100px] group-data-[swipe-axis=y]/drawer-popup:after:h-1.5 group-data-[swipe-axis=x]/drawer-popup:after:w-1.5 group-data-[swipe-axis=y]/drawer-popup:after:w-[100px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: DrawerPrimitive.Popup.Props) {\n const { hasSnapPoints, modal, showSwipeHandle, swipeDirection } = useDrawer();\n const swipeAxis =\n swipeDirection === \"down\" || swipeDirection === \"up\" ? \"y\" : \"x\";\n\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n {modal === true && (\n <DrawerOverlay data-snap-points={hasSnapPoints ? \"\" : undefined} />\n )}\n <DrawerPrimitive.Viewport\n data-slot=\"drawer-viewport\"\n data-modal={modal}\n className=\"pointer-events-none fixed inset-0 z-50 select-none data-[modal=true]:pointer-events-auto\"\n >\n <DrawerPrimitive.Popup\n data-slot=\"drawer-popup\"\n data-swipe-axis={swipeAxis}\n data-snap-points={hasSnapPoints ? \"\" : undefined}\n className={cn(\n // Base.\n \"group/drawer-popup duration-[450ms] ease-[cubic-bezier(0.22,1,0.36,1)] pointer-events-auto fixed z-50 flex h-[var(--drawer-content-height)] max-h-[var(--drawer-content-max-height,none)] min-h-0 w-[var(--drawer-content-width,auto)] select-none flex-col rounded-t-[min(var(--radius-4xl),24px)] border border-popover bg-popover !pb-[var(--drawer-keyboard-inset,0px)] text-sm text-popover-foreground shadow-xl outline-none transition-[transform,height,opacity,filter] will-change-transform [--drawer-bleed-background:transparent] [--drawer-inset:0.5rem] [--drawer-stacked-shadow:0_-20px_25px_-5px_rgb(0_0_0/0.1),0_-8px_10px_-6px_rgb(0_0_0/0.1)] [interpolate-size:allow-keywords] [transform:translate3d(var(--translate-x,0px),var(--translate-y,0px),0)_scale(var(--stack-scale))] data-[swipe-direction=down]:data-[nested-drawer-open]:shadow-[var(--drawer-stacked-shadow)] dark:border-border\",\n // Nested.\n \"data-[nested-drawer-open]:overflow-hidden data-[nested-drawer-open]:brightness-95\",\n // Bleed.\n \"after:pointer-events-none after:absolute after:bg-[var(--drawer-bleed-background,hsl(var(--popover)))] data-[swipe-axis=x]:after:inset-y-0 data-[swipe-axis=y]:after:inset-x-0 data-[swipe-direction=down]:after:top-full data-[swipe-direction=left]:after:right-full data-[swipe-direction=right]:after:left-full data-[swipe-direction=up]:after:bottom-full data-[swipe-axis=y]:after:h-[var(--bleed)] data-[swipe-axis=x]:after:w-[var(--bleed)]\",\n // Sizing.\n \"[--drawer-content-height:var(--drawer-height,auto)] data-[swipe-axis=y]:data-[snap-points]:[--drawer-content-height:100dvh] data-[swipe-axis=y]:[--drawer-content-max-height:calc(100dvh-6rem)] data-[swipe-axis=x]:[--drawer-content-width:75%] data-[swipe-axis=x]:sm:[--drawer-content-width:24rem]\",\n // Stack.\n \"[--bleed:3rem] [--peek:1rem] [--stack-height:var(--drawer-frontmost-height,var(--drawer-height,0px))] [--stack-peek-offset:max(0px,calc((var(--nested-drawers)-var(--stack-progress))*var(--peek)))] [--stack-progress:clamp(0,var(--drawer-swipe-progress),1)] [--stack-scale-base:max(0,calc(1-(var(--nested-drawers)*var(--stack-step))))] [--stack-scale:clamp(0,calc(var(--stack-scale-base)+(var(--stack-step)*var(--stack-progress))),1)] [--stack-shrink:calc(1-var(--stack-scale))] [--stack-step:0.05]\",\n // Transitions.\n \"data-[ending-style]:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-[ending-style]:data-[nested-drawer-swiping]:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-[ending-style]:data-[swiping]:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-[ending-style]:opacity-[0.9999] data-[nested-drawer-swiping]:duration-0 data-[swiping]:duration-0 data-[ending-style]:[transform:var(--closed-transform)] data-[starting-style]:[transform:var(--closed-transform)]\",\n // Axis: y.\n \"data-[swipe-axis=y]:inset-x-0 data-[swipe-axis=y]:data-[nested-drawer-open]:h-[var(--stack-height)]\",\n // Axis: x.\n \"data-[swipe-axis=x]:inset-y-0 data-[swipe-axis=x]:flex-row\",\n // Direction: down.\n \"data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:origin-bottom data-[swipe-direction=down]:[--closed-transform:translate3d(0,calc(100%+var(--drawer-inset,0px)+2px),0)] data-[swipe-direction=down]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)-var(--stack-peek-offset)-(var(--stack-shrink)*var(--stack-height)))]\",\n // Direction: up.\n \"data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:[--closed-transform:translate3d(0,calc(-100%-var(--drawer-inset,0px)-2px),0)] data-[swipe-direction=up]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)+var(--stack-peek-offset)+(var(--stack-shrink)*var(--stack-height)))]\",\n // Direction: left.\n \"data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:[--closed-transform:translate3d(calc(-100%-var(--drawer-inset,0px)-2px),0,0)] data-[swipe-direction=left]:[--translate-x:calc(var(--drawer-swipe-movement-x)+var(--stack-peek-offset)+(var(--stack-shrink)*100%))]\",\n // Direction: right.\n \"data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:[--closed-transform:translate3d(calc(100%+var(--drawer-inset,0px)+2px),0,0)] data-[swipe-direction=right]:[--translate-x:calc(var(--drawer-swipe-movement-x)-var(--stack-peek-offset)-(var(--stack-shrink)*100%))]\",\n className,\n )}\n {...props}\n >\n {showSwipeHandle && <DrawerSwipeHandle />}\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"ease-[cubic-bezier(0.45,1.005,0,1.005)] flex min-h-0 flex-1 select-text flex-col overflow-hidden overscroll-contain rounded-[inherit] transition-opacity duration-300 group-data-[swiping]/drawer-popup:select-none group-data-[nested-drawer-open]/drawer-popup:opacity-0 group-data-[nested-drawer-swiping]/drawer-popup:opacity-100\",\n )}\n >\n {children}\n </DrawerPrimitive.Content>\n </DrawerPrimitive.Popup>\n </DrawerPrimitive.Viewport>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex shrink-0 flex-col gap-0.5 p-4 pb-0 group-data-[swipe-axis=y]/drawer-popup:text-center md:gap-1.5 md:text-left\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex shrink-0 flex-col gap-2 p-4 pt-0\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({ className, ...props }: DrawerPrimitive.Title.Props) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\n \"cn-font-heading text-base font-medium text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: DrawerPrimitive.Description.Props) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-balance text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerVirtualKeyboardProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n return (\n <DrawerPrimitive.VirtualKeyboardProvider>\n {children}\n </DrawerPrimitive.VirtualKeyboardProvider>\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerSwipeHandle,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n DrawerVirtualKeyboardProvider,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "DrawerPrimitive", "jsx", "jsxs", "DrawerContext", "useDrawer", "context", "Drawer", "_a", "_b", "modal", "showSwipeHandle", "snapPoints", "swipeDirection", "props", "__objRest", "hasSnapPoints", "contextValue", "DrawerPrimitive", "__spreadValues", "DrawerTrigger", "asChild", "children", "renderProp", "__spreadProps", "DrawerPortal", "DrawerClose", "DrawerOverlay", "className", "cn", "DrawerSwipeHandle", "DrawerContent", "swipeAxis", "DrawerHeader", "DrawerFooter", "DrawerTitle", "DrawerDescription", "DrawerVirtualKeyboardProvider"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as y,b as N,d as x,g as H,h as P,i as b,j as E,k as M,l as F}from"./chunk-7EVFMYIH.js";import{a as u,b as C,d as f,f as v,g as d,h as T,i as w,j as h}from"./chunk-2R5NZUY2.js";import{a as L}from"./chunk-46MFR2CI.js";import{a as g}from"./chunk-WIFBPNRH.js";import{a as p,b as m,c}from"./chunk-WHECA25N.js";import*as n from"react";import{jsx as r}from"react/jsx-runtime";var D=n.createContext({isTouch:!1}),l=()=>n.useContext(D),Q=({children:o,open:t,onOpenChange:s})=>{let a=L(),e=n.useMemo(()=>({isTouch:a}),[a]);return a?r(D.Provider,{value:e,children:r(y,{open:t,onOpenChange:s,children:r(F,{children:o})})},"touch"):r(D.Provider,{value:e,children:r(u,{open:t,onOpenChange:s,children:o})},"desktop")},A=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?N:C,p({ref:s,className:o},t))});A.displayName="DialogResponsiveTrigger";var W=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?x:f,p({ref:s,className:o},t))});W.displayName="DialogResponsiveClose";var k=n.forwardRef((e,a)=>{var i=e,{className:o,children:t}=i,s=c(i,["className","children"]);let{isTouch:R}=l();return r(R?H:v,m(p({ref:a,className:o},s),{children:t}))});k.displayName="DialogResponsiveContent";var V=s=>{var a=s,{className:o}=a,t=c(a,["className"]);let{isTouch:e}=l();return r(e?P:d,p({className:o},t))};V.displayName="DialogResponsiveHeader";var B=s=>{var a=s,{className:o}=a,t=c(a,["className"]);let{isTouch:e}=l();return r(e?b:T,p({className:g("grid grid-cols-1 gap-2 px-4 pb-safe pt-1",o)},t))};B.displayName="DialogResponsiveFooter";var K=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?E:w,p({ref:s,className:o},t))});K.displayName="DialogResponsiveTitle";var O=n.forwardRef((a,s)=>{var e=a,{className:o}=e,t=c(e,["className"]);let{isTouch:i}=l();return r(i?M:h,p({ref:s,className:o},t))});O.displayName="DialogResponsiveDescription";export{l as a,Q as b,A as c,W as d,k as e,V as f,B as g,K as h,O as i};
2
+ //# sourceMappingURL=chunk-7H74R7P4.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/dialog-responsive/index.tsx"],
4
+ "sourcesContent": ["\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/dialog\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n DrawerVirtualKeyboardProvider,\n} from \"@/components/drawer\";\nimport { useIsTouchDevice } from \"@/hooks/use-is-touch-device\";\n\ntype DialogResponsiveContextType = {\n isTouch: boolean;\n};\n\nconst DialogResponsiveContext =\n React.createContext<DialogResponsiveContextType>({\n isTouch: false,\n });\n\nconst useDialogResponsive = () => React.useContext(DialogResponsiveContext);\n\ntype DialogResponsiveProps = {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nconst DialogResponsive = ({\n children,\n open,\n onOpenChange,\n}: DialogResponsiveProps) => {\n const isTouch = useIsTouchDevice();\n\n const contextValue = React.useMemo(() => ({ isTouch }), [isTouch]);\n\n if (isTouch) {\n return (\n <DialogResponsiveContext.Provider key=\"touch\" value={contextValue}>\n <Drawer open={open} onOpenChange={onOpenChange}>\n <DrawerVirtualKeyboardProvider>\n {children}\n </DrawerVirtualKeyboardProvider>\n </Drawer>\n </DialogResponsiveContext.Provider>\n );\n }\n\n return (\n <DialogResponsiveContext.Provider key=\"desktop\" value={contextValue}>\n <Dialog open={open} onOpenChange={onOpenChange}>\n {children}\n </Dialog>\n </DialogResponsiveContext.Provider>\n );\n};\n\nconst DialogResponsiveTrigger: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DialogTrigger> &\n React.RefAttributes<HTMLButtonElement>\n> = React.forwardRef(({ className, ...props }, ref) => {\n const { isTouch } = useDialogResponsive();\n const Comp = isTouch ? DrawerTrigger : DialogTrigger;\n\n return <Comp ref={ref} className={className} {...props} />;\n});\nDialogResponsiveTrigger.displayName = \"DialogResponsiveTrigger\";\n\nconst DialogResponsiveClose: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DialogClose> &\n React.RefAttributes<HTMLButtonElement>\n> = React.forwardRef(({ className, ...props }, ref) => {\n const { isTouch } = useDialogResponsive();\n const Comp = isTouch ? DrawerClose : DialogClose;\n\n return <Comp ref={ref} className={className} {...props} />;\n});\nDialogResponsiveClose.displayName = \"DialogResponsiveClose\";\n\nconst DialogResponsiveContent: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DialogContent> &\n React.RefAttributes<HTMLDivElement>\n> = React.forwardRef(({ className, children, ...props }, ref) => {\n const { isTouch } = useDialogResponsive();\n const Comp = isTouch ? DrawerContent : DialogContent;\n\n return (\n <Comp ref={ref} className={className} {...props}>\n {children}\n </Comp>\n );\n});\nDialogResponsiveContent.displayName = \"DialogResponsiveContent\";\n\nconst DialogResponsiveHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n const { isTouch } = useDialogResponsive();\n const Comp = isTouch ? DrawerHeader : DialogHeader;\n\n return <Comp className={className} {...props} />;\n};\nDialogResponsiveHeader.displayName = \"DialogResponsiveHeader\";\n\nconst DialogResponsiveFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n const { isTouch } = useDialogResponsive();\n const Comp = isTouch ? DrawerFooter : DialogFooter;\n\n return (\n <Comp\n className={cn(\"grid grid-cols-1 gap-2 px-4 pb-safe pt-1\", className)}\n {...props}\n />\n );\n};\nDialogResponsiveFooter.displayName = \"DialogResponsiveFooter\";\n\nconst DialogResponsiveTitle: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DialogTitle> &\n React.RefAttributes<HTMLHeadingElement>\n> = React.forwardRef(({ className, ...props }, ref) => {\n const { isTouch } = useDialogResponsive();\n const Comp = isTouch ? DrawerTitle : DialogTitle;\n\n return <Comp ref={ref} className={className} {...props} />;\n});\nDialogResponsiveTitle.displayName = \"DialogResponsiveTitle\";\n\nconst DialogResponsiveDescription: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DialogDescription> &\n React.RefAttributes<HTMLParagraphElement>\n> = React.forwardRef(({ className, ...props }, ref) => {\n const { isTouch } = useDialogResponsive();\n const Comp = isTouch ? DrawerDescription : DialogDescription;\n\n return <Comp ref={ref} className={className} {...props} />;\n});\nDialogResponsiveDescription.displayName = \"DialogResponsiveDescription\";\n\nexport {\n DialogResponsive,\n DialogResponsiveTrigger,\n DialogResponsiveClose,\n DialogResponsiveContent,\n DialogResponsiveHeader,\n DialogResponsiveFooter,\n DialogResponsiveTitle,\n DialogResponsiveDescription,\n useDialogResponsive,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "jsx", "DialogResponsiveContext", "useDialogResponsive", "DialogResponsive", "children", "open", "onOpenChange", "isTouch", "useIsTouchDevice", "contextValue", "Drawer", "DrawerVirtualKeyboardProvider", "Dialog", "DialogResponsiveTrigger", "_a", "ref", "_b", "className", "props", "__objRest", "DrawerTrigger", "DialogTrigger", "__spreadValues", "DialogResponsiveClose", "DrawerClose", "DialogClose", "DialogResponsiveContent", "DrawerContent", "DialogContent", "__spreadProps", "DialogResponsiveHeader", "DrawerHeader", "DialogHeader", "DialogResponsiveFooter", "DrawerFooter", "DialogFooter", "cn", "DialogResponsiveTitle", "DrawerTitle", "DialogTitle", "DialogResponsiveDescription", "DrawerDescription", "DialogDescription"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as t}from"./chunk-WIFBPNRH.js";import{a as o,c as a}from"./chunk-WHECA25N.js";import*as i from"react";import{Label as r}from"radix-ui";import{cva as s}from"class-variance-authority";import{jsx as R}from"react/jsx-runtime";var n=s("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),f=i.forwardRef((c,p)=>{var e=c,{className:l}=e,m=a(e,["className"]);return R(r.Root,o({ref:p,className:t(n(),l)},m))});f.displayName=r.Root.displayName;export{f as a};
2
+ //# sourceMappingURL=chunk-7TYPESVD.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/label/index.tsx"],
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n"],
5
+ "mappings": "uFAAA,UAAYA,MAAW,QACvB,OAAS,SAASC,MAAsB,WACxC,OAAS,OAAAC,MAA8B,2BAarC,cAAAC,MAAA,oBATF,IAAMC,EAAgBC,EACpB,4FACF,EAEMC,EAAc,aAIlB,CAACC,EAAyBC,IAAK,CAA9B,IAAAC,EAAAF,EAAE,WAAAG,CAdL,EAcGD,EAAgBE,EAAAC,EAAhBH,EAAgB,CAAd,cACH,OAAAN,EAACU,EAAe,KAAfC,EAAA,CACC,IAAKN,EACL,UAAWO,EAAGX,EAAc,EAAGM,CAAS,GACpCC,EACN,EACD,EACDL,EAAM,YAAcO,EAAe,KAAK",
6
+ "names": ["React", "LabelPrimitive", "cva", "jsx", "labelVariants", "cva", "Label", "_a", "ref", "_b", "className", "props", "__objRest", "LabelPrimitive", "__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-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 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