@akshar-technosoft/ui 1.0.2 → 1.0.3
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/data/data-table/data-table-toolbar.cjs +1 -1
- package/dist/components/data/data-table/data-table-toolbar.cjs.map +1 -1
- package/dist/components/data/data-table/data-table-toolbar.d.cts +2 -1
- package/dist/components/data/data-table/data-table-toolbar.d.ts +2 -1
- package/dist/components/data/data-table/data-table-toolbar.js +1 -1
- package/dist/components/data/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/data/data-table/data-table-types.cjs.map +1 -1
- package/dist/components/data/data-table/data-table-types.d.cts +5 -0
- package/dist/components/data/data-table/data-table-types.d.ts +5 -0
- package/dist/components/data/data-table/data-table.cjs +1 -1
- package/dist/components/data/data-table/data-table.cjs.map +1 -1
- package/dist/components/data/data-table/data-table.d.cts +1 -1
- package/dist/components/data/data-table/data-table.d.ts +1 -1
- package/dist/components/data/data-table/data-table.js +1 -1
- package/dist/components/data/data-table/data-table.js.map +1 -1
- package/dist/components/data/data-table/index.cjs +1 -1
- package/dist/components/data/data-table/index.cjs.map +1 -1
- package/dist/components/data/data-table/index.js +1 -1
- package/dist/components/data/data-table/index.js.map +1 -1
- package/dist/components/helper/date-filter.cjs +3 -0
- package/dist/components/helper/date-filter.cjs.map +1 -0
- package/dist/components/helper/date-filter.d.cts +13 -0
- package/dist/components/helper/date-filter.d.ts +13 -0
- package/dist/components/helper/date-filter.js +3 -0
- package/dist/components/helper/date-filter.js.map +1 -0
- package/dist/components/ui/calendar.cjs +3 -0
- package/dist/components/ui/calendar.cjs.map +1 -0
- package/dist/components/ui/calendar.d.cts +13 -0
- package/dist/components/ui/calendar.d.ts +13 -0
- package/dist/components/ui/calendar.js +3 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -5
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
"use strict";var $=Object.create;var w=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var X=(e,n)=>{for(var o in n)w(e,o,{get:n[o],enumerable:!0})},z=(e,n,o,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let d of q(n))!W.call(e,d)&&d!==o&&w(e,d,{get:()=>n[d],enumerable:!(a=j(n,d))||a.enumerable});return e};var E=(e,n,o)=>(o=e!=null?$(H(e)):{},z(n||!e||!e.__esModule?w(o,"default",{value:e,enumerable:!0}):o,e)),G=e=>z(w({},"__esModule",{value:!0}),e);var Q={};X(Q,{DateFilter:()=>K});module.exports=G(Q);var k=require("react"),A=require("lucide-react"),b=require("date-fns");var y=require("radix-ui");var N=require("clsx"),R=require("tailwind-merge");function t(...e){return(0,R.twMerge)((0,N.clsx)(e))}var h=require("react/jsx-runtime");function M({...e}){return(0,h.jsx)(y.Popover.Root,{"data-slot":"popover",...e})}function D({...e}){return(0,h.jsx)(y.Popover.Trigger,{"data-slot":"popover-trigger",...e})}function B({className:e,align:n="center",sideOffset:o=4,...a}){return(0,h.jsx)(y.Popover.Portal,{children:(0,h.jsx)(y.Popover.Content,{"data-slot":"popover-content",align:n,sideOffset:o,className:t("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...a})})}var S=require("radix-ui"),V=require("class-variance-authority");var T=require("react/jsx-runtime"),P=(0,V.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n,size:o,asChild:a=!1,...d}){let l=a?S.Slot.Slot:"button";return(0,T.jsx)(l,{"data-slot":"button",className:t(P({variant:n,size:o,className:e}),"transition-none"),...d})}var C=E(require("react"),1),v=require("lucide-react"),x=require("react-day-picker");var u=require("react/jsx-runtime");function O({className:e,classNames:n,showOutsideDays:o=!0,captionLayout:a="label",buttonVariant:d="ghost",formatters:l,components:_,...f}){let r=(0,x.getDefaultClassNames)();return(0,u.jsx)(x.DayPicker,{showOutsideDays:o,className:t("bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[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`,e),captionLayout:a,formatters:{formatMonthDropdown:s=>s.toLocaleString("default",{month:"short"}),...l},classNames:{root:t("w-fit",r.root),months:t("flex gap-4 flex-col md:flex-row relative",r.months),month:t("flex flex-col w-full gap-4",r.month),nav:t("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",r.nav),button_previous:t(P({variant:d}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",r.button_previous),button_next:t(P({variant:d}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",r.button_next),month_caption:t("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",r.month_caption),dropdowns:t("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",r.dropdowns),dropdown_root:t("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",r.dropdown_root),dropdown:t("absolute bg-popover inset-0 opacity-0",r.dropdown),caption_label:t("select-none font-medium",a==="label"?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",r.caption_label),table:"w-full border-collapse",weekdays:t("flex",r.weekdays),weekday:t("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",r.weekday),week:t("flex w-full mt-2",r.week),week_number_header:t("select-none w-(--cell-size)",r.week_number_header),week_number:t("text-[0.8rem] select-none text-muted-foreground",r.week_number),day:t("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",r.day),range_start:t("rounded-l-md bg-accent",r.range_start),range_middle:t("rounded-none",r.range_middle),range_end:t("rounded-r-md bg-accent",r.range_end),today:t("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",r.today),outside:t("text-muted-foreground aria-selected:text-muted-foreground",r.outside),disabled:t("text-muted-foreground opacity-50",r.disabled),hidden:t("invisible",r.hidden),...n},components:{Root:({className:s,rootRef:c,...p})=>(0,u.jsx)("div",{"data-slot":"calendar",ref:c,className:t(s),...p}),Chevron:({className:s,orientation:c,...p})=>c==="left"?(0,u.jsx)(v.ChevronLeftIcon,{className:t("size-4",s),...p}):c==="right"?(0,u.jsx)(v.ChevronRightIcon,{className:t("size-4",s),...p}):(0,u.jsx)(v.ChevronDownIcon,{className:t("size-4",s),...p}),DayButton:J,WeekNumber:({children:s,...c})=>(0,u.jsx)("td",{...c,children:(0,u.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:s})}),..._},...f})}function J({className:e,day:n,modifiers:o,...a}){let d=(0,x.getDefaultClassNames)(),l=C.useRef(null);return C.useEffect(()=>{o.focused&&l.current?.focus()},[o.focused]),(0,u.jsx)(m,{ref:l,variant:"ghost",size:"icon","data-day":n.date.toLocaleDateString(),"data-selected-single":o.selected&&!o.range_start&&!o.range_end&&!o.range_middle,"data-range-start":o.range_start,"data-range-end":o.range_end,"data-range-middle":o.range_middle,className:t("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",d.day,e),...a})}var i=require("react/jsx-runtime");function K({value:e,onChange:n,placeholder:o,mode:a,externalSearch:d,onExternalChange:l}){let[_,f]=(0,k.useState)(!1),[r,s]=(0,k.useState)(e),c=()=>{n(r),d&&l&&l(r),f(!1)},p=()=>{s(e),f(!1)},I=()=>{let g=a==="single"?null:{from:null,to:null};s(g),n(g),d&&l&&l(g),f(!1)},F=()=>e?a==="single"?(0,b.format)(e,"PPP"):e.from&&e.to?`${(0,b.format)(e.from,"MMM dd")} - ${(0,b.format)(e.to,"MMM dd, yyyy")}`:e.from?`From ${(0,b.format)(e.from,"MMM dd, yyyy")}`:e.to?`To ${(0,b.format)(e.to,"MMM dd, yyyy")}`:o:o,L=g=>{s(a==="single"?g:g||{from:null,to:null})};return(0,i.jsxs)(M,{open:_,onOpenChange:f,children:[(0,i.jsx)(D,{asChild:!0,children:(0,i.jsxs)(m,{variant:"outline",className:t("w-full justify-start text-left font-normal h-9",!e&&"text-muted-foreground"),children:[(0,i.jsx)(A.Calendar,{className:"mr-2 h-4 w-4"}),F()]})}),(0,i.jsxs)(B,{className:"w-auto p-0",align:"start",children:[(0,i.jsx)("div",{className:"p-3",children:(0,i.jsx)(O,{mode:a,selected:r,onSelect:L,numberOfMonths:a==="range"?2:1,className:"rounded-md border",...a==="range"&&{required:!0}})}),(0,i.jsxs)("div",{className:"flex items-center justify-between p-3 border-t",children:[(0,i.jsx)(m,{variant:"ghost",size:"sm",onClick:I,children:"Clear"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(m,{variant:"outline",size:"sm",onClick:p,children:"Cancel"}),(0,i.jsx)(m,{size:"sm",onClick:c,disabled:a==="range"&&(!r?.from||!r?.to),children:"Apply"})]})]})]})]})}0&&(module.exports={DateFilter});
|
|
3
|
+
//# sourceMappingURL=date-filter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/helper/date-filter.tsx","../../../src/components/ui/popover.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/calendar.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { Calendar as CalendarIcon, Check, X } from \"lucide-react\";\r\nimport { format } from \"date-fns\";\r\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/popover\";\r\nimport { Button } from \"../ui/button\";\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Calendar } from \"../ui/calendar\";\r\n\r\ninterface DateFilterProps {\r\n value: any;\r\n onChange: (value: any) => void;\r\n placeholder: string;\r\n mode: \"single\" | \"range\";\r\n externalSearch?: boolean;\r\n onExternalChange?: (value: any) => void;\r\n}\r\n\r\nexport function DateFilter({\r\n value,\r\n onChange,\r\n placeholder,\r\n mode,\r\n externalSearch,\r\n onExternalChange,\r\n}: DateFilterProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempValue, setTempValue] = useState(value);\r\n\r\n const handleApply = () => {\r\n onChange(tempValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(tempValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n setTempValue(value);\r\n setIsOpen(false);\r\n };\r\n\r\n const handleClear = () => {\r\n const newValue = mode === \"single\" ? null : { from: null, to: null };\r\n setTempValue(newValue);\r\n onChange(newValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(newValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const displayText = () => {\r\n if (!value) return placeholder;\r\n\r\n if (mode === \"single\") {\r\n return format(value, \"PPP\");\r\n }\r\n\r\n if (value.from && value.to) {\r\n return `${format(value.from, \"MMM dd\")} - ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.from) {\r\n return `From ${format(value.from, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.to) {\r\n return `To ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n // Handle calendar selection based on mode\r\n const handleCalendarSelect = (selectedValue: any) => {\r\n if (mode === \"single\") {\r\n setTempValue(selectedValue);\r\n } else {\r\n // For range mode, ensure we have proper structure\r\n setTempValue(selectedValue || { from: null, to: null });\r\n }\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal h-9\",\r\n !value && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\r\n {displayText()}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <div className=\"p-3\">\r\n <Calendar\r\n mode={mode}\r\n selected={tempValue}\r\n onSelect={handleCalendarSelect}\r\n numberOfMonths={mode === \"range\" ? 2 : 1}\r\n className=\"rounded-md border\"\r\n {...(mode === \"range\" && { required: true })}\r\n />\r\n </div>\r\n <div className=\"flex items-center justify-between p-3 border-t\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\r\n Clear\r\n </Button>\r\n <div className=\"flex gap-2\">\r\n <Button variant=\"outline\" size=\"sm\" onClick={handleCancel}>\r\n Cancel\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n onClick={handleApply}\r\n disabled={mode === \"range\" && (!tempValue?.from || !tempValue?.to)}\r\n >\r\n Apply\r\n </Button>\r\n </div>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}","import * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\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-size:--spacing(8)] [[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) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>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 rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", 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(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) 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-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"mappings":"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","names":["date_filter_exports","__export","DateFilter","__toCommonJS","import_react","import_lucide_react","import_date_fns","import_radix_ui","import_clsx","import_tailwind_merge","cn","inputs","import_jsx_runtime","Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","import_radix_ui","import_class_variance_authority","import_jsx_runtime","buttonVariants","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","React","import_lucide_react","import_react_day_picker","import_jsx_runtime","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","cn","date","buttonVariants","rootRef","orientation","CalendarDayButton","children","day","modifiers","ref","Button","import_jsx_runtime","DateFilter","value","onChange","placeholder","mode","externalSearch","onExternalChange","isOpen","setIsOpen","tempValue","setTempValue","handleApply","handleCancel","handleClear","newValue","displayText","handleCalendarSelect","selectedValue","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface DateFilterProps {
|
|
4
|
+
value: any;
|
|
5
|
+
onChange: (value: any) => void;
|
|
6
|
+
placeholder: string;
|
|
7
|
+
mode: "single" | "range";
|
|
8
|
+
externalSearch?: boolean;
|
|
9
|
+
onExternalChange?: (value: any) => void;
|
|
10
|
+
}
|
|
11
|
+
declare function DateFilter({ value, onChange, placeholder, mode, externalSearch, onExternalChange, }: DateFilterProps): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
export { DateFilter };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface DateFilterProps {
|
|
4
|
+
value: any;
|
|
5
|
+
onChange: (value: any) => void;
|
|
6
|
+
placeholder: string;
|
|
7
|
+
mode: "single" | "range";
|
|
8
|
+
externalSearch?: boolean;
|
|
9
|
+
onExternalChange?: (value: any) => void;
|
|
10
|
+
}
|
|
11
|
+
declare function DateFilter({ value, onChange, placeholder, mode, externalSearch, onExternalChange, }: DateFilterProps): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
export { DateFilter };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import{useState as R}from"react";import{Calendar as q}from"lucide-react";import{format as v}from"date-fns";import{Popover as y}from"radix-ui";import{clsx as S}from"clsx";import{twMerge as V}from"tailwind-merge";function e(...r){return V(S(r))}import{jsx as h}from"react/jsx-runtime";function C({...r}){return h(y.Root,{"data-slot":"popover",...r})}function _({...r}){return h(y.Trigger,{"data-slot":"popover-trigger",...r})}function k({className:r,align:s="center",sideOffset:o=4,...n}){return h(y.Portal,{children:h(y.Content,{"data-slot":"popover-content",align:s,sideOffset:o,className:e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",r),...n})})}import{Slot as T}from"radix-ui";import{cva as O}from"class-variance-authority";import{jsx as A}from"react/jsx-runtime";var x=O("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function p({className:r,variant:s,size:o,asChild:n=!1,...i}){let d=n?T.Slot:"button";return A(d,{"data-slot":"button",className:e(x({variant:s,size:o,className:r}),"transition-none"),...i})}import*as w from"react";import{ChevronDownIcon as I,ChevronLeftIcon as F,ChevronRightIcon as L}from"lucide-react";import{DayPicker as $,getDefaultClassNames as z}from"react-day-picker";import{jsx as u}from"react/jsx-runtime";function N({className:r,classNames:s,showOutsideDays:o=!0,captionLayout:n="label",buttonVariant:i="ghost",formatters:d,components:P,...f}){let t=z();return u($,{showOutsideDays:o,className:e("bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[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`,r),captionLayout:n,formatters:{formatMonthDropdown:a=>a.toLocaleString("default",{month:"short"}),...d},classNames:{root:e("w-fit",t.root),months:e("flex gap-4 flex-col md:flex-row relative",t.months),month:e("flex flex-col w-full gap-4",t.month),nav:e("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",t.nav),button_previous:e(x({variant:i}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_previous),button_next:e(x({variant:i}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_next),month_caption:e("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",t.month_caption),dropdowns:e("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",t.dropdowns),dropdown_root:e("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",t.dropdown_root),dropdown:e("absolute bg-popover inset-0 opacity-0",t.dropdown),caption_label:e("select-none font-medium",n==="label"?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",t.caption_label),table:"w-full border-collapse",weekdays:e("flex",t.weekdays),weekday:e("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",t.weekday),week:e("flex w-full mt-2",t.week),week_number_header:e("select-none w-(--cell-size)",t.week_number_header),week_number:e("text-[0.8rem] select-none text-muted-foreground",t.week_number),day:e("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",t.day),range_start:e("rounded-l-md bg-accent",t.range_start),range_middle:e("rounded-none",t.range_middle),range_end:e("rounded-r-md bg-accent",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),...s},components:{Root:({className:a,rootRef:l,...c})=>u("div",{"data-slot":"calendar",ref:l,className:e(a),...c}),Chevron:({className:a,orientation:l,...c})=>l==="left"?u(F,{className:e("size-4",a),...c}):l==="right"?u(L,{className:e("size-4",a),...c}):u(I,{className:e("size-4",a),...c}),DayButton:j,WeekNumber:({children:a,...l})=>u("td",{...l,children:u("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:a})}),...P},...f})}function j({className:r,day:s,modifiers:o,...n}){let i=z(),d=w.useRef(null);return w.useEffect(()=>{o.focused&&d.current?.focus()},[o.focused]),u(p,{ref:d,variant:"ghost",size:"icon","data-day":s.date.toLocaleDateString(),"data-selected-single":o.selected&&!o.range_start&&!o.range_end&&!o.range_middle,"data-range-start":o.range_start,"data-range-end":o.range_end,"data-range-middle":o.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-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",i.day,r),...n})}import{jsx as m,jsxs as b}from"react/jsx-runtime";function be({value:r,onChange:s,placeholder:o,mode:n,externalSearch:i,onExternalChange:d}){let[P,f]=R(!1),[t,a]=R(r),l=()=>{s(t),i&&d&&d(t),f(!1)},c=()=>{a(r),f(!1)},M=()=>{let g=n==="single"?null:{from:null,to:null};a(g),s(g),i&&d&&d(g),f(!1)},D=()=>r?n==="single"?v(r,"PPP"):r.from&&r.to?`${v(r.from,"MMM dd")} - ${v(r.to,"MMM dd, yyyy")}`:r.from?`From ${v(r.from,"MMM dd, yyyy")}`:r.to?`To ${v(r.to,"MMM dd, yyyy")}`:o:o,B=g=>{a(n==="single"?g:g||{from:null,to:null})};return b(C,{open:P,onOpenChange:f,children:[m(_,{asChild:!0,children:b(p,{variant:"outline",className:e("w-full justify-start text-left font-normal h-9",!r&&"text-muted-foreground"),children:[m(q,{className:"mr-2 h-4 w-4"}),D()]})}),b(k,{className:"w-auto p-0",align:"start",children:[m("div",{className:"p-3",children:m(N,{mode:n,selected:t,onSelect:B,numberOfMonths:n==="range"?2:1,className:"rounded-md border",...n==="range"&&{required:!0}})}),b("div",{className:"flex items-center justify-between p-3 border-t",children:[m(p,{variant:"ghost",size:"sm",onClick:M,children:"Clear"}),b("div",{className:"flex gap-2",children:[m(p,{variant:"outline",size:"sm",onClick:c,children:"Cancel"}),m(p,{size:"sm",onClick:l,disabled:n==="range"&&(!t?.from||!t?.to),children:"Apply"})]})]})]})]})}export{be as DateFilter};
|
|
3
|
+
//# sourceMappingURL=date-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/helper/date-filter.tsx","../../../src/components/ui/popover.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/calendar.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { Calendar as CalendarIcon, Check, X } from \"lucide-react\";\r\nimport { format } from \"date-fns\";\r\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/popover\";\r\nimport { Button } from \"../ui/button\";\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Calendar } from \"../ui/calendar\";\r\n\r\ninterface DateFilterProps {\r\n value: any;\r\n onChange: (value: any) => void;\r\n placeholder: string;\r\n mode: \"single\" | \"range\";\r\n externalSearch?: boolean;\r\n onExternalChange?: (value: any) => void;\r\n}\r\n\r\nexport function DateFilter({\r\n value,\r\n onChange,\r\n placeholder,\r\n mode,\r\n externalSearch,\r\n onExternalChange,\r\n}: DateFilterProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempValue, setTempValue] = useState(value);\r\n\r\n const handleApply = () => {\r\n onChange(tempValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(tempValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n setTempValue(value);\r\n setIsOpen(false);\r\n };\r\n\r\n const handleClear = () => {\r\n const newValue = mode === \"single\" ? null : { from: null, to: null };\r\n setTempValue(newValue);\r\n onChange(newValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(newValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const displayText = () => {\r\n if (!value) return placeholder;\r\n\r\n if (mode === \"single\") {\r\n return format(value, \"PPP\");\r\n }\r\n\r\n if (value.from && value.to) {\r\n return `${format(value.from, \"MMM dd\")} - ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.from) {\r\n return `From ${format(value.from, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.to) {\r\n return `To ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n // Handle calendar selection based on mode\r\n const handleCalendarSelect = (selectedValue: any) => {\r\n if (mode === \"single\") {\r\n setTempValue(selectedValue);\r\n } else {\r\n // For range mode, ensure we have proper structure\r\n setTempValue(selectedValue || { from: null, to: null });\r\n }\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal h-9\",\r\n !value && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\r\n {displayText()}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <div className=\"p-3\">\r\n <Calendar\r\n mode={mode}\r\n selected={tempValue}\r\n onSelect={handleCalendarSelect}\r\n numberOfMonths={mode === \"range\" ? 2 : 1}\r\n className=\"rounded-md border\"\r\n {...(mode === \"range\" && { required: true })}\r\n />\r\n </div>\r\n <div className=\"flex items-center justify-between p-3 border-t\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\r\n Clear\r\n </Button>\r\n <div className=\"flex gap-2\">\r\n <Button variant=\"outline\" size=\"sm\" onClick={handleCancel}>\r\n Cancel\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n onClick={handleApply}\r\n disabled={mode === \"range\" && (!tempValue?.from || !tempValue?.to)}\r\n >\r\n Apply\r\n </Button>\r\n </div>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}","import * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\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-size:--spacing(8)] [[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) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>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 rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", 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(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) 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-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"mappings":"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","names":["useState","CalendarIcon","format","PopoverPrimitive","clsx","twMerge","cn","inputs","jsx","Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","SlotPrimitive","cva","jsx","buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","React","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","DayPicker","getDefaultClassNames","jsx","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","Button","jsx","jsxs","DateFilter","value","onChange","placeholder","mode","externalSearch","onExternalChange","isOpen","setIsOpen","useState","tempValue","setTempValue","handleApply","handleCancel","handleClear","newValue","displayText","format","handleCalendarSelect","selectedValue","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
"use strict";var N=Object.create;var m=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var S=(r,n)=>{for(var a in n)m(r,a,{get:n[a],enumerable:!0})},v=(r,n,a,d)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of P(n))!V.call(r,o)&&o!==a&&m(r,o,{get:()=>n[o],enumerable:!(d=R(n,o))||d.enumerable});return r};var L=(r,n,a)=>(a=r!=null?N(B(r)):{},v(n||!r||!r.__esModule?m(a,"default",{value:r,enumerable:!0}):a,r)),j=r=>v(m({},"__esModule",{value:!0}),r);var M={};S(M,{Calendar:()=>I,CalendarDayButton:()=>z});module.exports=j(M);var b=L(require("react"),1),c=require("lucide-react"),p=require("react-day-picker");var x=require("clsx"),h=require("tailwind-merge");function e(...r){return(0,h.twMerge)((0,x.clsx)(r))}var y=require("radix-ui"),w=require("class-variance-authority");var k=require("react/jsx-runtime"),f=(0,w.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function _({className:r,variant:n,size:a,asChild:d=!1,...o}){let u=d?y.Slot.Slot:"button";return(0,k.jsx)(u,{"data-slot":"button",className:e(f({variant:n,size:a,className:r}),"transition-none"),...o})}var i=require("react/jsx-runtime");function I({className:r,classNames:n,showOutsideDays:a=!0,captionLayout:d="label",buttonVariant:o="ghost",formatters:u,components:C,...D}){let t=(0,p.getDefaultClassNames)();return(0,i.jsx)(p.DayPicker,{showOutsideDays:a,className:e("bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[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`,r),captionLayout:d,formatters:{formatMonthDropdown:s=>s.toLocaleString("default",{month:"short"}),...u},classNames:{root:e("w-fit",t.root),months:e("flex gap-4 flex-col md:flex-row relative",t.months),month:e("flex flex-col w-full gap-4",t.month),nav:e("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",t.nav),button_previous:e(f({variant:o}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_previous),button_next:e(f({variant:o}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_next),month_caption:e("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",t.month_caption),dropdowns:e("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",t.dropdowns),dropdown_root:e("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",t.dropdown_root),dropdown:e("absolute bg-popover inset-0 opacity-0",t.dropdown),caption_label:e("select-none font-medium",d==="label"?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",t.caption_label),table:"w-full border-collapse",weekdays:e("flex",t.weekdays),weekday:e("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",t.weekday),week:e("flex w-full mt-2",t.week),week_number_header:e("select-none w-(--cell-size)",t.week_number_header),week_number:e("text-[0.8rem] select-none text-muted-foreground",t.week_number),day:e("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",t.day),range_start:e("rounded-l-md bg-accent",t.range_start),range_middle:e("rounded-none",t.range_middle),range_end:e("rounded-r-md bg-accent",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),...n},components:{Root:({className:s,rootRef:l,...g})=>(0,i.jsx)("div",{"data-slot":"calendar",ref:l,className:e(s),...g}),Chevron:({className:s,orientation:l,...g})=>l==="left"?(0,i.jsx)(c.ChevronLeftIcon,{className:e("size-4",s),...g}):l==="right"?(0,i.jsx)(c.ChevronRightIcon,{className:e("size-4",s),...g}):(0,i.jsx)(c.ChevronDownIcon,{className:e("size-4",s),...g}),DayButton:z,WeekNumber:({children:s,...l})=>(0,i.jsx)("td",{...l,children:(0,i.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:s})}),...C},...D})}function z({className:r,day:n,modifiers:a,...d}){let o=(0,p.getDefaultClassNames)(),u=b.useRef(null);return b.useEffect(()=>{a.focused&&u.current?.focus()},[a.focused]),(0,i.jsx)(_,{ref:u,variant:"ghost",size:"icon","data-day":n.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-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",o.day,r),...d})}0&&(module.exports={Calendar,CalendarDayButton});
|
|
3
|
+
//# sourceMappingURL=calendar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ui/calendar.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\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-size:--spacing(8)] [[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) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>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 rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", 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(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) 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-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"mappings":"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","names":["calendar_exports","__export","Calendar","CalendarDayButton","__toCommonJS","React","import_lucide_react","import_react_day_picker","import_clsx","import_tailwind_merge","cn","inputs","import_radix_ui","import_class_variance_authority","import_jsx_runtime","buttonVariants","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","import_jsx_runtime","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","cn","date","buttonVariants","rootRef","orientation","CalendarDayButton","children","day","modifiers","ref","Button"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { DayPicker, DayButton } from 'react-day-picker';
|
|
4
|
+
import { Button } from './button.cjs';
|
|
5
|
+
import 'class-variance-authority/dist/types.js';
|
|
6
|
+
import 'class-variance-authority';
|
|
7
|
+
|
|
8
|
+
declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
|
|
9
|
+
buttonVariant?: React.ComponentProps<typeof Button>["variant"];
|
|
10
|
+
}): react_jsx_runtime.JSX.Element;
|
|
11
|
+
declare function CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
export { Calendar, CalendarDayButton };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { DayPicker, DayButton } from 'react-day-picker';
|
|
4
|
+
import { Button } from './button.js';
|
|
5
|
+
import 'class-variance-authority/dist/types.js';
|
|
6
|
+
import 'class-variance-authority';
|
|
7
|
+
|
|
8
|
+
declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
|
|
9
|
+
buttonVariant?: React.ComponentProps<typeof Button>["variant"];
|
|
10
|
+
}): react_jsx_runtime.JSX.Element;
|
|
11
|
+
declare function CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
export { Calendar, CalendarDayButton };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import*as p from"react";import{ChevronDownIcon as k,ChevronLeftIcon as z,ChevronRightIcon as C}from"lucide-react";import{DayPicker as D,getDefaultClassNames as f}from"react-day-picker";import{clsx as x}from"clsx";import{twMerge as h}from"tailwind-merge";function e(...o){return h(x(o))}import{Slot as y}from"radix-ui";import{cva as w}from"class-variance-authority";import{jsx as _}from"react/jsx-runtime";var g=w("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:o,variant:l,size:r,asChild:d=!1,...s}){let i=d?y.Slot:"button";return _(i,{"data-slot":"button",className:e(g({variant:l,size:r,className:o}),"transition-none"),...s})}import{jsx as n}from"react/jsx-runtime";function T({className:o,classNames:l,showOutsideDays:r=!0,captionLayout:d="label",buttonVariant:s="ghost",formatters:i,components:b,...v}){let t=f();return n(D,{showOutsideDays:r,className:e("bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[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`,o),captionLayout:d,formatters:{formatMonthDropdown:a=>a.toLocaleString("default",{month:"short"}),...i},classNames:{root:e("w-fit",t.root),months:e("flex gap-4 flex-col md:flex-row relative",t.months),month:e("flex flex-col w-full gap-4",t.month),nav:e("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",t.nav),button_previous:e(g({variant:s}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_previous),button_next:e(g({variant:s}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_next),month_caption:e("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",t.month_caption),dropdowns:e("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",t.dropdowns),dropdown_root:e("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",t.dropdown_root),dropdown:e("absolute bg-popover inset-0 opacity-0",t.dropdown),caption_label:e("select-none font-medium",d==="label"?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",t.caption_label),table:"w-full border-collapse",weekdays:e("flex",t.weekdays),weekday:e("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",t.weekday),week:e("flex w-full mt-2",t.week),week_number_header:e("select-none w-(--cell-size)",t.week_number_header),week_number:e("text-[0.8rem] select-none text-muted-foreground",t.week_number),day:e("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",t.day),range_start:e("rounded-l-md bg-accent",t.range_start),range_middle:e("rounded-none",t.range_middle),range_end:e("rounded-r-md bg-accent",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),...l},components:{Root:({className:a,rootRef:u,...c})=>n("div",{"data-slot":"calendar",ref:u,className:e(a),...c}),Chevron:({className:a,orientation:u,...c})=>u==="left"?n(z,{className:e("size-4",a),...c}):u==="right"?n(C,{className:e("size-4",a),...c}):n(k,{className:e("size-4",a),...c}),DayButton:N,WeekNumber:({children:a,...u})=>n("td",{...u,children:n("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:a})}),...b},...v})}function N({className:o,day:l,modifiers:r,...d}){let s=f(),i=p.useRef(null);return p.useEffect(()=>{r.focused&&i.current?.focus()},[r.focused]),n(m,{ref:i,variant:"ghost",size:"icon","data-day":l.date.toLocaleDateString(),"data-selected-single":r.selected&&!r.range_start&&!r.range_end&&!r.range_middle,"data-range-start":r.range_start,"data-range-end":r.range_end,"data-range-middle":r.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-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",s.day,o),...d})}export{T as Calendar,N as CalendarDayButton};
|
|
3
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ui/calendar.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\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-size:--spacing(8)] [[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) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>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 rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", 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(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) 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-accent-foreground 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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"mappings":"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","names":["React","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","DayPicker","getDefaultClassNames","clsx","twMerge","cn","inputs","SlotPrimitive","cva","jsx","buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","jsx","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","Button"]}
|