ml-uikit 1.1.7 → 1.1.8
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/dist/components/ui/password-input.d.ts +9 -0
- package/dist/components/ui/password-input.d.ts.map +1 -0
- package/dist/components/ui/searchable-dropdown.d.ts +22 -0
- package/dist/components/ui/searchable-dropdown.d.ts.map +1 -0
- package/dist/components/ui/table.d.ts +5 -1
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs10.js +1 -1
- package/dist/index.cjs10.js.map +1 -1
- package/dist/index.cjs11.js +1 -1
- package/dist/index.cjs11.js.map +1 -1
- package/dist/index.cjs12.js +1 -1
- package/dist/index.cjs12.js.map +1 -1
- package/dist/index.cjs13.js +1 -1
- package/dist/index.cjs13.js.map +1 -1
- package/dist/index.cjs14.js +1 -1
- package/dist/index.cjs14.js.map +1 -1
- package/dist/index.cjs15.js +1 -1
- package/dist/index.cjs15.js.map +1 -1
- package/dist/index.cjs16.js +4 -4
- package/dist/index.cjs16.js.map +1 -1
- package/dist/index.cjs17.js +1 -1
- package/dist/index.cjs17.js.map +1 -1
- package/dist/index.cjs19.js +1 -1
- package/dist/index.cjs19.js.map +1 -1
- package/dist/index.cjs2.js +1 -1
- package/dist/index.cjs2.js.map +1 -1
- package/dist/index.cjs20.js +1 -1
- package/dist/index.cjs20.js.map +1 -1
- package/dist/index.cjs21.js +1 -1
- package/dist/index.cjs21.js.map +1 -1
- package/dist/index.cjs22.js +1 -1
- package/dist/index.cjs22.js.map +1 -1
- package/dist/index.cjs23.js +1 -1
- package/dist/index.cjs23.js.map +1 -1
- package/dist/index.cjs24.js +1 -1
- package/dist/index.cjs24.js.map +1 -1
- package/dist/index.cjs25.js +1 -1
- package/dist/index.cjs25.js.map +1 -1
- package/dist/index.cjs26.js +1 -1
- package/dist/index.cjs26.js.map +1 -1
- package/dist/index.cjs27.js +1 -1
- package/dist/index.cjs27.js.map +1 -1
- package/dist/index.cjs28.js +1 -1
- package/dist/index.cjs28.js.map +1 -1
- package/dist/index.cjs29.js +1 -1
- package/dist/index.cjs29.js.map +1 -1
- package/dist/index.cjs3.js +1 -1
- package/dist/index.cjs3.js.map +1 -1
- package/dist/index.cjs30.js +1 -1
- package/dist/index.cjs30.js.map +1 -1
- package/dist/index.cjs31.js +1 -1
- package/dist/index.cjs31.js.map +1 -1
- package/dist/index.cjs32.js +1 -1
- package/dist/index.cjs32.js.map +1 -1
- package/dist/index.cjs33.js +1 -1
- package/dist/index.cjs33.js.map +1 -1
- package/dist/index.cjs34.js +1 -1
- package/dist/index.cjs34.js.map +1 -1
- package/dist/index.cjs35.js +1 -1
- package/dist/index.cjs35.js.map +1 -1
- package/dist/index.cjs36.js +1 -1
- package/dist/index.cjs36.js.map +1 -1
- package/dist/index.cjs37.js +1 -1
- package/dist/index.cjs37.js.map +1 -1
- package/dist/index.cjs38.js +1 -1
- package/dist/index.cjs38.js.map +1 -1
- package/dist/index.cjs39.js +1 -1
- package/dist/index.cjs39.js.map +1 -1
- package/dist/index.cjs4.js +1 -1
- package/dist/index.cjs4.js.map +1 -1
- package/dist/index.cjs40.js +1 -1
- package/dist/index.cjs40.js.map +1 -1
- package/dist/index.cjs41.js +1 -1
- package/dist/index.cjs41.js.map +1 -1
- package/dist/index.cjs42.js +1 -1
- package/dist/index.cjs42.js.map +1 -1
- package/dist/index.cjs43.js +1 -1
- package/dist/index.cjs43.js.map +1 -1
- package/dist/index.cjs44.js +1 -1
- package/dist/index.cjs44.js.map +1 -1
- package/dist/index.cjs45.js +1 -1
- package/dist/index.cjs45.js.map +1 -1
- package/dist/index.cjs46.js +1 -1
- package/dist/index.cjs46.js.map +1 -1
- package/dist/index.cjs47.js +1 -1
- package/dist/index.cjs47.js.map +1 -1
- package/dist/index.cjs48.js +1 -1
- package/dist/index.cjs48.js.map +1 -1
- package/dist/index.cjs49.js +1 -1
- package/dist/index.cjs49.js.map +1 -1
- package/dist/index.cjs5.js +1 -1
- package/dist/index.cjs5.js.map +1 -1
- package/dist/index.cjs50.js +1 -1
- package/dist/index.cjs50.js.map +1 -1
- package/dist/index.cjs51.js +1 -1
- package/dist/index.cjs51.js.map +1 -1
- package/dist/index.cjs52.js +1 -1
- package/dist/index.cjs52.js.map +1 -1
- package/dist/index.cjs53.js +1 -1
- package/dist/index.cjs53.js.map +1 -1
- package/dist/index.cjs54.js +1 -1
- package/dist/index.cjs54.js.map +1 -1
- package/dist/index.cjs55.js +1 -1
- package/dist/index.cjs55.js.map +1 -1
- package/dist/index.cjs56.js +1 -1
- package/dist/index.cjs56.js.map +1 -1
- package/dist/index.cjs57.js +1 -1
- package/dist/index.cjs57.js.map +1 -1
- package/dist/index.cjs58.js +1 -1
- package/dist/index.cjs58.js.map +1 -1
- package/dist/index.cjs59.js +1 -1
- package/dist/index.cjs59.js.map +1 -1
- package/dist/index.cjs60.js +1 -1
- package/dist/index.cjs60.js.map +1 -1
- package/dist/index.cjs61.js +1 -1
- package/dist/index.cjs61.js.map +1 -1
- package/dist/index.cjs62.js +1 -1
- package/dist/index.cjs62.js.map +1 -1
- package/dist/index.cjs63.js +2 -0
- package/dist/index.cjs63.js.map +1 -0
- package/dist/index.cjs64.js +2 -0
- package/dist/index.cjs64.js.map +1 -0
- package/dist/index.cjs65.js +2 -0
- package/dist/index.cjs65.js.map +1 -0
- package/dist/index.cjs66.js +2 -0
- package/dist/index.cjs66.js.map +1 -0
- package/dist/index.cjs67.js +2 -0
- package/dist/index.cjs67.js.map +1 -0
- package/dist/index.cjs68.js +7 -0
- package/dist/index.cjs68.js.map +1 -0
- package/dist/index.cjs69.js +2 -0
- package/dist/index.cjs69.js.map +1 -0
- package/dist/index.cjs7.js +1 -1
- package/dist/index.cjs7.js.map +1 -1
- package/dist/index.cjs70.js +2 -0
- package/dist/index.cjs70.js.map +1 -0
- package/dist/index.cjs71.js +2 -0
- package/dist/index.cjs71.js.map +1 -0
- package/dist/index.cjs8.js +1 -1
- package/dist/index.cjs8.js.map +1 -1
- package/dist/index.cjs9.js +1 -1
- package/dist/index.cjs9.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +271 -258
- package/dist/index.es.js.map +1 -1
- package/dist/index.es10.js +22 -21
- package/dist/index.es10.js.map +1 -1
- package/dist/index.es11.js +14 -13
- package/dist/index.es11.js.map +1 -1
- package/dist/index.es12.js +31 -31
- package/dist/index.es12.js.map +1 -1
- package/dist/index.es13.js +39 -38
- package/dist/index.es13.js.map +1 -1
- package/dist/index.es14.js +34 -33
- package/dist/index.es14.js.map +1 -1
- package/dist/index.es15.js +107 -102
- package/dist/index.es15.js.map +1 -1
- package/dist/index.es16.js +155 -140
- package/dist/index.es16.js.map +1 -1
- package/dist/index.es17.js +21 -18
- package/dist/index.es17.js.map +1 -1
- package/dist/index.es19.js +63 -59
- package/dist/index.es19.js.map +1 -1
- package/dist/index.es2.js +10 -6
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es20.js +85 -78
- package/dist/index.es20.js.map +1 -1
- package/dist/index.es21.js +68 -59
- package/dist/index.es21.js.map +1 -1
- package/dist/index.es22.js +68 -62
- package/dist/index.es22.js.map +1 -1
- package/dist/index.es23.js +83 -76
- package/dist/index.es23.js.map +1 -1
- package/dist/index.es24.js +178 -94
- package/dist/index.es24.js.map +1 -1
- package/dist/index.es25.js +57 -164
- package/dist/index.es25.js.map +1 -1
- package/dist/index.es26.js +198 -77
- package/dist/index.es26.js.map +1 -1
- package/dist/index.es27.js +90 -20
- package/dist/index.es27.js.map +1 -1
- package/dist/index.es28.js +21 -22
- package/dist/index.es28.js.map +1 -1
- package/dist/index.es29.js +19 -343
- package/dist/index.es29.js.map +1 -1
- package/dist/index.es3.js +35 -32
- package/dist/index.es3.js.map +1 -1
- package/dist/index.es30.js +38 -148
- package/dist/index.es30.js.map +1 -1
- package/dist/index.es31.js +377 -42
- package/dist/index.es31.js.map +1 -1
- package/dist/index.es32.js +146 -172
- package/dist/index.es32.js.map +1 -1
- package/dist/index.es33.js +46 -253
- package/dist/index.es33.js.map +1 -1
- package/dist/index.es34.js +195 -180
- package/dist/index.es34.js.map +1 -1
- package/dist/index.es35.js +253 -29
- package/dist/index.es35.js.map +1 -1
- package/dist/index.es36.js +183 -14
- package/dist/index.es36.js.map +1 -1
- package/dist/index.es37.js +29 -93
- package/dist/index.es37.js.map +1 -1
- package/dist/index.es38.js +13 -187
- package/dist/index.es38.js.map +1 -1
- package/dist/index.es39.js +93 -96
- package/dist/index.es39.js.map +1 -1
- package/dist/index.es4.js +38 -32
- package/dist/index.es4.js.map +1 -1
- package/dist/index.es40.js +182 -80
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es41.js +98 -17
- package/dist/index.es41.js.map +1 -1
- package/dist/index.es42.js +101 -21
- package/dist/index.es42.js.map +1 -1
- package/dist/index.es43.js +20 -28
- package/dist/index.es43.js.map +1 -1
- package/dist/index.es44.js +19 -28
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +25 -176
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +36 -21
- package/dist/index.es46.js.map +1 -1
- package/dist/index.es47.js +171 -78
- package/dist/index.es47.js.map +1 -1
- package/dist/index.es48.js +17 -551
- package/dist/index.es48.js.map +1 -1
- package/dist/index.es49.js +106 -13
- package/dist/index.es49.js.map +1 -1
- package/dist/index.es5.js +71 -67
- package/dist/index.es5.js.map +1 -1
- package/dist/index.es50.js +559 -35
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +12 -19
- package/dist/index.es51.js.map +1 -1
- package/dist/index.es52.js +47 -12
- package/dist/index.es52.js.map +1 -1
- package/dist/index.es53.js +21 -25
- package/dist/index.es53.js.map +1 -1
- package/dist/index.es54.js +14 -217
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +23 -44
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js +237 -13
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js +44 -28
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js +17 -36
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es59.js +33 -18
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es60.js +39 -6
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es61.js +21 -267
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +3 -6268
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +9 -0
- package/dist/index.es63.js.map +1 -0
- package/dist/index.es64.js +270 -0
- package/dist/index.es64.js.map +1 -0
- package/dist/index.es65.js +11 -0
- package/dist/index.es65.js.map +1 -0
- package/dist/index.es66.js +5 -0
- package/dist/index.es66.js.map +1 -0
- package/dist/index.es67.js +27 -0
- package/dist/index.es67.js.map +1 -0
- package/dist/index.es68.js +237 -0
- package/dist/index.es68.js.map +1 -0
- package/dist/index.es69.js +5 -0
- package/dist/index.es69.js.map +1 -0
- package/dist/index.es7.js +25 -24
- package/dist/index.es7.js.map +1 -1
- package/dist/index.es70.js +5 -0
- package/dist/index.es70.js.map +1 -0
- package/dist/index.es71.js +6271 -0
- package/dist/index.es71.js.map +1 -0
- package/dist/index.es8.js +43 -41
- package/dist/index.es8.js.map +1 -1
- package/dist/index.es9.js +51 -48
- package/dist/index.es9.js.map +1 -1
- package/dist/style.css +59 -0
- package/package.json +1 -1
package/dist/index.es31.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es31.js","sources":["../src/components/ui/input-otp.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Minus } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n))\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md\",\n isActive && \"z-10 ring-1 ring-ring\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n))\nInputOTPSeparator.displayName = \"InputOTPSeparator\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n"],"names":["InputOTP","React","className","containerClassName","props","ref","OTPInput","cn","InputOTPGroup","InputOTPSlot","index","inputOTPContext","OTPInputContext","char","hasFakeCaret","isActive","InputOTPSeparator","Minus"],"mappings":";;;;AAMA,MAAMA,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,oBAAAC,GAAoB,GAAGC,EAAA,GAASC,MAC9C,gBAAAJ,EAAA;AAAA,EAACK;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,oBAAoBE;AAAA,MAClB;AAAA,MACAJ;AAAA,IAAA;AAAA,IAEF,WAAWI,EAAG,+BAA+BL,CAAS;AAAA,IACrD,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAS,cAAc;AAEvB,MAAMQ,IAAgBP,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGE,KAASC,sCACzB,OAAA,EAAI,KAAAA,GAAU,WAAWE,EAAG,qBAAqBL,CAAS,GAAI,GAAGE,GAAO,CAC1E;AACDI,EAAc,cAAc;AAE5B,MAAMC,IAAeR,EAAM,WAGzB,CAAC,EAAE,OAAAS,GAAO,WAAAR,GAAW,GAAGE,EAAA,GAASC,MAAQ;AACzC,QAAMM,IAAkBV,EAAM,WAAWW,CAAe,GAClD,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,MAAaJ,EAAgB,MAAMD,CAAK;AAEpE,SACE,gBAAAT,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAI;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAQ,KAAY;AAAA,QACZb;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,IAEHS;AAAA,IACAC,qCACE,OAAA,EAAI,WAAU,2EACb,gBAAAb,EAAA,cAAC,OAAA,EAAI,WAAU,2DAAA,CAA2D,CAC5E;AAAA,EAAA;AAIR,CAAC;AACDQ,EAAa,cAAc;AAE3B,MAAMO,IAAoBf,EAAM,WAG9B,CAAC,EAAE,GAAGG,KAASC,sCACd,OAAA,EAAI,KAAAA,GAAU,MAAK,aAAa,GAAGD,KAClC,gBAAAH,EAAA,cAACgB,GAAA,IAAM,CACT,CACD;AACDD,EAAkB,cAAc;"}
|
|
1
|
+
{"version":3,"file":"index.es31.js","sources":["../src/components/ui/date-range-picker.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport {\n addMonths,\n format,\n isAfter,\n isBefore,\n setMonth,\n setYear,\n startOfMonth,\n} from \"date-fns\"\nimport { CalendarDays, ChevronDown, ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { DayPicker, type Matcher } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nexport type DateRangePickerValue = {\n from?: Date\n to?: Date\n}\n\nexport interface DateRangePickerProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"value\" | \"defaultValue\" | \"onChange\"> {\n value?: DateRangePickerValue\n defaultValue?: DateRangePickerValue\n onValueChange?: (value: DateRangePickerValue | undefined) => void\n wrapperClassName?: string\n popoverClassName?: string\n popoverSide?: React.ComponentPropsWithoutRef<typeof PopoverContent>[\"side\"]\n popoverAvoidCollisions?: boolean\n placeholder?: string\n dateFormat?: string\n minYear?: number\n maxYear?: number\n}\n\nconst DEFAULT_FORMAT = \"dd/MM/yyyy\"\nconst DEFAULT_PLACEHOLDER = \"DD/MM/YYYY - DD/MM/YYYY\"\nconst MONTH_LABELS = Array.from({ length: 12 }, (_, monthIndex) =>\n new Date(2020, monthIndex, 1).toLocaleString(\"default\", { month: \"long\" })\n)\n\nconst clampMonth = (month: Date, minMonth: Date, maxMonth: Date) => {\n if (isBefore(month, minMonth)) {\n return minMonth\n }\n\n if (isAfter(month, maxMonth)) {\n return maxMonth\n }\n\n return month\n}\n\nconst normalizeRange = (\n value?: DateRangePickerValue\n): DateRangePickerValue | undefined => {\n if (!value?.from && !value?.to) {\n return undefined\n }\n\n if (value.from && value.to && isAfter(value.from, value.to)) {\n return {\n from: value.to,\n to: value.from,\n }\n }\n\n return {\n from: value.from,\n to: value.to,\n }\n}\n\nconst formatDate = (date: Date | undefined, dateFormat: string) => {\n if (!date) {\n return undefined\n }\n\n return format(date, dateFormat)\n}\n\nconst formatCommittedValue = (\n value: DateRangePickerValue | undefined,\n dateFormat: string\n) => {\n const fromText = formatDate(value?.from, dateFormat)\n const toText = formatDate(value?.to, dateFormat)\n\n if (!fromText || !toText) {\n return \"\"\n }\n\n return `${fromText} - ${toText}`\n}\n\nconst formatDraftValue = (\n value: DateRangePickerValue | undefined,\n dateFormat: string\n) => {\n const fromText = formatDate(value?.from, dateFormat) ?? \"DD/MM/YYYY\"\n const toText = formatDate(value?.to, dateFormat) ?? \"DD/MM/YYYY\"\n\n return `${fromText} - ${toText}`\n}\n\ntype CalendarPanelProps = {\n label: string\n month: Date\n minMonth: Date\n maxMonth: Date\n minDate: Date\n maxDate: Date\n selectedDate?: Date\n disabledMatcher?: Matcher\n disabled?: boolean\n years: number[]\n onMonthChange: (month: Date) => void\n onSelectDate: (date: Date | undefined) => void\n}\n\nfunction CalendarPanel({\n label,\n month,\n minMonth,\n maxMonth,\n minDate,\n maxDate,\n selectedDate,\n disabledMatcher,\n disabled,\n years,\n onMonthChange,\n onSelectDate,\n}: CalendarPanelProps) {\n const handlePrevMonth = () => {\n onMonthChange(addMonths(month, -1))\n }\n\n const handleNextMonth = () => {\n onMonthChange(addMonths(month, 1))\n }\n\n const isPrevDisabled = disabled || !isAfter(month, minMonth)\n const isNextDisabled = disabled || !isBefore(month, maxMonth)\n\n return (\n <div className=\"w-full min-w-0\">\n <div className=\"flex flex-wrap items-center gap-2 sm:flex-nowrap\">\n <button\n type=\"button\"\n onClick={handlePrevMonth}\n disabled={isPrevDisabled}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-md text-[#6e6d71] transition-colors lg:h-9 lg:w-9\",\n \"hover:bg-[#f5f5f5] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#1d1c20]/20\",\n \"disabled:cursor-not-allowed disabled:opacity-40\"\n )}\n aria-label={`Previous month for ${label.toLowerCase()}`}\n >\n <ChevronLeft className=\"h-4 w-4 lg:h-5 lg:w-5\" />\n </button>\n\n <div className=\"relative min-w-0 flex-1\">\n <select\n value={month.getMonth()}\n onChange={(event) => {\n const monthValue = Number(event.target.value)\n onMonthChange(setMonth(month, monthValue))\n }}\n disabled={disabled}\n className={cn(\n \"h-9 w-full appearance-none rounded-md border border-[#b7b7b9] bg-white px-3 pr-8 text-left text-sm font-medium leading-5 text-[#111111] lg:h-10 lg:px-4 lg:pr-10\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#1d1c20]/20\",\n \"disabled:cursor-not-allowed disabled:bg-[#f2f2f2] disabled:text-[#b3b3b3]\"\n )}\n aria-label={`Month for ${label.toLowerCase()}`}\n >\n {MONTH_LABELS.map((monthLabel, monthIndex) => (\n <option key={monthLabel} value={monthIndex}>\n {monthLabel}\n </option>\n ))}\n </select>\n <ChevronDown className=\"pointer-events-none absolute right-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-[#7f7d83] lg:right-3\" />\n </div>\n\n <div className=\"relative w-[104px] shrink-0 sm:w-[120px]\">\n <select\n value={month.getFullYear()}\n onChange={(event) => {\n const yearValue = Number(event.target.value)\n onMonthChange(setYear(month, yearValue))\n }}\n disabled={disabled}\n className={cn(\n \"h-9 w-full appearance-none rounded-md border border-[#b7b7b9] bg-white px-3 pr-8 text-left text-sm font-medium leading-5 text-[#111111] lg:h-10 lg:px-4 lg:pr-9\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#1d1c20]/20\",\n \"disabled:cursor-not-allowed disabled:bg-[#f2f2f2] disabled:text-[#b3b3b3]\"\n )}\n aria-label={`Year for ${label.toLowerCase()}`}\n >\n {years.map((year) => (\n <option key={year} value={year}>\n {year}\n </option>\n ))}\n </select>\n <ChevronDown className=\"pointer-events-none absolute right-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-[#7f7d83] lg:right-3\" />\n </div>\n\n <button\n type=\"button\"\n onClick={handleNextMonth}\n disabled={isNextDisabled}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-md text-[#6e6d71] transition-colors lg:h-9 lg:w-9\",\n \"hover:bg-[#f5f5f5] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#1d1c20]/20\",\n \"disabled:cursor-not-allowed disabled:opacity-40\"\n )}\n aria-label={`Next month for ${label.toLowerCase()}`}\n >\n <ChevronRight className=\"h-4 w-4 lg:h-5 lg:w-5\" />\n </button>\n </div>\n\n <p className=\"mt-1.5 text-center text-sm font-medium leading-5 text-[#666666] lg:mt-2\">\n {label}\n </p>\n\n <DayPicker\n mode=\"single\"\n month={month}\n onMonthChange={onMonthChange}\n selected={selectedDate}\n onSelect={onSelectDate}\n showOutsideDays\n fixedWeeks\n hideNavigation\n disabled={[\n { before: minDate },\n { after: maxDate },\n ...(disabledMatcher ? [disabledMatcher] : []),\n ]}\n className=\"mt-1 p-0 [--drp-cell-size:1.625rem] md:[--drp-cell-size:1.875rem] xl:[--drp-cell-size:2.125rem]\"\n classNames={{\n root: \"w-full\",\n months: \"w-full\",\n month: \"w-full\",\n month_caption: \"hidden\",\n month_grid: \"w-full border-collapse\",\n weekdays: \"grid grid-cols-7\",\n weekday:\n \"h-[calc(var(--drp-cell-size)-0.25rem)] text-center text-[11px] font-medium leading-4 text-[#666666] lg:text-xs\",\n weeks: \"grid gap-0\",\n week: \"grid grid-cols-7\",\n day: \"flex h-[var(--drp-cell-size)] w-full items-center justify-center p-0\",\n day_button:\n \"h-[--drp-cell-size] w-[--drp-cell-size] rounded-md border border-transparent bg-transparent p-0 text-[13px] font-normal leading-none text-[#444444] transition-colors hover:border-[#cccccc] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#2bbd8f]/25 lg:text-sm\",\n selected:\n \"[&>button]:border-[#2bbd8f] [&>button]:bg-[#2bbd8f] [&>button]:text-[#111111]\",\n today: \"font-medium\",\n outside: \"text-[#a4a4a8]\",\n disabled: \"pointer-events-none text-[#d3d3d6]\",\n hidden: \"invisible\",\n }}\n />\n </div>\n )\n}\n\nconst DateRangePicker = React.forwardRef<HTMLButtonElement, DateRangePickerProps>(\n (\n {\n value,\n defaultValue,\n onValueChange,\n wrapperClassName,\n popoverClassName,\n popoverSide = \"bottom\",\n popoverAvoidCollisions = true,\n className,\n placeholder = DEFAULT_PLACEHOLDER,\n dateFormat = DEFAULT_FORMAT,\n minYear = 2000,\n maxYear = 2100,\n disabled,\n ...triggerProps\n },\n ref\n ) => {\n const safeMinYear = Math.min(minYear, maxYear)\n const safeMaxYear = Math.max(minYear, maxYear)\n\n const minMonth = React.useMemo(\n () => startOfMonth(new Date(safeMinYear, 0, 1)),\n [safeMinYear]\n )\n const maxMonth = React.useMemo(\n () => startOfMonth(new Date(safeMaxYear, 11, 1)),\n [safeMaxYear]\n )\n const minDate = React.useMemo(() => new Date(safeMinYear, 0, 1), [safeMinYear])\n const maxDate = React.useMemo(\n () => new Date(safeMaxYear, 11, 31),\n [safeMaxYear]\n )\n\n const years = React.useMemo(\n () =>\n Array.from(\n { length: safeMaxYear - safeMinYear + 1 },\n (_, yearIndex) => safeMinYear + yearIndex\n ),\n [safeMinYear, safeMaxYear]\n )\n\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState<DateRangePickerValue | undefined>(\n normalizeRange(defaultValue)\n )\n\n const committedValue = normalizeRange(isControlled ? value : internalValue)\n\n const buildPanelMonths = React.useCallback(\n (range: DateRangePickerValue | undefined) => {\n const now = startOfMonth(new Date())\n const initialStart = clampMonth(\n startOfMonth(range?.from ?? now),\n minMonth,\n maxMonth\n )\n\n const initialEndRaw = range?.to\n ? startOfMonth(range.to)\n : addMonths(initialStart, 1)\n const initialEnd = clampMonth(initialEndRaw, minMonth, maxMonth)\n\n return {\n start: initialStart,\n end: initialEnd,\n }\n },\n [minMonth, maxMonth]\n )\n\n const [open, setOpen] = React.useState(false)\n const [draftValue, setDraftValue] = React.useState<DateRangePickerValue | undefined>(\n committedValue\n )\n const initialMonths = buildPanelMonths(committedValue)\n const [startMonth, setStartMonth] = React.useState<Date>(initialMonths.start)\n const [endMonth, setEndMonth] = React.useState<Date>(initialMonths.end)\n\n const syncDraftState = React.useCallback(\n (nextValue: DateRangePickerValue | undefined) => {\n const normalized = normalizeRange(nextValue)\n setDraftValue(normalized)\n const nextMonths = buildPanelMonths(normalized)\n setStartMonth(nextMonths.start)\n setEndMonth(nextMonths.end)\n },\n [buildPanelMonths]\n )\n\n React.useEffect(() => {\n if (!open) {\n syncDraftState(committedValue)\n }\n }, [committedValue, open, syncDraftState])\n\n const handleStartMonthChange = (nextMonth: Date) => {\n setStartMonth(clampMonth(startOfMonth(nextMonth), minMonth, maxMonth))\n }\n\n const handleEndMonthChange = (nextMonth: Date) => {\n setEndMonth(clampMonth(startOfMonth(nextMonth), minMonth, maxMonth))\n }\n\n const handleStartDateSelect = (date: Date | undefined) => {\n if (!date) {\n return\n }\n\n setDraftValue((previousValue) => {\n const nextValue: DateRangePickerValue = {\n from: date,\n to: previousValue?.to,\n }\n\n if (nextValue.to && isAfter(date, nextValue.to)) {\n nextValue.to = date\n }\n\n return nextValue\n })\n }\n\n const handleEndDateSelect = (date: Date | undefined) => {\n if (!date) {\n return\n }\n\n setDraftValue((previousValue) => {\n const nextValue: DateRangePickerValue = {\n from: previousValue?.from,\n to: date,\n }\n\n if (nextValue.from && isAfter(nextValue.from, date)) {\n nextValue.from = date\n }\n\n return nextValue\n })\n }\n\n const handleCancel = () => {\n syncDraftState(committedValue)\n setOpen(false)\n }\n\n const handleApply = () => {\n const normalized = normalizeRange(draftValue)\n\n if (!isControlled) {\n setInternalValue(normalized)\n }\n\n onValueChange?.(normalized)\n setOpen(false)\n }\n\n const canApply = Boolean(draftValue?.from && draftValue?.to)\n const committedText = formatCommittedValue(committedValue, dateFormat)\n const draftText = formatDraftValue(draftValue, dateFormat)\n\n return (\n <div className={cn(\"w-full\", wrapperClassName)}>\n <Popover\n open={open}\n onOpenChange={(nextOpen) => {\n if (disabled) {\n return\n }\n\n if (nextOpen) {\n syncDraftState(committedValue)\n }\n\n setOpen(nextOpen)\n }}\n >\n <PopoverTrigger asChild>\n <button\n ref={ref}\n type=\"button\"\n disabled={disabled}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-[8px] border border-[#e6e6e6] bg-white px-3 py-2 text-left text-[14px] leading-[20px] transition-colors\",\n \"focus-visible:outline-none focus-visible:border-[#1D1C20] focus-visible:ring-0\",\n \"disabled:cursor-not-allowed disabled:bg-[#f2f2f2] disabled:text-[#9ca3af] disabled:opacity-100\",\n className\n )}\n {...triggerProps}\n >\n <span\n className={cn(\n \"truncate text-[14px] font-normal leading-[20px]\",\n committedText ? \"text-[#111111]\" : \"text-[#b3b3b3]\"\n )}\n >\n {committedText || placeholder}\n </span>\n <CalendarDays className=\"ml-3 h-4 w-4 shrink-0 text-[#111111]\" />\n </button>\n </PopoverTrigger>\n\n <PopoverContent\n side={popoverSide}\n avoidCollisions={popoverAvoidCollisions}\n align=\"start\"\n sideOffset={10}\n className={cn(\n \"w-[min(95vw,760px)] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-xl border border-[#d8d8da] bg-[#f7f7f8] p-3 shadow-[0px_12px_24px_rgba(0,0,0,0.08)] sm:p-4\",\n popoverClassName\n )}\n >\n <div className=\"grid gap-3 md:grid-cols-2 md:gap-4\">\n <CalendarPanel\n label=\"Start date\"\n month={startMonth}\n minMonth={minMonth}\n maxMonth={maxMonth}\n minDate={minDate}\n maxDate={maxDate}\n selectedDate={draftValue?.from}\n disabledMatcher={draftValue?.to ? { after: draftValue.to } : undefined}\n disabled={disabled}\n years={years}\n onMonthChange={handleStartMonthChange}\n onSelectDate={handleStartDateSelect}\n />\n\n <CalendarPanel\n label=\"End date\"\n month={endMonth}\n minMonth={minMonth}\n maxMonth={maxMonth}\n minDate={minDate}\n maxDate={maxDate}\n selectedDate={draftValue?.to}\n disabledMatcher={draftValue?.from ? { before: draftValue.from } : undefined}\n disabled={disabled}\n years={years}\n onMonthChange={handleEndMonthChange}\n onSelectDate={handleEndDateSelect}\n />\n </div>\n\n <div className=\"mt-2.5 border-t border-[#d8d8da] pt-2.5\">\n <input\n readOnly\n value={draftText}\n className=\"h-9 w-full rounded-md border border-[#e6e6e6] bg-white px-3 py-2 text-sm leading-5 text-[#111111] outline-none transition-colors placeholder:text-[#b3b3b3] focus-visible:border-[#1D1C20]\"\n aria-label=\"Selected date range\"\n />\n\n <div className=\"mt-2.5 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\">\n <Button\n type=\"button\"\n variant=\"outline\"\n className=\"h-9 rounded-md px-4 text-sm\"\n onClick={handleCancel}\n >\n Cancel\n </Button>\n <Button\n type=\"button\"\n className=\"h-9 rounded-md px-4 text-sm\"\n disabled={!canApply}\n onClick={handleApply}\n >\n Apply\n </Button>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n </div>\n )\n }\n)\n\nDateRangePicker.displayName = \"DateRangePicker\"\n\nexport { DateRangePicker }\n"],"names":["DEFAULT_FORMAT","DEFAULT_PLACEHOLDER","MONTH_LABELS","_","monthIndex","clampMonth","month","minMonth","maxMonth","isBefore","isAfter","normalizeRange","value","formatDate","date","dateFormat","format","formatCommittedValue","fromText","toText","formatDraftValue","CalendarPanel","label","minDate","maxDate","selectedDate","disabledMatcher","disabled","years","onMonthChange","onSelectDate","handlePrevMonth","addMonths","handleNextMonth","isPrevDisabled","isNextDisabled","jsxs","jsx","cn","ChevronLeft","event","monthValue","setMonth","monthLabel","ChevronDown","yearValue","setYear","year","ChevronRight","DayPicker","DateRangePicker","React","defaultValue","onValueChange","wrapperClassName","popoverClassName","popoverSide","popoverAvoidCollisions","className","placeholder","minYear","maxYear","triggerProps","ref","safeMinYear","safeMaxYear","startOfMonth","yearIndex","isControlled","internalValue","setInternalValue","committedValue","buildPanelMonths","range","now","initialStart","initialEndRaw","initialEnd","open","setOpen","draftValue","setDraftValue","initialMonths","startMonth","setStartMonth","endMonth","setEndMonth","syncDraftState","nextValue","normalized","nextMonths","handleStartMonthChange","nextMonth","handleEndMonthChange","handleStartDateSelect","previousValue","handleEndDateSelect","handleCancel","handleApply","canApply","committedText","draftText","Popover","nextOpen","PopoverTrigger","CalendarDays","PopoverContent","Button"],"mappings":"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"}
|
package/dist/index.es32.js
CHANGED
|
@@ -1,180 +1,154 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (o.length !== 2)
|
|
11
|
-
return null;
|
|
12
|
-
const n = o.map((a) => {
|
|
13
|
-
const l = a.codePointAt(0);
|
|
14
|
-
return !l || l < 127462 || l > 127487 ? null : String.fromCharCode(l - 127462 + 65);
|
|
15
|
-
});
|
|
16
|
-
return n.some((a) => a === null) ? null : n.join("");
|
|
17
|
-
}, _ = ({
|
|
18
|
-
flag: c,
|
|
19
|
-
className: o
|
|
20
|
-
}) => {
|
|
21
|
-
const n = e.useMemo(
|
|
22
|
-
() => Q(c),
|
|
23
|
-
[c]
|
|
24
|
-
), a = n ? K[n] : void 0;
|
|
25
|
-
return a ? /* @__PURE__ */ e.createElement(
|
|
26
|
-
a,
|
|
1
|
+
import { j as r } from "./index.es62.js";
|
|
2
|
+
import { cva as o } from "class-variance-authority";
|
|
3
|
+
import { cn as e } from "./index.es63.js";
|
|
4
|
+
import { Button as u } from "./index.es10.js";
|
|
5
|
+
import { Input as p } from "./index.es29.js";
|
|
6
|
+
import { Textarea as d } from "./index.es58.js";
|
|
7
|
+
function v({ className: a, ...t }) {
|
|
8
|
+
return /* @__PURE__ */ r.jsx(
|
|
9
|
+
"div",
|
|
27
10
|
{
|
|
28
|
-
"
|
|
29
|
-
|
|
11
|
+
"data-slot": "input-group",
|
|
12
|
+
role: "group",
|
|
13
|
+
className: e(
|
|
14
|
+
"group/input-group relative flex w-full items-center rounded-[8px] border border-[#e6e6e6] bg-white text-[14px] leading-[20px] text-foreground transition-colors",
|
|
15
|
+
"h-10 has-[>textarea]:h-auto",
|
|
16
|
+
// Variants based on alignment.
|
|
17
|
+
"has-[>[data-align=inline-start]]:[&>input]:pl-2",
|
|
18
|
+
"has-[>[data-align=inline-end]]:[&>input]:pr-2",
|
|
19
|
+
"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3",
|
|
20
|
+
"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3",
|
|
21
|
+
// Focus state.
|
|
22
|
+
"focus-within:border-[#1D1C20]",
|
|
23
|
+
// Error state.
|
|
24
|
+
"has-[[data-slot][aria-invalid=true]]:border-[#ff3b30]",
|
|
25
|
+
// Disabled state.
|
|
26
|
+
"data-[disabled=true]:cursor-not-allowed data-[disabled=true]:bg-[#f2f2f2] data-[disabled=true]:text-[#9ca3af]",
|
|
27
|
+
a
|
|
28
|
+
),
|
|
29
|
+
...t
|
|
30
30
|
}
|
|
31
|
-
)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{
|
|
64
|
-
className: r(
|
|
65
|
-
"flex h-10 w-full items-stretch overflow-hidden rounded-[8px] border bg-white transition-colors",
|
|
66
|
-
m ? "border-[#e6e6e6] bg-[#f2f2f2]" : A ? "border-[#ff3b30]" : h ? "border-[#1d1c20]" : "border-[#e6e6e6]"
|
|
67
|
-
)
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
const l = o(
|
|
34
|
+
"flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium text-[#7f7d83] group-data-[disabled=true]/input-group:text-[#b3b3b3] [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",
|
|
35
|
+
{
|
|
36
|
+
variants: {
|
|
37
|
+
align: {
|
|
38
|
+
"inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
|
|
39
|
+
"inline-end": "order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]",
|
|
40
|
+
"block-start": "[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5",
|
|
41
|
+
"block-end": "[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
defaultVariants: {
|
|
45
|
+
align: "inline-start"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
function k({
|
|
50
|
+
className: a,
|
|
51
|
+
align: t = "inline-start",
|
|
52
|
+
...s
|
|
53
|
+
}) {
|
|
54
|
+
return /* @__PURE__ */ r.jsx(
|
|
55
|
+
"div",
|
|
56
|
+
{
|
|
57
|
+
role: "group",
|
|
58
|
+
"data-slot": "input-group-addon",
|
|
59
|
+
"data-align": t,
|
|
60
|
+
className: e(l({ align: t }), a),
|
|
61
|
+
onClick: (n) => {
|
|
62
|
+
n.target.closest("button") || n.currentTarget.parentElement?.querySelector("input")?.focus();
|
|
68
63
|
},
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
)
|
|
88
|
-
},
|
|
89
|
-
p ? /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(_, { flag: p.flag }), /* @__PURE__ */ e.createElement("span", { className: "font-normal text-black" }, p.label)) : /* @__PURE__ */ e.createElement(R, { className: "h-4 w-4 text-[#adacb0]" }),
|
|
90
|
-
/* @__PURE__ */ e.createElement(U, { className: "h-4 w-4 text-[#adacb0]" })
|
|
91
|
-
)),
|
|
92
|
-
/* @__PURE__ */ e.createElement(
|
|
93
|
-
q,
|
|
94
|
-
{
|
|
95
|
-
align: "start",
|
|
96
|
-
sideOffset: 8,
|
|
97
|
-
className: "w-[240px] rounded-[8px] border border-[#e6e6e6] bg-white p-0 shadow-[0px_2px_4px_0px_rgba(19,25,39,0.12),0px_4px_4px_0px_rgba(19,25,39,0.08)]"
|
|
98
|
-
},
|
|
99
|
-
/* @__PURE__ */ e.createElement(
|
|
100
|
-
L,
|
|
101
|
-
{
|
|
102
|
-
className: r(
|
|
103
|
-
"rounded-[8px] bg-white",
|
|
104
|
-
"[&_[cmdk-input-wrapper]]:mx-2 [&_[cmdk-input-wrapper]]:mb-1 [&_[cmdk-input-wrapper]]:mt-2 [&_[cmdk-input-wrapper]]:h-8 [&_[cmdk-input-wrapper]]:rounded-[4px] [&_[cmdk-input-wrapper]]:border [&_[cmdk-input-wrapper]]:border-[#e6e6e6] [&_[cmdk-input-wrapper]]:px-3",
|
|
105
|
-
"[&_[cmdk-input-wrapper]_svg]:mr-2 [&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4 [&_[cmdk-input-wrapper]_svg]:text-[#adacb0]",
|
|
106
|
-
"[&_[cmdk-input]]:h-full [&_[cmdk-input]]:py-0 [&_[cmdk-input]]:text-[14px] [&_[cmdk-input]]:leading-[20px] [&_[cmdk-input]]:text-black [&_[cmdk-input]]:placeholder:text-[#adacb0]"
|
|
107
|
-
)
|
|
108
|
-
},
|
|
109
|
-
/* @__PURE__ */ e.createElement(M, { placeholder: "Search country" }),
|
|
110
|
-
/* @__PURE__ */ e.createElement(Y, { className: "max-h-56 px-1 pb-1" }, /* @__PURE__ */ e.createElement($, { className: "px-3 py-2 text-left text-[12px] leading-[16px] text-[#7f7d83]" }, "No country found"), /* @__PURE__ */ e.createElement(B, { className: "p-0" }, d.map((t) => {
|
|
111
|
-
const w = t.value === i, E = t.name || t.label;
|
|
112
|
-
return /* @__PURE__ */ e.createElement(
|
|
113
|
-
D,
|
|
114
|
-
{
|
|
115
|
-
key: t.value,
|
|
116
|
-
value: `${t.label} ${E} ${t.dialCode}`,
|
|
117
|
-
onSelect: () => F(t),
|
|
118
|
-
className: r(
|
|
119
|
-
"flex w-full cursor-pointer items-center gap-2 rounded-[4px] px-3 py-2 text-[14px] leading-[20px] text-black",
|
|
120
|
-
"data-[selected=true]:bg-[#fafafa] data-[selected=true]:text-black",
|
|
121
|
-
w && "bg-[#fafafa]"
|
|
122
|
-
)
|
|
123
|
-
},
|
|
124
|
-
/* @__PURE__ */ e.createElement(_, { flag: t.flag }),
|
|
125
|
-
/* @__PURE__ */ e.createElement("span", { className: "min-w-0 flex-1 truncate" }, E),
|
|
126
|
-
t.dialCode ? /* @__PURE__ */ e.createElement("span", { className: "text-[#7f7d83]" }, t.dialCode) : null,
|
|
127
|
-
/* @__PURE__ */ e.createElement(
|
|
128
|
-
j,
|
|
129
|
-
{
|
|
130
|
-
className: r(
|
|
131
|
-
"h-4 w-4 text-[#1d1c20]",
|
|
132
|
-
w ? "opacity-100" : "opacity-0"
|
|
133
|
-
)
|
|
134
|
-
}
|
|
135
|
-
)
|
|
136
|
-
);
|
|
137
|
-
})))
|
|
138
|
-
)
|
|
139
|
-
)
|
|
140
|
-
),
|
|
141
|
-
/* @__PURE__ */ e.createElement(
|
|
142
|
-
"div",
|
|
143
|
-
{
|
|
144
|
-
className: r(
|
|
145
|
-
"flex min-w-0 flex-1 items-center gap-2 border-l border-[#e6e6e6] bg-white px-3 py-2",
|
|
146
|
-
m && "bg-[#f2f2f2]"
|
|
147
|
-
)
|
|
148
|
-
},
|
|
149
|
-
p?.dialCode ? /* @__PURE__ */ e.createElement("span", { className: "shrink-0 text-[14px] leading-[20px] text-[#7f7d83]" }, p.dialCode) : null,
|
|
150
|
-
/* @__PURE__ */ e.createElement(
|
|
151
|
-
"input",
|
|
152
|
-
{
|
|
153
|
-
ref: S,
|
|
154
|
-
disabled: m,
|
|
155
|
-
placeholder: y,
|
|
156
|
-
onFocus: (t) => {
|
|
157
|
-
g(!0), C?.(t);
|
|
158
|
-
},
|
|
159
|
-
onBlur: (t) => {
|
|
160
|
-
g(!1), v?.(t);
|
|
161
|
-
},
|
|
162
|
-
className: r(
|
|
163
|
-
"h-full w-full min-w-0 border-0 bg-transparent p-0 text-[14px] leading-[20px] text-black outline-none placeholder:text-[#adacb0]",
|
|
164
|
-
m && "cursor-not-allowed text-[#9ca3af] placeholder:text-[#b3b3b3]",
|
|
165
|
-
o
|
|
166
|
-
),
|
|
167
|
-
type: k,
|
|
168
|
-
...u
|
|
169
|
-
}
|
|
170
|
-
)
|
|
171
|
-
)
|
|
172
|
-
), l ? /* @__PURE__ */ e.createElement("p", { className: "w-full text-[12px] leading-[16px] text-[#ff3b30]" }, l) : a ? /* @__PURE__ */ e.createElement("p", { className: "w-full text-[12px] leading-[16px] text-[#7f7d83]" }, a) : null);
|
|
64
|
+
...s
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
const c = o(
|
|
69
|
+
"flex items-center gap-2 text-sm shadow-none",
|
|
70
|
+
{
|
|
71
|
+
variants: {
|
|
72
|
+
size: {
|
|
73
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",
|
|
74
|
+
sm: "h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5",
|
|
75
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
76
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
defaultVariants: {
|
|
80
|
+
size: "xs"
|
|
81
|
+
}
|
|
173
82
|
}
|
|
174
83
|
);
|
|
175
|
-
|
|
84
|
+
function j({
|
|
85
|
+
className: a,
|
|
86
|
+
type: t = "button",
|
|
87
|
+
variant: s = "ghost",
|
|
88
|
+
size: n = "xs",
|
|
89
|
+
...i
|
|
90
|
+
}) {
|
|
91
|
+
return /* @__PURE__ */ r.jsx(
|
|
92
|
+
u,
|
|
93
|
+
{
|
|
94
|
+
type: t,
|
|
95
|
+
"data-size": n,
|
|
96
|
+
variant: s,
|
|
97
|
+
className: e(c({ size: n }), a),
|
|
98
|
+
...i
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
function z({ className: a, ...t }) {
|
|
103
|
+
return /* @__PURE__ */ r.jsx(
|
|
104
|
+
"span",
|
|
105
|
+
{
|
|
106
|
+
className: e(
|
|
107
|
+
"text-muted-foreground flex items-center gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",
|
|
108
|
+
a
|
|
109
|
+
),
|
|
110
|
+
...t
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
function w({
|
|
115
|
+
className: a,
|
|
116
|
+
...t
|
|
117
|
+
}) {
|
|
118
|
+
return /* @__PURE__ */ r.jsx(
|
|
119
|
+
p,
|
|
120
|
+
{
|
|
121
|
+
"data-slot": "input-group-control",
|
|
122
|
+
className: e(
|
|
123
|
+
"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",
|
|
124
|
+
a
|
|
125
|
+
),
|
|
126
|
+
...t
|
|
127
|
+
}
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
function G({
|
|
131
|
+
className: a,
|
|
132
|
+
...t
|
|
133
|
+
}) {
|
|
134
|
+
return /* @__PURE__ */ r.jsx(
|
|
135
|
+
d,
|
|
136
|
+
{
|
|
137
|
+
"data-slot": "input-group-control",
|
|
138
|
+
className: e(
|
|
139
|
+
"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",
|
|
140
|
+
a
|
|
141
|
+
),
|
|
142
|
+
...t
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}
|
|
176
146
|
export {
|
|
177
|
-
|
|
178
|
-
|
|
147
|
+
v as InputGroup,
|
|
148
|
+
k as InputGroupAddon,
|
|
149
|
+
j as InputGroupButton,
|
|
150
|
+
w as InputGroupInput,
|
|
151
|
+
z as InputGroupText,
|
|
152
|
+
G as InputGroupTextarea
|
|
179
153
|
};
|
|
180
154
|
//# sourceMappingURL=index.es32.js.map
|
package/dist/index.es32.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es32.js","sources":["../src/components/ui/phone-input.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Check, ChevronDown, Globe } from \"lucide-react\"\nimport * as CountryFlags from \"country-flag-icons/react/3x2\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nimport {\n PHONE_COUNTRY_OPTIONS,\n type PhoneCountryOption,\n} from \"./phone-countries\"\n\nconst DEFAULT_COUNTRY_OPTIONS = PHONE_COUNTRY_OPTIONS\ntype FlagComponent = React.ComponentType<React.SVGProps<SVGSVGElement>>\n\nconst COUNTRY_FLAG_COMPONENTS = CountryFlags as Record<string, FlagComponent>\n\nexport interface PhoneInputProps\n extends Omit<React.ComponentProps<\"input\">, \"className\"> {\n className?: string\n inputClassName?: string\n label?: string\n helperText?: string\n error?: string\n country?: string\n defaultCountry?: string\n countryOptions?: PhoneCountryOption[]\n onCountryChange?: (country: PhoneCountryOption) => void\n}\n\nconst getCountryCodeFromFlagEmoji = (flag: string): string | null => {\n const symbols = Array.from(flag)\n if (symbols.length !== 2) {\n return null\n }\n\n const letters = symbols.map((symbol) => {\n const codePoint = symbol.codePointAt(0)\n if (!codePoint || codePoint < 0x1f1e6 || codePoint > 0x1f1ff) {\n return null\n }\n return String.fromCharCode(codePoint - 0x1f1e6 + 65)\n })\n\n if (letters.some((letter) => letter === null)) {\n return null\n }\n\n return letters.join(\"\")\n}\n\nconst FlagIcon = ({\n flag,\n className,\n}: {\n flag: string\n className?: string\n}) => {\n const countryCode = React.useMemo(\n () => getCountryCodeFromFlagEmoji(flag),\n [flag]\n )\n const SvgFlag = countryCode ? COUNTRY_FLAG_COMPONENTS[countryCode] : undefined\n\n if (SvgFlag) {\n return (\n <SvgFlag\n aria-hidden=\"true\"\n className={cn(\"h-3.5 w-5 shrink-0 rounded-[2px] object-cover\", className)}\n />\n )\n }\n\n return (\n <span aria-hidden=\"true\" className={className}>\n {flag}\n </span>\n )\n}\n\nconst PhoneInput = React.forwardRef<HTMLInputElement, PhoneInputProps>(\n (\n {\n className,\n inputClassName,\n label = \"Phone number\",\n helperText,\n error,\n country,\n defaultCountry,\n countryOptions = DEFAULT_COUNTRY_OPTIONS,\n onCountryChange,\n disabled,\n type = \"tel\",\n onFocus,\n onBlur,\n placeholder = \"Enter phone number\",\n ...props\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n const [isInputFocused, setIsInputFocused] = React.useState(false)\n const [uncontrolledCountry, setUncontrolledCountry] = React.useState(\n defaultCountry\n )\n\n const selectedCountryValue = country ?? uncontrolledCountry\n\n const selectedCountry = React.useMemo(\n () =>\n countryOptions.find((option) => option.value === selectedCountryValue),\n [countryOptions, selectedCountryValue]\n )\n\n const handleCountrySelect = React.useCallback(\n (option: PhoneCountryOption) => {\n if (country === undefined) {\n setUncontrolledCountry(option.value)\n }\n onCountryChange?.(option)\n setOpen(false)\n },\n [country, onCountryChange]\n )\n\n const isAriaInvalid =\n props[\"aria-invalid\"] === true || props[\"aria-invalid\"] === \"true\"\n const hasError = Boolean(error) || isAriaInvalid\n const isActive = open || isInputFocused\n\n return (\n <div className={cn(\"flex w-full flex-col items-start gap-1\", className)}>\n {label ? (\n <p className=\"w-full text-[14px] font-medium leading-[20px] text-black\">\n {label}\n </p>\n ) : null}\n\n <div\n className={cn(\n \"flex h-10 w-full items-stretch overflow-hidden rounded-[8px] border bg-white transition-colors\",\n disabled\n ? \"border-[#e6e6e6] bg-[#f2f2f2]\"\n : hasError\n ? \"border-[#ff3b30]\"\n : isActive\n ? \"border-[#1d1c20]\"\n : \"border-[#e6e6e6]\"\n )}\n >\n <Popover\n open={open}\n onOpenChange={(nextOpen) => {\n if (disabled) {\n return\n }\n setOpen(nextOpen)\n }}\n >\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n aria-label=\"Select country\"\n className={cn(\n \"flex h-full shrink-0 items-center gap-1 px-2 text-[14px] leading-[20px] outline-none transition-colors\",\n selectedCountry\n ? isActive\n ? \"bg-white\"\n : \"bg-[#fafafa]\"\n : \"bg-white\",\n disabled && \"bg-[#f2f2f2] text-[#b3b3b3]\"\n )}\n >\n {selectedCountry ? (\n <>\n <FlagIcon flag={selectedCountry.flag} />\n <span className=\"font-normal text-black\">\n {selectedCountry.label}\n </span>\n </>\n ) : (\n <Globe className=\"h-4 w-4 text-[#adacb0]\" />\n )}\n <ChevronDown className=\"h-4 w-4 text-[#adacb0]\" />\n </button>\n </PopoverTrigger>\n\n <PopoverContent\n align=\"start\"\n sideOffset={8}\n className=\"w-[240px] rounded-[8px] border border-[#e6e6e6] bg-white p-0 shadow-[0px_2px_4px_0px_rgba(19,25,39,0.12),0px_4px_4px_0px_rgba(19,25,39,0.08)]\"\n >\n <Command\n className={cn(\n \"rounded-[8px] bg-white\",\n \"[&_[cmdk-input-wrapper]]:mx-2 [&_[cmdk-input-wrapper]]:mb-1 [&_[cmdk-input-wrapper]]:mt-2 [&_[cmdk-input-wrapper]]:h-8 [&_[cmdk-input-wrapper]]:rounded-[4px] [&_[cmdk-input-wrapper]]:border [&_[cmdk-input-wrapper]]:border-[#e6e6e6] [&_[cmdk-input-wrapper]]:px-3\",\n \"[&_[cmdk-input-wrapper]_svg]:mr-2 [&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4 [&_[cmdk-input-wrapper]_svg]:text-[#adacb0]\",\n \"[&_[cmdk-input]]:h-full [&_[cmdk-input]]:py-0 [&_[cmdk-input]]:text-[14px] [&_[cmdk-input]]:leading-[20px] [&_[cmdk-input]]:text-black [&_[cmdk-input]]:placeholder:text-[#adacb0]\"\n )}\n >\n <CommandInput placeholder=\"Search country\" />\n <CommandList className=\"max-h-56 px-1 pb-1\">\n <CommandEmpty className=\"px-3 py-2 text-left text-[12px] leading-[16px] text-[#7f7d83]\">\n No country found\n </CommandEmpty>\n <CommandGroup className=\"p-0\">\n {countryOptions.map((option) => {\n const isSelected = option.value === selectedCountryValue\n const optionName = option.name || option.label\n\n return (\n <CommandItem\n key={option.value}\n value={`${option.label} ${optionName} ${option.dialCode}`}\n onSelect={() => handleCountrySelect(option)}\n className={cn(\n \"flex w-full cursor-pointer items-center gap-2 rounded-[4px] px-3 py-2 text-[14px] leading-[20px] text-black\",\n \"data-[selected=true]:bg-[#fafafa] data-[selected=true]:text-black\",\n isSelected && \"bg-[#fafafa]\"\n )}\n >\n <FlagIcon flag={option.flag} />\n <span className=\"min-w-0 flex-1 truncate\">{optionName}</span>\n {option.dialCode ? (\n <span className=\"text-[#7f7d83]\">{option.dialCode}</span>\n ) : null}\n <Check\n className={cn(\n \"h-4 w-4 text-[#1d1c20]\",\n isSelected ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n\n <div\n className={cn(\n \"flex min-w-0 flex-1 items-center gap-2 border-l border-[#e6e6e6] bg-white px-3 py-2\",\n disabled && \"bg-[#f2f2f2]\"\n )}\n >\n {selectedCountry?.dialCode ? (\n <span className=\"shrink-0 text-[14px] leading-[20px] text-[#7f7d83]\">\n {selectedCountry.dialCode}\n </span>\n ) : null}\n <input\n ref={ref}\n disabled={disabled}\n placeholder={placeholder}\n onFocus={(event) => {\n setIsInputFocused(true)\n onFocus?.(event)\n }}\n onBlur={(event) => {\n setIsInputFocused(false)\n onBlur?.(event)\n }}\n className={cn(\n \"h-full w-full min-w-0 border-0 bg-transparent p-0 text-[14px] leading-[20px] text-black outline-none placeholder:text-[#adacb0]\",\n disabled &&\n \"cursor-not-allowed text-[#9ca3af] placeholder:text-[#b3b3b3]\",\n inputClassName\n )}\n type={type}\n {...props}\n />\n </div>\n </div>\n\n {error ? (\n <p className=\"w-full text-[12px] leading-[16px] text-[#ff3b30]\">{error}</p>\n ) : helperText ? (\n <p className=\"w-full text-[12px] leading-[16px] text-[#7f7d83]\">\n {helperText}\n </p>\n ) : null}\n </div>\n )\n }\n)\n\nPhoneInput.displayName = \"PhoneInput\"\n\nexport { PhoneInput, DEFAULT_COUNTRY_OPTIONS }\nexport type { PhoneCountryOption }\n"],"names":["DEFAULT_COUNTRY_OPTIONS","PHONE_COUNTRY_OPTIONS","COUNTRY_FLAG_COMPONENTS","CountryFlags","getCountryCodeFromFlagEmoji","flag","symbols","letters","symbol","codePoint","letter","FlagIcon","className","countryCode","React","SvgFlag","cn","PhoneInput","inputClassName","label","helperText","error","country","defaultCountry","countryOptions","onCountryChange","disabled","type","onFocus","onBlur","placeholder","props","ref","open","setOpen","isInputFocused","setIsInputFocused","uncontrolledCountry","setUncontrolledCountry","selectedCountryValue","selectedCountry","option","handleCountrySelect","isAriaInvalid","hasError","isActive","Popover","nextOpen","PopoverTrigger","Globe","ChevronDown","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","isSelected","optionName","CommandItem","Check","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es32.js","sources":["../src/components/ui/input-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Textarea } from \"@/components/ui/textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex w-full items-center rounded-[8px] border border-[#e6e6e6] bg-white text-[14px] leading-[20px] text-foreground transition-colors\",\n \"h-10 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"focus-within:border-[#1D1C20]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:border-[#ff3b30]\",\n\n // Disabled state.\n \"data-[disabled=true]:cursor-not-allowed data-[disabled=true]:bg-[#f2f2f2] data-[disabled=true]:text-[#9ca3af]\",\n\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium text-[#7f7d83] group-data-[disabled=true]/input-group:text-[#b3b3b3] [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n"],"names":["InputGroup","className","props","jsx","cn","inputGroupAddonVariants","cva","InputGroupAddon","align","e","inputGroupButtonVariants","InputGroupButton","type","variant","size","Button","InputGroupText","InputGroupInput","Input","InputGroupTextarea","Textarea"],"mappings":"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"}
|