ivt
Version:
Ivt Components Library
59 lines (56 loc) • 2.83 kB
JavaScript
import React__default from 'react';
import { c as cn } from './utils-BDcRwQMd.mjs';
import { t as tryParseDate, p as ptBR } from './date-Dqmv8Nr4.mjs';
import { C as CalendarDays } from './calendar-days-DnYx8d46.mjs';
import { X } from './x-B6hDJA_l.mjs';
import { C as Calendar } from './calendar-CDJv1B--.mjs';
import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-CdZgcLPo.mjs';
import { B as Button } from './button-CZpmCmNo.mjs';
import { f as format } from './format-8qs-kXlN.mjs';
function DatePicker({ date, setDate, placeholder = "Selecione uma data", id = "date-picker", buttonProps, popoverProps, popoverContentClassName, className, disabled, defaultMonth, clearable = true, ...props }) {
const validDate = tryParseDate(date ?? undefined);
const handleClear = (e)=>{
e.stopPropagation();
setDate(undefined);
};
return /*#__PURE__*/ React__default.createElement(Popover, popoverProps, /*#__PURE__*/ React__default.createElement(PopoverTrigger, {
asChild: true
}, /*#__PURE__*/ React__default.createElement(Button, {
id: id,
variant: "outline",
className: cn("hover:text-foreground justify-between text-left font-normal", !validDate && "text-muted-foreground hover:text-muted-foreground", className),
disabled: typeof disabled === "boolean" ? disabled : undefined,
...buttonProps
}, /*#__PURE__*/ React__default.createElement("div", {
className: "flex items-center"
}, /*#__PURE__*/ React__default.createElement(CalendarDays, {
className: "mr-2 size-4"
}), validDate ? format(validDate, "P", {
locale: ptBR
}) : /*#__PURE__*/ React__default.createElement("span", null, placeholder)), validDate && !disabled && clearable && // biome-ignore lint/a11y/useKeyWithClickEvents: clear button action
// biome-ignore lint/a11y/noStaticElementInteractions: clear button action
/*#__PURE__*/ React__default.createElement("div", {
onClick: handleClear,
className: "cursor-pointer p-1"
}, /*#__PURE__*/ React__default.createElement(X, {
className: "h-4 w-4 opacity-50 hover:opacity-100"
})))), /*#__PURE__*/ React__default.createElement(PopoverContent, {
className: cn("w-auto p-0", popoverContentClassName),
align: "start"
}, /*#__PURE__*/ React__default.createElement(Calendar, {
autoFocus: true,
captionLayout: "dropdown",
selected: validDate,
onSelect: (d)=>setDate(d),
locale: ptBR,
numberOfMonths: 1,
fromYear: 2010,
toYear: 2040,
disabled: disabled,
defaultMonth: validDate ?? defaultMonth ?? new Date(),
...props,
mode: "single"
})));
}
export { DatePicker as D };
//# sourceMappingURL=date-picker-BBCtT16G.mjs.map