@lawnguru/ui 0.0.0-stage → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -3
- package/dist/chunk-2FVVWPIW.js +2 -0
- package/dist/chunk-2FVVWPIW.js.map +7 -0
- package/dist/chunk-2R5NZUY2.js +2 -0
- package/dist/chunk-2R5NZUY2.js.map +7 -0
- package/dist/chunk-2ZNU7SP6.js +2 -0
- package/dist/chunk-2ZNU7SP6.js.map +7 -0
- package/dist/chunk-322C3AJR.js +2 -0
- package/dist/chunk-322C3AJR.js.map +7 -0
- package/dist/chunk-46MFR2CI.js +2 -0
- package/dist/chunk-46MFR2CI.js.map +7 -0
- package/dist/chunk-4HREOJXZ.js +2 -0
- package/dist/chunk-4HREOJXZ.js.map +7 -0
- package/dist/chunk-5AXWISGI.js +2 -0
- package/dist/chunk-5AXWISGI.js.map +7 -0
- package/dist/chunk-62LTWWXS.js +2 -0
- package/dist/chunk-62LTWWXS.js.map +7 -0
- package/dist/chunk-63IVPQSD.js +2 -0
- package/dist/chunk-63IVPQSD.js.map +7 -0
- package/dist/chunk-6MI7ACXZ.js +2 -0
- package/dist/chunk-6MI7ACXZ.js.map +7 -0
- package/dist/chunk-7EVFMYIH.js +2 -0
- package/dist/chunk-7EVFMYIH.js.map +7 -0
- package/dist/chunk-7H74R7P4.js +2 -0
- package/dist/chunk-7H74R7P4.js.map +7 -0
- package/dist/chunk-7TYPESVD.js +2 -0
- package/dist/chunk-7TYPESVD.js.map +7 -0
- package/dist/chunk-A4EVMSOO.js +2 -0
- package/dist/chunk-A4EVMSOO.js.map +7 -0
- package/dist/chunk-BF3VTYEM.js +2 -0
- package/dist/chunk-BF3VTYEM.js.map +7 -0
- package/dist/chunk-BJWILCTE.js +2 -0
- package/dist/chunk-BJWILCTE.js.map +7 -0
- package/dist/chunk-BY3UM6EV.js +2 -0
- package/dist/chunk-BY3UM6EV.js.map +7 -0
- package/dist/chunk-C6BWVSUV.js +2 -0
- package/dist/chunk-C6BWVSUV.js.map +7 -0
- package/dist/chunk-CALZEY6V.js +2 -0
- package/dist/chunk-CALZEY6V.js.map +7 -0
- package/dist/chunk-CF236UZ4.js +2 -0
- package/dist/chunk-CF236UZ4.js.map +7 -0
- package/dist/chunk-DBMJIVTY.js +2 -0
- package/dist/chunk-DBMJIVTY.js.map +7 -0
- package/dist/chunk-DCPZZOJQ.js +2 -0
- package/dist/chunk-DCPZZOJQ.js.map +7 -0
- package/dist/chunk-EPZCTKQC.js +2 -0
- package/dist/chunk-EPZCTKQC.js.map +7 -0
- package/dist/chunk-EWEMD7AS.js +2 -0
- package/dist/chunk-EWEMD7AS.js.map +7 -0
- package/dist/chunk-F4MEBVNH.js +2 -0
- package/dist/chunk-F4MEBVNH.js.map +7 -0
- package/dist/chunk-FKH5WAC7.js +2 -0
- package/dist/chunk-FKH5WAC7.js.map +7 -0
- package/dist/chunk-FUXRPZVU.js +2 -0
- package/dist/chunk-FUXRPZVU.js.map +7 -0
- package/dist/chunk-GATZOHQ6.js +1 -0
- package/dist/chunk-GATZOHQ6.js.map +7 -0
- package/dist/chunk-GTEOHHVD.js +2 -0
- package/dist/chunk-GTEOHHVD.js.map +7 -0
- package/dist/chunk-HE3CSN3R.js +2 -0
- package/dist/chunk-HE3CSN3R.js.map +7 -0
- package/dist/chunk-IM2PR6JL.js +2 -0
- package/dist/chunk-IM2PR6JL.js.map +7 -0
- package/dist/chunk-INK2D47B.js +2 -0
- package/dist/chunk-INK2D47B.js.map +7 -0
- package/dist/chunk-JAPB4ZVX.js +2 -0
- package/dist/chunk-JAPB4ZVX.js.map +7 -0
- package/dist/chunk-JVQR7SBQ.js +2 -0
- package/dist/chunk-JVQR7SBQ.js.map +7 -0
- package/dist/chunk-KCQQSXMU.js +2 -0
- package/dist/chunk-KCQQSXMU.js.map +7 -0
- package/dist/chunk-KGEITSDG.js +2 -0
- package/dist/chunk-KGEITSDG.js.map +7 -0
- package/dist/chunk-KLHKZS2N.js +2 -0
- package/dist/chunk-KLHKZS2N.js.map +7 -0
- package/dist/chunk-KR5A3H22.js +2 -0
- package/dist/chunk-KR5A3H22.js.map +7 -0
- package/dist/chunk-L4EACCHY.js +2 -0
- package/dist/chunk-L4EACCHY.js.map +7 -0
- package/dist/chunk-LS37UWHK.js +2 -0
- package/dist/chunk-LS37UWHK.js.map +7 -0
- package/dist/chunk-LUG5DIYB.js +2 -0
- package/dist/chunk-LUG5DIYB.js.map +7 -0
- package/dist/chunk-M3WRRDK4.js +2 -0
- package/dist/chunk-M3WRRDK4.js.map +7 -0
- package/dist/chunk-N4JYYENQ.js +2 -0
- package/dist/chunk-N4JYYENQ.js.map +7 -0
- package/dist/chunk-NAS2AFA3.js +2 -0
- package/dist/chunk-NAS2AFA3.js.map +7 -0
- package/dist/chunk-NMUGPQJR.js +2 -0
- package/dist/chunk-NMUGPQJR.js.map +7 -0
- package/dist/chunk-OSONBAJY.js +2 -0
- package/dist/chunk-OSONBAJY.js.map +7 -0
- package/dist/chunk-P2J4T7VX.js +2 -0
- package/dist/chunk-P2J4T7VX.js.map +7 -0
- package/dist/chunk-PLDAFSMG.js +2 -0
- package/dist/chunk-PLDAFSMG.js.map +7 -0
- package/dist/chunk-PQXLSFXS.js +2 -0
- package/dist/chunk-PQXLSFXS.js.map +7 -0
- package/dist/chunk-PRAYE34P.js +2 -0
- package/dist/chunk-PRAYE34P.js.map +7 -0
- package/dist/chunk-PYVYS6W4.js +2 -0
- package/dist/chunk-PYVYS6W4.js.map +7 -0
- package/dist/chunk-Q3PG3WWG.js +2 -0
- package/dist/chunk-Q3PG3WWG.js.map +7 -0
- package/dist/chunk-RHVVPPZE.js +2 -0
- package/dist/chunk-RHVVPPZE.js.map +7 -0
- package/dist/chunk-RRDBPO2I.js +2 -0
- package/dist/chunk-RRDBPO2I.js.map +7 -0
- package/dist/chunk-S2I5LIDP.js +2 -0
- package/dist/chunk-S2I5LIDP.js.map +7 -0
- package/dist/chunk-SJZ34LYG.js +2 -0
- package/dist/chunk-SJZ34LYG.js.map +7 -0
- package/dist/chunk-T73JL4BL.js +2 -0
- package/dist/chunk-T73JL4BL.js.map +7 -0
- package/dist/chunk-U26IEDZT.js +2 -0
- package/dist/chunk-U26IEDZT.js.map +7 -0
- package/dist/chunk-UQUO6MUG.js +2 -0
- package/dist/chunk-UQUO6MUG.js.map +7 -0
- package/dist/chunk-UUB5URTQ.js +2 -0
- package/dist/chunk-UUB5URTQ.js.map +7 -0
- package/dist/chunk-V3VA2O5O.js +2 -0
- package/dist/chunk-V3VA2O5O.js.map +7 -0
- package/dist/chunk-VIGX5NKJ.js +2 -0
- package/dist/chunk-VIGX5NKJ.js.map +7 -0
- package/dist/chunk-WHECA25N.js +2 -0
- package/dist/chunk-WHECA25N.js.map +7 -0
- package/dist/chunk-WIFBPNRH.js +2 -0
- package/dist/chunk-WIFBPNRH.js.map +7 -0
- package/dist/chunk-YLCKVKJM.js +2 -0
- package/dist/chunk-YLCKVKJM.js.map +7 -0
- package/dist/chunk-Z2DKDZMC.js +2 -0
- package/dist/chunk-Z2DKDZMC.js.map +7 -0
- package/dist/chunk-ZJVH3SNI.js +2 -0
- package/dist/chunk-ZJVH3SNI.js.map +7 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/alert/index.js.map +7 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar/index.js.map +7 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/badge/index.js.map +7 -0
- package/dist/components/button/index.js +2 -0
- package/dist/components/button/index.js.map +7 -0
- package/dist/components/calendar/index.js +2 -0
- package/dist/components/calendar/index.js.map +7 -0
- package/dist/components/card/index.js +2 -0
- package/dist/components/card/index.js.map +7 -0
- package/dist/components/carousel/index.js +2 -0
- package/dist/components/carousel/index.js.map +7 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/checkbox/index.js.map +7 -0
- package/dist/components/collapsible/index.js +2 -0
- package/dist/components/collapsible/index.js.map +7 -0
- package/dist/components/combobox/index.js +2 -0
- package/dist/components/combobox/index.js.map +7 -0
- package/dist/components/command/index.js +2 -0
- package/dist/components/command/index.js.map +7 -0
- package/dist/components/confirm/index.js +2 -0
- package/dist/components/confirm/index.js.map +7 -0
- package/dist/components/dialog/index.js +2 -0
- package/dist/components/dialog/index.js.map +7 -0
- package/dist/components/dialog-responsive/index.js +2 -0
- package/dist/components/dialog-responsive/index.js.map +7 -0
- package/dist/components/drawer/index.js +2 -0
- package/dist/components/drawer/index.js.map +7 -0
- package/dist/components/dropdown-menu/index.js +2 -0
- package/dist/components/dropdown-menu/index.js.map +7 -0
- package/dist/components/dropdown-menu-responsive/index.js +2 -0
- package/dist/components/dropdown-menu-responsive/index.js.map +7 -0
- package/dist/components/empty/index.js +2 -0
- package/dist/components/empty/index.js.map +7 -0
- package/dist/components/form/index.js +2 -0
- package/dist/components/form/index.js.map +7 -0
- package/dist/components/input/index.js +2 -0
- package/dist/components/input/index.js.map +7 -0
- package/dist/components/input-group/index.js +2 -0
- package/dist/components/input-group/index.js.map +7 -0
- package/dist/components/input-otp/index.js +2 -0
- package/dist/components/input-otp/index.js.map +7 -0
- package/dist/components/input-password/index.js +2 -0
- package/dist/components/input-password/index.js.map +7 -0
- package/dist/components/item/index.js +2 -0
- package/dist/components/item/index.js.map +7 -0
- package/dist/components/label/index.js +2 -0
- package/dist/components/label/index.js.map +7 -0
- package/dist/components/loading-page/index.js +2 -0
- package/dist/components/loading-page/index.js.map +7 -0
- package/dist/components/photo-lightbox/index.js +2 -0
- package/dist/components/photo-lightbox/index.js.map +7 -0
- package/dist/components/photo-upload/index.js +2 -0
- package/dist/components/photo-upload/index.js.map +7 -0
- package/dist/components/popover/index.js +2 -0
- package/dist/components/popover/index.js.map +7 -0
- package/dist/components/progress/index.js +2 -0
- package/dist/components/progress/index.js.map +7 -0
- package/dist/components/questionnaire/index.js +2 -0
- package/dist/components/questionnaire/index.js.map +7 -0
- package/dist/components/radio-group/index.js +2 -0
- package/dist/components/radio-group/index.js.map +7 -0
- package/dist/components/rating/index.js +2 -0
- package/dist/components/rating/index.js.map +7 -0
- package/dist/components/resizable/index.js +2 -0
- package/dist/components/resizable/index.js.map +7 -0
- package/dist/components/scroll-area/index.js +2 -0
- package/dist/components/scroll-area/index.js.map +7 -0
- package/dist/components/select/index.js +2 -0
- package/dist/components/select/index.js.map +7 -0
- package/dist/components/separator/index.js +2 -0
- package/dist/components/separator/index.js.map +7 -0
- package/dist/components/sheet/index.js +2 -0
- package/dist/components/sheet/index.js.map +7 -0
- package/dist/components/slider/index.js +2 -0
- package/dist/components/slider/index.js.map +7 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/spinner/index.js.map +7 -0
- package/dist/components/table/index.js +2 -0
- package/dist/components/table/index.js.map +7 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tabs/index.js.map +7 -0
- package/dist/components/text-area/index.js +2 -0
- package/dist/components/text-area/index.js.map +7 -0
- package/dist/components/toggle/index.js +2 -0
- package/dist/components/toggle/index.js.map +7 -0
- package/dist/components/toggle-group/index.js +2 -0
- package/dist/components/toggle-group/index.js.map +7 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +7 -0
- package/dist/hooks/use-is-touch-device.js +2 -0
- package/dist/hooks/use-is-touch-device.js.map +7 -0
- package/dist/index.d.ts +716 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +7 -0
- package/dist/lib/utils.js +2 -0
- package/dist/lib/utils.js.map +7 -0
- package/dist/output.css +4882 -0
- package/dist/tailwind.preset.d.ts +341 -0
- package/dist/tailwind.preset.js +2 -0
- package/dist/tailwind.preset.js.map +7 -0
- package/dist/variables.css +93 -0
- package/package.json +133 -6
package/README.md
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
This
|
|
1
|
+
# LawnGuru UI
|
|
2
|
+
|
|
3
|
+
This is our UI project. Here, we keep all the reusable components that are used within our systems. This package is then built and published to the [Github Private NPM Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry), so we can fetch 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 outher world.
|
|
6
|
+
|
|
7
|
+
## How to run it
|
|
8
|
+
|
|
9
|
+
1. Clone the repository.
|
|
10
|
+
2. Run `pnpm` 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
|
+
## Build and Deploy process
|
|
14
|
+
|
|
15
|
+
### For projects with Node.js 14-17 (React 17 projects)
|
|
16
|
+
|
|
17
|
+
1. Target project's `package.json`:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
"@lawnguru-ui": "git+https://github.com/LawnGuru/ui.git#<VERSION>",
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
2. If you're using an older Node.js version or React 17, install without optional dependencies to skip dependencies like Storybook:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install @lawnguru/ui --no-optional
|
|
27
|
+
# or with pnpm
|
|
28
|
+
pnpm --ignore-optional
|
|
29
|
+
```
|
|
@@ -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 w}from"./chunk-F4MEBVNH.js";import{a as N,b as Q}from"./chunk-JAPB4ZVX.js";import{a as u}from"./chunk-WIFBPNRH.js";import{a,b as f,c as r}from"./chunk-WHECA25N.js";import*as x from"react";import{Questionnaire as c}from"@shadcn/react/questionnaire";import{CheckIcon as S,PencilIcon as z}from"lucide-react";import{jsx as i,jsxs as p}from"react/jsx-runtime";var v="[&[hidden]]:hidden";function T(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Root,a({"data-slot":"questionnaire",className:u("flex w-full min-w-0 flex-col gap-4",t)},o))}function D(n){var e=n,{className:t}=e,o=r(e,["className"]);return i("div",a({"data-slot":"questionnaire-card",className:u("flex w-full flex-col gap-5 rounded-xl border bg-background px-6 pb-6 pt-5",t)},o))}function V(n){var e=n,{className:t}=e,o=r(e,["className"]);return i("h2",a({"data-slot":"questionnaire-header",className:u("text-2xl font-bold leading-8 tracking-[-0.01em] text-foreground",t)},o))}function $(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Progress,a({"data-slot":"questionnaire-progress",className:u("min-h-4 w-fit text-xs font-medium tabular-nums text-foreground/[0.74]",t)},o))}function A(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Item,a({"data-slot":"questionnaire-item",className:u("flex min-w-0 flex-col gap-4 border-0 p-0 outline-none",v,t)},o))}function H(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Title,a({"data-slot":"questionnaire-title",className:u("text-pretty p-0 text-base font-medium leading-[22px] text-foreground [&:not(:has(~[data-slot=questionnaire-description]))]:mb-4",t)},o))}function F(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Description,a({"data-slot":"questionnaire-description",className:u("text-pretty text-sm tracking-[0.005em] text-muted-foreground",t)},o))}function M(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Choices,a({"data-slot":"questionnaire-choices",className:u("group/questionnaire-choices grid min-w-0 gap-2",t)},o))}function _(s){var l=s,{children:t,className:o,badge:n}=l,e=r(l,["children","className","badge"]);return p(c.Choice,f(a({"data-slot":"questionnaire-choice",className:u("group/questionnaire-choice relative flex cursor-pointer select-none items-start gap-2.5 rounded-md border border-input bg-background px-[13px] py-[11px] text-start text-sm outline-none transition-colors hover:bg-muted/50","has-[>input:focus-visible]:ring-2 has-[>input:focus-visible]:ring-ring/50","data-[checked]:border-surface-color-brand data-[checked]:bg-surface-color-brand-bland","data-[invalid]:border-destructive","data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50",o)},e),{children:[i(c.ChoiceInput,{"data-slot":"questionnaire-choice-input",className:"absolute inset-0 z-10 size-full cursor-pointer opacity-0"}),p("span",{"aria-hidden":"true","data-slot":"questionnaire-choice-indicator",className:"pointer-events-none relative mt-[3px] flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input bg-background group-data-[type=radio]/questionnaire-choice:rounded-full group-data-[checked]/questionnaire-choice:border-surface-color-brand group-data-[checked]/questionnaire-choice:bg-surface-color-brand group-data-[checked]/questionnaire-choice:text-inverted-primary",children:[i("span",{"data-slot":"questionnaire-choice-indicator-dot",className:"hidden size-1.5 rounded-full bg-inverted-primary group-data-[checked]/questionnaire-choice:block group-data-[type=checkbox]/questionnaire-choice:hidden"}),i(S,{"data-slot":"questionnaire-choice-indicator-check",className:"hidden size-3 stroke-[3] group-data-[checked]/questionnaire-choice:block group-data-[type=radio]/questionnaire-choice:hidden"})]}),i(c.ChoiceLabel,{"data-slot":"questionnaire-choice-label",className:"flex min-w-0 flex-1 flex-col gap-0.5 leading-[1.375] text-foreground",children:t}),n&&i("span",{"data-slot":"questionnaire-choice-badge",className:"pointer-events-none flex shrink-0 self-center",children:n})]}))}function G(n){var e=n,{className:t}=e,o=r(e,["className"]);return i("span",a({"data-slot":"questionnaire-choice-description",className:u("text-muted-foreground",t)},o))}function J(s){var l=s,{className:t,label:o,image:n}=l,e=r(l,["className","label","image"]);return p(c.Choice,f(a({"data-slot":"questionnaire-choice-tile",className:u("group/questionnaire-choice relative flex cursor-pointer select-none flex-col gap-1.5 rounded-md border border-input bg-background px-1.5 pb-2 pt-1.5 outline-none transition-colors hover:bg-muted/50","has-[>input:focus-visible]:ring-2 has-[>input:focus-visible]:ring-ring/50","data-[checked]:border-2 data-[checked]:border-surface-color-brand data-[checked]:bg-surface-color-brand-bland data-[checked]:px-[5px] data-[checked]:pb-[7px] data-[checked]:pt-[5px]","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t)},e),{children:[i(c.ChoiceInput,{"data-slot":"questionnaire-choice-input",className:"absolute inset-0 z-10 size-full cursor-pointer opacity-0"}),i("img",{src:n,alt:"",className:"pointer-events-none h-[52px] w-full rounded-[6px] object-cover"}),i(c.ChoiceLabel,{"data-slot":"questionnaire-choice-label",className:"text-[11px] text-foreground/[0.74] group-data-[checked]/questionnaire-choice:font-semibold group-data-[checked]/questionnaire-choice:text-content-brand",children:o})]}))}function K(n){var e=n,{className:t}=e,o=r(e,["className"]);let s=x.useRef(null),[l,d]=x.useState(!1);return x.useEffect(()=>{var h;let m=(h=s.current)==null?void 0:h.previousElementSibling;if(!m)return;let y=()=>d(m.hasAttribute("data-checked"));y();let R=new MutationObserver(y);return R.observe(m,{attributeFilter:["data-checked"]}),()=>R.disconnect()},[]),i("fieldset",a({ref:s,"data-slot":"questionnaire-choice-details",disabled:!l,className:u("m-0 hidden min-w-0 border-0 p-0 [[data-checked]+&]:block",t)},o))}function U(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Input,a({"data-slot":"questionnaire-input",className:u("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-[invalid=true]:border-destructive md:text-sm",t)},o))}function W(n){var e=n,{value:t}=e,o=r(e,["value"]);return i(c.Input,a({"data-slot":"questionnaire-value",hidden:!0,readOnly:!0,tabIndex:-1,"aria-hidden":!0,value:t!=null?t:""},o))}function X(n){var e=n,{className:t}=e,o=r(e,["className"]);return i(c.Error,a({"data-slot":"questionnaire-error",className:u("text-sm text-destructive",v,t)},o))}function Y(n){var e=n,{className:t}=e,o=r(e,["className"]);return i("div",a({"data-slot":"questionnaire-actions",className:u("grid min-h-8 w-full grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2",t)},o))}var C="h-8 rounded-md px-2.5 text-sm";function Z(l){var d=l,{children:t,className:o,size:n,variant:e="outline"}=d,s=r(d,["children","className","size","variant"]);return i(c.Previous,f(a({"data-slot":"questionnaire-previous",className:u(N({size:n,variant:e}),C,"col-start-1 row-start-1 justify-self-start",v,o)},s),{children:t!=null?t:"Previous"}))}function ee(l){var d=l,{children:t,className:o,size:n,variant:e="outline"}=d,s=r(d,["children","className","size","variant"]);return i(c.Skip,f(a({"data-slot":"questionnaire-skip",className:u(N({size:n,variant:e}),C,"col-start-2 row-start-1 justify-self-end",v,o)},s),{children:t!=null?t:"Skip"}))}function te(l){var d=l,{children:t,className:o,size:n,variant:e="default"}=d,s=r(d,["children","className","size","variant"]);return i(c.Next,f(a({"data-slot":"questionnaire-next",className:u(N({size:n,variant:e}),C,"col-start-3 row-start-1 justify-self-end",v,o)},s),{children:t!=null?t:"Next"}))}function oe(l){var d=l,{children:t,className:o,size:n,variant:e="default"}=d,s=r(d,["children","className","size","variant"]);return i(c.Submit,f(a({"data-slot":"questionnaire-submit",className:u(N({size:n,variant:e}),C,"col-start-3 row-start-1 justify-self-end",v,o)},s),{children:t!=null?t:"Submit"}))}function ie(d){var m=d,{className:t,title:o,summary:n,onEdit:e,editLabel:s="Edit"}=m,l=r(m,["className","title","summary","onEdit","editLabel"]);return p("div",f(a({"data-slot":"questionnaire-completed-step",className:u("flex w-full items-start gap-3 rounded-xl border bg-background px-5 py-4",t)},l),{children:[i("span",{className:"flex size-6 shrink-0 items-center justify-center rounded-full bg-foreground/80 text-background",children:i(S,{className:"size-3.5 stroke-[3]","aria-hidden":"true"})}),p("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[i("p",{className:"text-sm font-medium text-foreground",children:o}),n&&i("p",{className:"text-[13px] leading-[19px] text-muted-foreground",children:n})]}),e&&p(Q,{type:"button",variant:"ghost",size:"sm",onClick:e,className:"text-[13px] font-semibold text-foreground/[0.74]",children:[i(z,{}),s]})]}))}function B(e){var s=e,{className:t,children:o}=s,n=r(s,["className","children"]);return p(Q,f(a({type:"button",variant:"outline",size:"sm",className:u("h-8 shrink-0 gap-1.5 rounded-md border-foreground/15 px-3 text-[13px] font-semibold tracking-[0.005em]",t)},n),{children:[i(z,{}),o!=null?o:"Edit"]}))}function ne(d){var m=d,{className:t,title:o="Review your request",description:n="Check your details before sending your request to local pros.",action:e,children:s}=m,l=r(m,["className","title","description","action","children"]);return p("div",f(a({"data-slot":"questionnaire-review",className:u("flex w-full flex-col gap-5 rounded-xl border border-foreground/15 bg-background px-6 pb-6 pt-5",t)},l),{children:[p("div",{className:"flex flex-col gap-1",children:[i("h2",{className:"text-base font-medium text-foreground",children:o}),n&&i("p",{className:"text-sm text-muted-foreground",children:n})]}),i("div",{className:"flex flex-col divide-y divide-foreground/10 rounded-lg border border-foreground/15 bg-muted p-4 *:py-3.5 first:*:pt-0 last:*:pb-0",children:s}),e]}))}function ae(R){var h=R,{className:t,heading:o,title:n,items:e=[],photos:s=[],visiblePhotos:l=2,onEdit:d,showPhotosLabel:m=b=>`Show all photos (${b})`}=h,y=r(h,["className","heading","title","items","photos","visiblePhotos","onEdit","showPhotosLabel"]);let[b,k]=x.useState(null);return p("section",f(a({"data-slot":"questionnaire-review-section",className:u("flex flex-col gap-3.5",t)},y),{children:[s.length>0&&p("div",{className:"flex flex-col items-start gap-2.5",children:[i("div",{className:"flex gap-2",children:s.slice(0,l).map((g,P)=>{var q;return i("button",{type:"button",onClick:()=>k(P),"aria-label":`Open photo ${P+1}`,className:"h-[84px] w-[120px] overflow-hidden rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:i("img",{src:g.src,alt:(q=g.alt)!=null?q:"",className:"size-full object-cover"})},`${g.src}-${P}`)})}),i(Q,{type:"button",variant:"outline",size:"sm",onClick:()=>k(0),className:"h-7 rounded-sm border-foreground/15 px-2.5 text-xs font-semibold tracking-[0.01em]",children:m(s.length)}),i(w,{photos:s,open:b!==null,onOpenChange:g=>!g&&k(null),initialIndex:b!=null?b:0},b!=null?b:"closed")]}),o&&i("h3",{className:"text-base font-medium leading-[22px] text-foreground",children:o}),p("div",{className:"flex items-start gap-1",children:[p("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[n&&i("p",{className:"text-sm font-medium text-foreground",children:n}),e.length>0&&i("ul",{className:"flex flex-col gap-1 text-[13px] leading-[19px] text-muted-foreground",children:e.map((g,P)=>p("li",{children:["\u2022 ",g]},P))})]}),d&&i(B,{onClick:d})]})]}))}export{T as a,D as b,V as c,$ as d,A as e,H as f,F as g,M as h,_ as i,G as j,J as k,K as l,U as m,W as n,X as o,Y as p,Z as q,ee as r,te as s,oe as t,ie as u,B as v,ne as w,ae as x};
|
|
2
|
+
//# sourceMappingURL=chunk-2ZNU7SP6.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/questionnaire/index.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Questionnaire as QuestionnairePrimitive } from \"@shadcn/react/questionnaire\";\r\nimport { CheckIcon, PencilIcon } from \"lucide-react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Button, buttonVariants, type ButtonProps } from \"@/components/button\";\r\nimport {\r\n PhotoLightbox,\r\n type PhotoLightboxPhoto,\r\n} from \"@/components/photo-lightbox\";\r\n\r\ntype NavigationButtonProps = Pick<ButtonProps, \"size\" | \"variant\">;\r\n\r\n// The primitive toggles visibility with the `hidden` attribute, which Tailwind 3 display utilities would override.\r\nconst respectHidden = \"[&[hidden]]:hidden\";\r\n\r\nfunction Questionnaire({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Root>) {\r\n return (\r\n <QuestionnairePrimitive.Root\r\n data-slot=\"questionnaire\"\r\n className={cn(\"flex w-full min-w-0 flex-col gap-4\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireCard({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"questionnaire-card\"\r\n className={cn(\r\n \"flex w-full flex-col gap-5 rounded-xl border bg-background px-6 pb-6 pt-5\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireHeader({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"h2\">) {\r\n return (\r\n <h2\r\n data-slot=\"questionnaire-header\"\r\n className={cn(\r\n \"text-2xl font-bold leading-8 tracking-[-0.01em] text-foreground\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireProgress({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Progress>) {\r\n return (\r\n <QuestionnairePrimitive.Progress\r\n data-slot=\"questionnaire-progress\"\r\n className={cn(\r\n \"min-h-4 w-fit text-xs font-medium tabular-nums text-foreground/[0.74]\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireItem({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Item>) {\r\n return (\r\n <QuestionnairePrimitive.Item\r\n data-slot=\"questionnaire-item\"\r\n className={cn(\r\n \"flex min-w-0 flex-col gap-4 border-0 p-0 outline-none\",\r\n respectHidden,\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireTitle({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Title>) {\r\n return (\r\n <QuestionnairePrimitive.Title\r\n data-slot=\"questionnaire-title\"\r\n className={cn(\r\n \"text-pretty p-0 text-base font-medium leading-[22px] text-foreground [&:not(:has(~[data-slot=questionnaire-description]))]:mb-4\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireDescription({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Description>) {\r\n return (\r\n <QuestionnairePrimitive.Description\r\n data-slot=\"questionnaire-description\"\r\n className={cn(\r\n \"text-pretty text-sm tracking-[0.005em] text-muted-foreground\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireChoices({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Choices>) {\r\n return (\r\n <QuestionnairePrimitive.Choices\r\n data-slot=\"questionnaire-choices\"\r\n className={cn(\r\n \"group/questionnaire-choices grid min-w-0 gap-2\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport type QuestionnaireChoiceProps = React.ComponentProps<\r\n typeof QuestionnairePrimitive.Choice\r\n> & {\r\n /** Content pinned to the right edge, such as a \"Recommended\" badge */\r\n badge?: React.ReactNode;\r\n};\r\n\r\nfunction QuestionnaireChoice({\r\n children,\r\n className,\r\n badge,\r\n ...props\r\n}: QuestionnaireChoiceProps) {\r\n return (\r\n <QuestionnairePrimitive.Choice\r\n data-slot=\"questionnaire-choice\"\r\n className={cn(\r\n \"group/questionnaire-choice relative flex cursor-pointer select-none items-start gap-2.5 rounded-md border border-input bg-background px-[13px] py-[11px] text-start text-sm outline-none transition-colors hover:bg-muted/50\",\r\n \"has-[>input:focus-visible]:ring-2 has-[>input:focus-visible]:ring-ring/50\",\r\n \"data-[checked]:border-surface-color-brand data-[checked]:bg-surface-color-brand-bland\",\r\n \"data-[invalid]:border-destructive\",\r\n \"data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <QuestionnairePrimitive.ChoiceInput\r\n data-slot=\"questionnaire-choice-input\"\r\n className=\"absolute inset-0 z-10 size-full cursor-pointer opacity-0\"\r\n />\r\n <span\r\n aria-hidden=\"true\"\r\n data-slot=\"questionnaire-choice-indicator\"\r\n className=\"pointer-events-none relative mt-[3px] flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input bg-background group-data-[type=radio]/questionnaire-choice:rounded-full group-data-[checked]/questionnaire-choice:border-surface-color-brand group-data-[checked]/questionnaire-choice:bg-surface-color-brand group-data-[checked]/questionnaire-choice:text-inverted-primary\"\r\n >\r\n <span\r\n data-slot=\"questionnaire-choice-indicator-dot\"\r\n className=\"hidden size-1.5 rounded-full bg-inverted-primary group-data-[checked]/questionnaire-choice:block group-data-[type=checkbox]/questionnaire-choice:hidden\"\r\n />\r\n <CheckIcon\r\n data-slot=\"questionnaire-choice-indicator-check\"\r\n className=\"hidden size-3 stroke-[3] group-data-[checked]/questionnaire-choice:block group-data-[type=radio]/questionnaire-choice:hidden\"\r\n />\r\n </span>\r\n <QuestionnairePrimitive.ChoiceLabel\r\n data-slot=\"questionnaire-choice-label\"\r\n className=\"flex min-w-0 flex-1 flex-col gap-0.5 leading-[1.375] text-foreground\"\r\n >\r\n {children}\r\n </QuestionnairePrimitive.ChoiceLabel>\r\n {badge && (\r\n <span\r\n data-slot=\"questionnaire-choice-badge\"\r\n className=\"pointer-events-none flex shrink-0 self-center\"\r\n >\r\n {badge}\r\n </span>\r\n )}\r\n </QuestionnairePrimitive.Choice>\r\n );\r\n}\r\n\r\nfunction QuestionnaireChoiceDescription({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"span\">) {\r\n return (\r\n <span\r\n data-slot=\"questionnaire-choice-description\"\r\n className={cn(\"text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport type QuestionnaireChoiceTileProps = Omit<\r\n React.ComponentProps<typeof QuestionnairePrimitive.Choice>,\r\n \"children\"\r\n> & {\r\n label: string;\r\n image: string;\r\n};\r\n\r\n/**\r\n * Image swatch choice, laid out in a grid via `QuestionnaireChoices className=\"grid-cols-2\"`.\r\n * @param props.label - text under the image\r\n * @param props.image - image URL\r\n */\r\nfunction QuestionnaireChoiceTile({\r\n className,\r\n label,\r\n image,\r\n ...props\r\n}: QuestionnaireChoiceTileProps) {\r\n return (\r\n <QuestionnairePrimitive.Choice\r\n data-slot=\"questionnaire-choice-tile\"\r\n className={cn(\r\n \"group/questionnaire-choice relative flex cursor-pointer select-none flex-col gap-1.5 rounded-md border border-input bg-background px-1.5 pb-2 pt-1.5 outline-none transition-colors hover:bg-muted/50\",\r\n \"has-[>input:focus-visible]:ring-2 has-[>input:focus-visible]:ring-ring/50\",\r\n \"data-[checked]:border-2 data-[checked]:border-surface-color-brand data-[checked]:bg-surface-color-brand-bland data-[checked]:px-[5px] data-[checked]:pb-[7px] data-[checked]:pt-[5px]\",\r\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <QuestionnairePrimitive.ChoiceInput\r\n data-slot=\"questionnaire-choice-input\"\r\n className=\"absolute inset-0 z-10 size-full cursor-pointer opacity-0\"\r\n />\r\n <img\r\n src={image}\r\n alt=\"\"\r\n className=\"pointer-events-none h-[52px] w-full rounded-[6px] object-cover\"\r\n />\r\n <QuestionnairePrimitive.ChoiceLabel\r\n data-slot=\"questionnaire-choice-label\"\r\n className=\"text-[11px] text-foreground/[0.74] group-data-[checked]/questionnaire-choice:font-semibold group-data-[checked]/questionnaire-choice:text-content-brand\"\r\n >\r\n {label}\r\n </QuestionnairePrimitive.ChoiceLabel>\r\n </QuestionnairePrimitive.Choice>\r\n );\r\n}\r\n\r\n/** Content revealed, and submitted, only while the choice rendered right before it is checked. */\r\nfunction QuestionnaireChoiceDetails({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"fieldset\">) {\r\n const ref = React.useRef<HTMLFieldSetElement>(null);\r\n const [active, setActive] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n const choice = ref.current?.previousElementSibling;\r\n if (!choice) return;\r\n const sync = () => setActive(choice.hasAttribute(\"data-checked\"));\r\n sync();\r\n const observer = new MutationObserver(sync);\r\n observer.observe(choice, { attributeFilter: [\"data-checked\"] });\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n return (\r\n <fieldset\r\n ref={ref}\r\n data-slot=\"questionnaire-choice-details\"\r\n disabled={!active}\r\n className={cn(\r\n \"m-0 hidden min-w-0 border-0 p-0 [[data-checked]+&]:block\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireInput({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Input>) {\r\n return (\r\n <QuestionnairePrimitive.Input\r\n data-slot=\"questionnaire-input\"\r\n className={cn(\r\n \"h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-[invalid=true]:border-destructive md:text-sm\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport type QuestionnaireValueProps = Omit<\r\n React.ComponentProps<typeof QuestionnairePrimitive.Input>,\r\n \"value\" | \"defaultValue\" | \"type\"\r\n> & {\r\n value: string | number | undefined;\r\n};\r\n\r\n/**\r\n * Hidden answer for an item driven by a custom control (e.g. PhotoUpload), so Next treats it as answered.\r\n * @param props.value - the answer; empty means unanswered\r\n */\r\nfunction QuestionnaireValue({ value, ...props }: QuestionnaireValueProps) {\r\n return (\r\n <QuestionnairePrimitive.Input\r\n data-slot=\"questionnaire-value\"\r\n hidden\r\n readOnly\r\n tabIndex={-1}\r\n aria-hidden\r\n value={value ?? \"\"}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireError({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Error>) {\r\n return (\r\n <QuestionnairePrimitive.Error\r\n data-slot=\"questionnaire-error\"\r\n className={cn(\"text-sm text-destructive\", respectHidden, className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction QuestionnaireActions({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"questionnaire-actions\"\r\n className={cn(\r\n \"grid min-h-8 w-full grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nconst navigationButtonClassName = \"h-8 rounded-md px-2.5 text-sm\";\r\n\r\nfunction QuestionnairePrevious({\r\n children,\r\n className,\r\n size,\r\n variant = \"outline\",\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Previous> &\r\n NavigationButtonProps) {\r\n return (\r\n <QuestionnairePrimitive.Previous\r\n data-slot=\"questionnaire-previous\"\r\n className={cn(\r\n buttonVariants({ size, variant }),\r\n navigationButtonClassName,\r\n \"col-start-1 row-start-1 justify-self-start\",\r\n respectHidden,\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children ?? \"Previous\"}\r\n </QuestionnairePrimitive.Previous>\r\n );\r\n}\r\n\r\nfunction QuestionnaireSkip({\r\n children,\r\n className,\r\n size,\r\n variant = \"outline\",\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Skip> &\r\n NavigationButtonProps) {\r\n return (\r\n <QuestionnairePrimitive.Skip\r\n data-slot=\"questionnaire-skip\"\r\n className={cn(\r\n buttonVariants({ size, variant }),\r\n navigationButtonClassName,\r\n \"col-start-2 row-start-1 justify-self-end\",\r\n respectHidden,\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children ?? \"Skip\"}\r\n </QuestionnairePrimitive.Skip>\r\n );\r\n}\r\n\r\nfunction QuestionnaireNext({\r\n children,\r\n className,\r\n size,\r\n variant = \"default\",\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Next> &\r\n NavigationButtonProps) {\r\n return (\r\n <QuestionnairePrimitive.Next\r\n data-slot=\"questionnaire-next\"\r\n className={cn(\r\n buttonVariants({ size, variant }),\r\n navigationButtonClassName,\r\n \"col-start-3 row-start-1 justify-self-end\",\r\n respectHidden,\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children ?? \"Next\"}\r\n </QuestionnairePrimitive.Next>\r\n );\r\n}\r\n\r\nfunction QuestionnaireSubmit({\r\n children,\r\n className,\r\n size,\r\n variant = \"default\",\r\n ...props\r\n}: React.ComponentProps<typeof QuestionnairePrimitive.Submit> &\r\n NavigationButtonProps) {\r\n return (\r\n <QuestionnairePrimitive.Submit\r\n data-slot=\"questionnaire-submit\"\r\n className={cn(\r\n buttonVariants({ size, variant }),\r\n navigationButtonClassName,\r\n \"col-start-3 row-start-1 justify-self-end\",\r\n respectHidden,\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children ?? \"Submit\"}\r\n </QuestionnairePrimitive.Submit>\r\n );\r\n}\r\n\r\nexport type QuestionnaireCompletedStepProps = Omit<\r\n React.ComponentProps<\"div\">,\r\n \"title\"\r\n> & {\r\n title: React.ReactNode;\r\n summary?: React.ReactNode;\r\n onEdit?: () => void;\r\n editLabel?: string;\r\n};\r\n\r\n/**\r\n * Collapsed summary of a finished service, shown above the active questionnaire.\r\n * @param props.title - service name\r\n * @param props.summary - one-line recap of the answers\r\n * @param props.onEdit - renders an Edit button when provided\r\n */\r\nfunction QuestionnaireCompletedStep({\r\n className,\r\n title,\r\n summary,\r\n onEdit,\r\n editLabel = \"Edit\",\r\n ...props\r\n}: QuestionnaireCompletedStepProps) {\r\n return (\r\n <div\r\n data-slot=\"questionnaire-completed-step\"\r\n className={cn(\r\n \"flex w-full items-start gap-3 rounded-xl border bg-background px-5 py-4\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <span className=\"flex size-6 shrink-0 items-center justify-center rounded-full bg-foreground/80 text-background\">\r\n <CheckIcon className=\"size-3.5 stroke-[3]\" aria-hidden=\"true\" />\r\n </span>\r\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\r\n <p className=\"text-sm font-medium text-foreground\">{title}</p>\r\n {summary && (\r\n <p className=\"text-[13px] leading-[19px] text-muted-foreground\">\r\n {summary}\r\n </p>\r\n )}\r\n </div>\r\n {onEdit && (\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onClick={onEdit}\r\n className=\"text-[13px] font-semibold text-foreground/[0.74]\"\r\n >\r\n <PencilIcon />\r\n {editLabel}\r\n </Button>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nfunction QuestionnaireEditButton({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof Button>) {\r\n return (\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className={cn(\r\n \"h-8 shrink-0 gap-1.5 rounded-md border-foreground/15 px-3 text-[13px] font-semibold tracking-[0.005em]\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <PencilIcon />\r\n {children ?? \"Edit\"}\r\n </Button>\r\n );\r\n}\r\n\r\nexport type QuestionnaireReviewProps = Omit<\r\n React.ComponentProps<\"div\">,\r\n \"title\"\r\n> & {\r\n title?: React.ReactNode;\r\n description?: React.ReactNode;\r\n /** Rendered below the summary panel, typically the submit button */\r\n action?: React.ReactNode;\r\n};\r\n\r\n/**\r\n * Summary card listing every answered service before the request is sent.\r\n * @param props.action - footer content, usually the full-width submit button\r\n */\r\nfunction QuestionnaireReview({\r\n className,\r\n title = \"Review your request\",\r\n description = \"Check your details before sending your request to local pros.\",\r\n action,\r\n children,\r\n ...props\r\n}: QuestionnaireReviewProps) {\r\n return (\r\n <div\r\n data-slot=\"questionnaire-review\"\r\n className={cn(\r\n \"flex w-full flex-col gap-5 rounded-xl border border-foreground/15 bg-background px-6 pb-6 pt-5\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <div className=\"flex flex-col gap-1\">\r\n <h2 className=\"text-base font-medium text-foreground\">{title}</h2>\r\n {description && (\r\n <p className=\"text-sm text-muted-foreground\">{description}</p>\r\n )}\r\n </div>\r\n <div className=\"flex flex-col divide-y divide-foreground/10 rounded-lg border border-foreground/15 bg-muted p-4 *:py-3.5 first:*:pt-0 last:*:pb-0\">\r\n {children}\r\n </div>\r\n {action}\r\n </div>\r\n );\r\n}\r\n\r\nexport type QuestionnaireReviewSectionProps = Omit<\r\n React.ComponentProps<\"section\">,\r\n \"title\"\r\n> & {\r\n heading?: React.ReactNode;\r\n title?: React.ReactNode;\r\n items?: React.ReactNode[];\r\n photos?: PhotoLightboxPhoto[];\r\n /** Number of photo thumbnails shown before \"Show all photos\" */\r\n visiblePhotos?: number;\r\n onEdit?: () => void;\r\n showPhotosLabel?: (count: number) => string;\r\n};\r\n\r\n/**\r\n * One service (or the additional details) inside `QuestionnaireReview`.\r\n * @param props.heading - larger label above the section, e.g. \"Additional details\"\r\n * @param props.title - service name\r\n * @param props.items - answers, rendered as bullets\r\n * @param props.photos - thumbnails, browsable in a lightbox\r\n * @param props.onEdit - renders an Edit button when provided\r\n */\r\nfunction QuestionnaireReviewSection({\r\n className,\r\n heading,\r\n title,\r\n items = [],\r\n photos = [],\r\n visiblePhotos = 2,\r\n onEdit,\r\n showPhotosLabel = (count) => `Show all photos (${count})`,\r\n ...props\r\n}: QuestionnaireReviewSectionProps) {\r\n const [lightboxIndex, setLightboxIndex] = React.useState<number | null>(null);\r\n\r\n return (\r\n <section\r\n data-slot=\"questionnaire-review-section\"\r\n className={cn(\"flex flex-col gap-3.5\", className)}\r\n {...props}\r\n >\r\n {photos.length > 0 && (\r\n <div className=\"flex flex-col items-start gap-2.5\">\r\n <div className=\"flex gap-2\">\r\n {photos.slice(0, visiblePhotos).map((photo, index) => (\r\n <button\r\n key={`${photo.src}-${index}`}\r\n type=\"button\"\r\n onClick={() => setLightboxIndex(index)}\r\n aria-label={`Open photo ${index + 1}`}\r\n className=\"h-[84px] w-[120px] overflow-hidden rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring/50\"\r\n >\r\n <img\r\n src={photo.src}\r\n alt={photo.alt ?? \"\"}\r\n className=\"size-full object-cover\"\r\n />\r\n </button>\r\n ))}\r\n </div>\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={() => setLightboxIndex(0)}\r\n className=\"h-7 rounded-sm border-foreground/15 px-2.5 text-xs font-semibold tracking-[0.01em]\"\r\n >\r\n {showPhotosLabel(photos.length)}\r\n </Button>\r\n <PhotoLightbox\r\n key={lightboxIndex ?? \"closed\"}\r\n photos={photos}\r\n open={lightboxIndex !== null}\r\n onOpenChange={(open) => !open && setLightboxIndex(null)}\r\n initialIndex={lightboxIndex ?? 0}\r\n />\r\n </div>\r\n )}\r\n {heading && (\r\n <h3 className=\"text-base font-medium leading-[22px] text-foreground\">\r\n {heading}\r\n </h3>\r\n )}\r\n <div className=\"flex items-start gap-1\">\r\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\r\n {title && (\r\n <p className=\"text-sm font-medium text-foreground\">{title}</p>\r\n )}\r\n {items.length > 0 && (\r\n <ul className=\"flex flex-col gap-1 text-[13px] leading-[19px] text-muted-foreground\">\r\n {items.map((item, index) => (\r\n <li key={index}>\u2022 {item}</li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n {onEdit && <QuestionnaireEditButton onClick={onEdit} />}\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport {\r\n Questionnaire,\r\n QuestionnaireActions,\r\n QuestionnaireCard,\r\n QuestionnaireChoice,\r\n QuestionnaireChoiceDescription,\r\n QuestionnaireChoiceDetails,\r\n QuestionnaireChoiceTile,\r\n QuestionnaireChoices,\r\n QuestionnaireCompletedStep,\r\n QuestionnaireDescription,\r\n QuestionnaireEditButton,\r\n QuestionnaireError,\r\n QuestionnaireHeader,\r\n QuestionnaireInput,\r\n QuestionnaireItem,\r\n QuestionnaireNext,\r\n QuestionnairePrevious,\r\n QuestionnaireProgress,\r\n QuestionnaireReview,\r\n QuestionnaireReviewSection,\r\n QuestionnaireSkip,\r\n QuestionnaireSubmit,\r\n QuestionnaireTitle,\r\n QuestionnaireValue,\r\n};\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "QuestionnairePrimitive", "CheckIcon", "PencilIcon", "jsx", "jsxs", "respectHidden", "Questionnaire", "_a", "_b", "className", "props", "__objRest", "QuestionnairePrimitive", "__spreadValues", "cn", "QuestionnaireCard", "QuestionnaireHeader", "QuestionnaireProgress", "QuestionnaireItem", "QuestionnaireTitle", "QuestionnaireDescription", "QuestionnaireChoices", "QuestionnaireChoice", "children", "badge", "__spreadProps", "CheckIcon", "QuestionnaireChoiceDescription", "QuestionnaireChoiceTile", "label", "image", "QuestionnaireChoiceDetails", "ref", "active", "setActive", "choice", "sync", "observer", "QuestionnaireInput", "QuestionnaireValue", "value", "QuestionnaireError", "QuestionnaireActions", "navigationButtonClassName", "QuestionnairePrevious", "size", "variant", "buttonVariants", "QuestionnaireSkip", "QuestionnaireNext", "QuestionnaireSubmit", "QuestionnaireCompletedStep", "title", "summary", "onEdit", "editLabel", "Button", "PencilIcon", "QuestionnaireEditButton", "QuestionnaireReview", "description", "action", "QuestionnaireReviewSection", "heading", "items", "photos", "visiblePhotos", "showPhotosLabel", "count", "lightboxIndex", "setLightboxIndex", "photo", "index", "PhotoLightbox", "open", "item"]
|
|
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
|
+
}
|