@omnifyjp/ui 0.4.2 → 0.4.4

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.
@@ -1,5 +1,5 @@
1
1
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-C34KSTWA.js';
2
- import { Calendar as Calendar$1 } from './chunk-4MHIUUAW.js';
2
+ import { Calendar as Calendar$1 } from './chunk-QB3UWRZH.js';
3
3
  import { Button } from './chunk-55E7D2HR.js';
4
4
  import { cn } from './chunk-DGPY4WP3.js';
5
5
  import { format } from 'date-fns';
@@ -37,7 +37,7 @@ function DatePicker({
37
37
  mode: "single",
38
38
  selected: value,
39
39
  onSelect: onChange,
40
- initialFocus: true
40
+ autoFocus: true
41
41
  }
42
42
  ) })
43
43
  ] });
@@ -79,12 +79,12 @@ function DateRangePicker({
79
79
  selected: value,
80
80
  onSelect: onChange,
81
81
  numberOfMonths: 2,
82
- initialFocus: true
82
+ autoFocus: true
83
83
  }
84
84
  ) })
85
85
  ] });
86
86
  }
87
87
 
88
88
  export { DatePicker, DateRangePicker };
89
- //# sourceMappingURL=chunk-YS3PMGYC.js.map
90
- //# sourceMappingURL=chunk-YS3PMGYC.js.map
89
+ //# sourceMappingURL=chunk-HWTW64R5.js.map
90
+ //# sourceMappingURL=chunk-HWTW64R5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/date-picker.tsx"],"names":["CalendarIcon","Calendar"],"mappings":"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","file":"chunk-YS3PMGYC.js","sourcesContent":["import { format } from \"date-fns\";\nimport { Calendar as CalendarIcon } from \"lucide-react\";\nimport type { Locale } from \"date-fns\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Calendar } from \"./calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\n\ninterface DatePickerProps {\n /** Currently selected date. */\n value?: Date;\n /** Callback fired when a date is selected or cleared. */\n onChange?: (date: Date | undefined) => void;\n /** Placeholder text shown when no date is selected. */\n placeholder?: string;\n /** Additional CSS class for the trigger button. */\n className?: string;\n /** Whether the date picker is disabled. */\n disabled?: boolean;\n /** date-fns Locale object for date formatting (e.g., `ja` for Japanese). */\n locale?: Locale;\n}\n\n/**\n * Single date picker with a calendar popover.\n * Displays the selected date formatted with date-fns and opens a calendar on click.\n *\n * @example\n * ```tsx\n * const [date, setDate] = useState<Date>();\n *\n * <DatePicker\n * value={date}\n * onChange={setDate}\n * placeholder=\"Pick a date\"\n * />\n * ```\n */\nexport function DatePicker({\n value,\n onChange,\n placeholder = \"Select date\",\n className,\n disabled,\n locale,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-full justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {value ? format(value, \"PPP\", locale ? { locale } : undefined) : <span>{placeholder}</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={value}\n onSelect={onChange}\n initialFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n\ninterface DateRangePickerProps {\n /** Currently selected date range with `from` and optional `to`. */\n value?: { from: Date | undefined; to?: Date | undefined };\n /** Callback fired when the date range changes. */\n onChange?: (range: { from: Date | undefined; to?: Date | undefined } | undefined) => void;\n /** Placeholder text shown when no range is selected. */\n placeholder?: string;\n /** Additional CSS class for the trigger button. */\n className?: string;\n /** Whether the date range picker is disabled. */\n disabled?: boolean;\n /** date-fns Locale object for date formatting (e.g., `ja` for Japanese). */\n locale?: Locale;\n}\n\n/**\n * Date range picker with a two-month calendar popover.\n * Allows selecting a start and end date displayed as a range string.\n *\n * @example\n * ```tsx\n * const [range, setRange] = useState<{ from: Date | undefined; to?: Date }>();\n *\n * <DateRangePicker\n * value={range}\n * onChange={setRange}\n * placeholder=\"Select date range\"\n * />\n * ```\n */\nexport function DateRangePicker({\n value,\n onChange,\n placeholder = \"Select date range\",\n className,\n disabled,\n locale,\n}: DateRangePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-full justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {value?.from ? (\n value.to ? (\n <>\n {format(value.from, \"PPP\", locale ? { locale } : undefined)} -{\" \"}\n {format(value.to, \"PPP\", locale ? { locale } : undefined)}\n </>\n ) : (\n format(value.from, \"PPP\", locale ? { locale } : undefined)\n )\n ) : (\n <span>{placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={value}\n onSelect={onChange}\n numberOfMonths={2}\n initialFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/date-picker.tsx"],"names":["CalendarIcon","Calendar"],"mappings":"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","file":"chunk-HWTW64R5.js","sourcesContent":["import { format } from \"date-fns\";\nimport { Calendar as CalendarIcon } from \"lucide-react\";\nimport type { Locale } from \"date-fns\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Calendar } from \"./calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\n\ninterface DatePickerProps {\n /** Currently selected date. */\n value?: Date;\n /** Callback fired when a date is selected or cleared. */\n onChange?: (date: Date | undefined) => void;\n /** Placeholder text shown when no date is selected. */\n placeholder?: string;\n /** Additional CSS class for the trigger button. */\n className?: string;\n /** Whether the date picker is disabled. */\n disabled?: boolean;\n /** date-fns Locale object for date formatting (e.g., `ja` for Japanese). */\n locale?: Locale;\n}\n\n/**\n * Single date picker with a calendar popover.\n * Displays the selected date formatted with date-fns and opens a calendar on click.\n *\n * @example\n * ```tsx\n * const [date, setDate] = useState<Date>();\n *\n * <DatePicker\n * value={date}\n * onChange={setDate}\n * placeholder=\"Pick a date\"\n * />\n * ```\n */\nexport function DatePicker({\n value,\n onChange,\n placeholder = \"Select date\",\n className,\n disabled,\n locale,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-full justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {value ? format(value, \"PPP\", locale ? { locale } : undefined) : <span>{placeholder}</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={value}\n onSelect={onChange}\n autoFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n\ninterface DateRangePickerProps {\n /** Currently selected date range with `from` and optional `to`. */\n value?: { from: Date | undefined; to?: Date | undefined };\n /** Callback fired when the date range changes. */\n onChange?: (range: { from: Date | undefined; to?: Date | undefined } | undefined) => void;\n /** Placeholder text shown when no range is selected. */\n placeholder?: string;\n /** Additional CSS class for the trigger button. */\n className?: string;\n /** Whether the date range picker is disabled. */\n disabled?: boolean;\n /** date-fns Locale object for date formatting (e.g., `ja` for Japanese). */\n locale?: Locale;\n}\n\n/**\n * Date range picker with a two-month calendar popover.\n * Allows selecting a start and end date displayed as a range string.\n *\n * @example\n * ```tsx\n * const [range, setRange] = useState<{ from: Date | undefined; to?: Date }>();\n *\n * <DateRangePicker\n * value={range}\n * onChange={setRange}\n * placeholder=\"Select date range\"\n * />\n * ```\n */\nexport function DateRangePicker({\n value,\n onChange,\n placeholder = \"Select date range\",\n className,\n disabled,\n locale,\n}: DateRangePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-full justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {value?.from ? (\n value.to ? (\n <>\n {format(value.from, \"PPP\", locale ? { locale } : undefined)} -{\" \"}\n {format(value.to, \"PPP\", locale ? { locale } : undefined)}\n </>\n ) : (\n format(value.from, \"PPP\", locale ? { locale } : undefined)\n )\n ) : (\n <span>{placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={value}\n onSelect={onChange}\n numberOfMonths={2}\n autoFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n"]}
@@ -0,0 +1,92 @@
1
+ import { buttonVariants } from './chunk-55E7D2HR.js';
2
+ import { cn } from './chunk-DGPY4WP3.js';
3
+ import { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from 'lucide-react';
4
+ import { getDefaultClassNames, DayPicker } from 'react-day-picker';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function Calendar({
8
+ className,
9
+ classNames,
10
+ showOutsideDays = true,
11
+ ...props
12
+ }) {
13
+ const defaultClassNames = getDefaultClassNames();
14
+ return /* @__PURE__ */ jsx(
15
+ DayPicker,
16
+ {
17
+ showOutsideDays,
18
+ className: cn("p-3", className),
19
+ classNames: {
20
+ root: cn("w-fit", defaultClassNames.root),
21
+ months: cn("flex flex-col sm:flex-row gap-2", defaultClassNames.months),
22
+ month: cn("flex flex-col gap-4 w-full", defaultClassNames.month),
23
+ month_caption: cn(
24
+ "flex justify-center pt-1 relative items-center w-full",
25
+ defaultClassNames.month_caption
26
+ ),
27
+ caption_label: cn("text-sm font-medium select-none", defaultClassNames.caption_label),
28
+ dropdowns: cn(
29
+ "flex items-center text-sm font-medium justify-center gap-1.5",
30
+ defaultClassNames.dropdowns
31
+ ),
32
+ dropdown_root: cn(
33
+ "relative border border-input rounded-md",
34
+ defaultClassNames.dropdown_root
35
+ ),
36
+ dropdown: cn("absolute inset-0 opacity-0", defaultClassNames.dropdown),
37
+ nav: cn(
38
+ "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
39
+ defaultClassNames.nav
40
+ ),
41
+ button_previous: cn(
42
+ buttonVariants({ variant: "outline" }),
43
+ "size-7 bg-transparent p-0 opacity-50 hover:opacity-100 select-none",
44
+ defaultClassNames.button_previous
45
+ ),
46
+ button_next: cn(
47
+ buttonVariants({ variant: "outline" }),
48
+ "size-7 bg-transparent p-0 opacity-50 hover:opacity-100 select-none",
49
+ defaultClassNames.button_next
50
+ ),
51
+ table: "w-full border-collapse",
52
+ weekdays: cn("flex", defaultClassNames.weekdays),
53
+ weekday: cn(
54
+ "text-muted-foreground rounded-md w-8 font-normal text-[0.8rem] select-none",
55
+ defaultClassNames.weekday
56
+ ),
57
+ week: cn("flex w-full mt-2", defaultClassNames.week),
58
+ day: cn(
59
+ "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 select-none",
60
+ "[&:has([aria-selected])]:bg-accent",
61
+ "[&:has([aria-selected].rdp-day_range_end)]:rounded-r-md",
62
+ props.mode === "range" ? "[&:has(>.rdp-day_range_end)]:rounded-r-md [&:has(>.rdp-day_range_start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md",
63
+ defaultClassNames.day
64
+ ),
65
+ day_button: cn(
66
+ buttonVariants({ variant: "ghost" }),
67
+ "size-8 p-0 font-normal aria-selected:opacity-100"
68
+ ),
69
+ range_start: "rdp-day_range_start aria-selected:bg-primary aria-selected:text-primary-foreground rounded-l-md",
70
+ range_end: "rdp-day_range_end aria-selected:bg-primary aria-selected:text-primary-foreground rounded-r-md",
71
+ selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-md",
72
+ today: "bg-accent text-accent-foreground rounded-md",
73
+ outside: "text-muted-foreground aria-selected:text-muted-foreground",
74
+ disabled: "text-muted-foreground opacity-50",
75
+ range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground rounded-none",
76
+ hidden: "invisible",
77
+ ...classNames
78
+ },
79
+ components: {
80
+ Chevron: ({ className: className2, orientation, ...chevronProps }) => {
81
+ const Icon = orientation === "left" ? ChevronLeftIcon : orientation === "right" ? ChevronRightIcon : ChevronDownIcon;
82
+ return /* @__PURE__ */ jsx(Icon, { className: cn("size-4", className2), ...chevronProps });
83
+ }
84
+ },
85
+ ...props
86
+ }
87
+ );
88
+ }
89
+
90
+ export { Calendar };
91
+ //# sourceMappingURL=chunk-QB3UWRZH.js.map
92
+ //# sourceMappingURL=chunk-QB3UWRZH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/calendar.tsx"],"names":["className"],"mappings":"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","file":"chunk-QB3UWRZH.js","sourcesContent":["import * as React from \"react\";\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from \"lucide-react\";\nimport { DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants } from \"./button\";\n\n/**\n * Date picker calendar built on `react-day-picker` v9. Supports single, multiple,\n * and range selection modes. Styled with Shadcn UI conventions.\n *\n * @param showOutsideDays - Whether to show days from adjacent months. Defaults to `true`.\n *\n * @example\n * ```tsx\n * const [date, setDate] = useState<Date | undefined>();\n * <Calendar mode=\"single\" selected={date} onSelect={setDate} />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: React.ComponentProps<typeof DayPicker>) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\"flex flex-col sm:flex-row gap-2\", defaultClassNames.months),\n month: cn(\"flex flex-col gap-4 w-full\", defaultClassNames.month),\n month_caption: cn(\n \"flex justify-center pt-1 relative items-center w-full\",\n defaultClassNames.month_caption,\n ),\n caption_label: cn(\"text-sm font-medium select-none\", defaultClassNames.caption_label),\n dropdowns: cn(\n \"flex items-center text-sm font-medium justify-center gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative border border-input rounded-md\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"absolute inset-0 opacity-0\", defaultClassNames.dropdown),\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: \"outline\" }),\n \"size-7 bg-transparent p-0 opacity-50 hover:opacity-100 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: \"outline\" }),\n \"size-7 bg-transparent p-0 opacity-50 hover:opacity-100 select-none\",\n defaultClassNames.button_next,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n day: cn(\n \"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 select-none\",\n \"[&:has([aria-selected])]:bg-accent\",\n \"[&:has([aria-selected].rdp-day_range_end)]:rounded-r-md\",\n props.mode === \"range\"\n ? \"[&:has(>.rdp-day_range_end)]:rounded-r-md [&:has(>.rdp-day_range_start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md\"\n : \"[&:has([aria-selected])]:rounded-md\",\n defaultClassNames.day,\n ),\n day_button: cn(\n buttonVariants({ variant: \"ghost\" }),\n \"size-8 p-0 font-normal aria-selected:opacity-100\",\n ),\n range_start:\n \"rdp-day_range_start aria-selected:bg-primary aria-selected:text-primary-foreground rounded-l-md\",\n range_end:\n \"rdp-day_range_end aria-selected:bg-primary aria-selected:text-primary-foreground rounded-r-md\",\n selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-md\",\n today: \"bg-accent text-accent-foreground rounded-md\",\n outside: \"text-muted-foreground aria-selected:text-muted-foreground\",\n disabled: \"text-muted-foreground opacity-50\",\n range_middle:\n \"aria-selected:bg-accent aria-selected:text-accent-foreground rounded-none\",\n hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n Chevron: ({ className, orientation, ...chevronProps }) => {\n const Icon =\n orientation === \"left\"\n ? ChevronLeftIcon\n : orientation === \"right\"\n ? ChevronRightIcon\n : ChevronDownIcon;\n return <Icon className={cn(\"size-4\", className)} {...chevronProps} />;\n },\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar };\n"]}
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { DayPicker } from 'react-day-picker';
4
4
 
5
5
  /**
6
- * Date picker calendar built on `react-day-picker`. Supports single, multiple,
6
+ * Date picker calendar built on `react-day-picker` v9. Supports single, multiple,
7
7
  * and range selection modes. Styled with Shadcn UI conventions.
8
8
  *
9
9
  * @param showOutsideDays - Whether to show days from adjacent months. Defaults to `true`.
@@ -1,4 +1,4 @@
1
- export { Calendar } from '../chunk-4MHIUUAW.js';
1
+ export { Calendar } from '../chunk-QB3UWRZH.js';
2
2
  import '../chunk-55E7D2HR.js';
3
3
  import '../chunk-DGPY4WP3.js';
4
4
  //# sourceMappingURL=calendar.js.map
@@ -1,6 +1,6 @@
1
- export { DatePicker, DateRangePicker } from '../chunk-YS3PMGYC.js';
1
+ export { DatePicker, DateRangePicker } from '../chunk-HWTW64R5.js';
2
2
  import '../chunk-C34KSTWA.js';
3
- import '../chunk-4MHIUUAW.js';
3
+ import '../chunk-QB3UWRZH.js';
4
4
  import '../chunk-55E7D2HR.js';
5
5
  import '../chunk-DGPY4WP3.js';
6
6
  //# sourceMappingURL=date-picker.js.map
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, Navigat
29
29
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from './chunk-7IRLBU2I.js';
30
30
  export { PasswordInput } from './chunk-3UPBCOS4.js';
31
31
  export { PermissionGrid, buildPermissionId } from './chunk-TJMK2KBE.js';
32
- export { DatePicker, DateRangePicker } from './chunk-YS3PMGYC.js';
32
+ export { DatePicker, DateRangePicker } from './chunk-HWTW64R5.js';
33
33
  export { Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-7XH3MGBR.js';
34
34
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-IAWKX5W4.js';
35
35
  export { FileUpload } from './chunk-G7HTZBUR.js';
@@ -57,7 +57,7 @@ export { Separator } from './chunk-PGWNOZDX.js';
57
57
  export { CalendarToolbar } from './chunk-36YYHIJU.js';
58
58
  export { ToggleGroup, ToggleGroupItem } from './chunk-ZPMXRW2A.js';
59
59
  export { Toggle, toggleVariants } from './chunk-NU56GKGM.js';
60
- export { Calendar } from './chunk-4MHIUUAW.js';
60
+ export { Calendar } from './chunk-QB3UWRZH.js';
61
61
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-Z2QAABLM.js';
62
62
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './chunk-34ARZSNP.js';
63
63
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-LTTNCAAA.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnifyjp/ui",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -43,8 +43,8 @@
43
43
  },
44
44
  "peerDependencies": {
45
45
  "date-fns": ">=3",
46
- "react": ">=18",
47
- "react-dom": ">=18",
46
+ "react": ">=19",
47
+ "react-dom": ">=19",
48
48
  "react-hook-form": ">=7",
49
49
  "recharts": ">=2"
50
50
  },
@@ -92,7 +92,7 @@
92
92
  "embla-carousel-react": "8.6.0",
93
93
  "input-otp": "1.4.2",
94
94
  "lucide-react": "0.487.0",
95
- "react-day-picker": "8.10.1",
95
+ "react-day-picker": "9.6.4",
96
96
  "react-resizable-panels": "2.1.7",
97
97
  "sonner": "2.0.3",
98
98
  "tailwind-merge": "3.2.0",
@@ -1,63 +0,0 @@
1
- import { buttonVariants } from './chunk-55E7D2HR.js';
2
- import { cn } from './chunk-DGPY4WP3.js';
3
- import { ChevronRightIcon, ChevronLeftIcon } from 'lucide-react';
4
- import { DayPicker } from 'react-day-picker';
5
- import { jsx } from 'react/jsx-runtime';
6
-
7
- function Calendar({
8
- className,
9
- classNames,
10
- showOutsideDays = true,
11
- ...props
12
- }) {
13
- return /* @__PURE__ */ jsx(
14
- DayPicker,
15
- {
16
- showOutsideDays,
17
- className: cn("p-3", className),
18
- classNames: {
19
- months: "flex flex-col sm:flex-row gap-2",
20
- month: "flex flex-col gap-4",
21
- caption: "flex justify-center pt-1 relative items-center w-full",
22
- caption_label: "text-sm font-medium",
23
- nav: "flex items-center gap-1",
24
- nav_button: cn(
25
- buttonVariants({ variant: "outline" }),
26
- "size-7 bg-transparent p-0 opacity-50 hover:opacity-100"
27
- ),
28
- nav_button_previous: "absolute left-1",
29
- nav_button_next: "absolute right-1",
30
- table: "w-full border-collapse space-x-1",
31
- head_row: "flex",
32
- head_cell: "text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",
33
- row: "flex w-full mt-2",
34
- cell: cn(
35
- "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",
36
- props.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
37
- ),
38
- day: cn(
39
- buttonVariants({ variant: "ghost" }),
40
- "size-8 p-0 font-normal aria-selected:opacity-100"
41
- ),
42
- day_range_start: "day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",
43
- day_range_end: "day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",
44
- day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
45
- day_today: "bg-accent text-accent-foreground",
46
- day_outside: "day-outside text-muted-foreground aria-selected:text-muted-foreground",
47
- day_disabled: "text-muted-foreground opacity-50",
48
- day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
49
- day_hidden: "invisible",
50
- ...classNames
51
- },
52
- components: {
53
- IconLeft: ({ className: className2, ...props2 }) => /* @__PURE__ */ jsx(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 }),
54
- IconRight: ({ className: className2, ...props2 }) => /* @__PURE__ */ jsx(ChevronRightIcon, { className: cn("size-4", className2), ...props2 })
55
- },
56
- ...props
57
- }
58
- );
59
- }
60
-
61
- export { Calendar };
62
- //# sourceMappingURL=chunk-4MHIUUAW.js.map
63
- //# sourceMappingURL=chunk-4MHIUUAW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/calendar.tsx"],"names":["className","props"],"mappings":";;;;;;AAmBA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,GAAG;AACL,CAAA,EAA2C;AACzC,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,eAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,SAAS,CAAA;AAAA,MAC9B,UAAA,EAAY;AAAA,QACV,MAAA,EAAQ,iCAAA;AAAA,QACR,KAAA,EAAO,qBAAA;AAAA,QACP,OAAA,EAAS,uDAAA;AAAA,QACT,aAAA,EAAe,qBAAA;AAAA,QACf,GAAA,EAAK,yBAAA;AAAA,QACL,UAAA,EAAY,EAAA;AAAA,UACV,cAAA,CAAe,EAAE,OAAA,EAAS,SAAA,EAAW,CAAA;AAAA,UACrC;AAAA,SACF;AAAA,QACA,mBAAA,EAAqB,iBAAA;AAAA,QACrB,eAAA,EAAiB,kBAAA;AAAA,QACjB,KAAA,EAAO,kCAAA;AAAA,QACP,QAAA,EAAU,MAAA;AAAA,QACV,SAAA,EACE,gEAAA;AAAA,QACF,GAAA,EAAK,kBAAA;AAAA,QACL,IAAA,EAAM,EAAA;AAAA,UACJ,iKAAA;AAAA,UACA,KAAA,CAAM,IAAA,KAAS,OAAA,GACX,sKAAA,GACA;AAAA,SACN;AAAA,QACA,GAAA,EAAK,EAAA;AAAA,UACH,cAAA,CAAe,EAAE,OAAA,EAAS,OAAA,EAAS,CAAA;AAAA,UACnC;AAAA,SACF;AAAA,QACA,eAAA,EACE,gFAAA;AAAA,QACF,aAAA,EACE,8EAAA;AAAA,QACF,YAAA,EACE,kIAAA;AAAA,QACF,SAAA,EAAW,kCAAA;AAAA,QACX,WAAA,EACE,uEAAA;AAAA,QACF,YAAA,EAAc,kCAAA;AAAA,QACd,gBAAA,EACE,8DAAA;AAAA,QACF,UAAA,EAAY,WAAA;AAAA,QACZ,GAAG;AAAA,OACL;AAAA,MACA,UAAA,EAAY;AAAA,QACV,UAAU,CAAC,EAAE,SAAA,EAAAA,UAAAA,EAAW,GAAGC,MAAAA,EAAM,qBAC/B,GAAA,CAAC,eAAA,EAAA,EAAgB,WAAW,EAAA,CAAG,QAAA,EAAUD,UAAS,CAAA,EAAI,GAAGC,MAAAA,EAAO,CAAA;AAAA,QAElE,WAAW,CAAC,EAAE,SAAA,EAAAD,UAAAA,EAAW,GAAGC,MAAAA,EAAM,qBAChC,GAAA,CAAC,gBAAA,EAAA,EAAiB,WAAW,EAAA,CAAG,QAAA,EAAUD,UAAS,CAAA,EAAI,GAAGC,MAAAA,EAAO;AAAA,OAErE;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-4MHIUUAW.js","sourcesContent":["import * as React from \"react\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\nimport { DayPicker } from \"react-day-picker\";\n\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants } from \"./button\";\n\n/**\n * Date picker calendar built on `react-day-picker`. Supports single, multiple,\n * and range selection modes. Styled with Shadcn UI conventions.\n *\n * @param showOutsideDays - Whether to show days from adjacent months. Defaults to `true`.\n *\n * @example\n * ```tsx\n * const [date, setDate] = useState<Date | undefined>();\n * <Calendar mode=\"single\" selected={date} onSelect={setDate} />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: React.ComponentProps<typeof DayPicker>) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row gap-2\",\n month: \"flex flex-col gap-4\",\n caption: \"flex justify-center pt-1 relative items-center w-full\",\n caption_label: \"text-sm font-medium\",\n nav: \"flex items-center gap-1\",\n nav_button: cn(\n buttonVariants({ variant: \"outline\" }),\n \"size-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\n ),\n nav_button_previous: \"absolute left-1\",\n nav_button_next: \"absolute right-1\",\n table: \"w-full border-collapse space-x-1\",\n head_row: \"flex\",\n head_cell:\n \"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]\",\n row: \"flex w-full mt-2\",\n cell: cn(\n \"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md\",\n props.mode === \"range\"\n ? \"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md\"\n : \"[&:has([aria-selected])]:rounded-md\",\n ),\n day: cn(\n buttonVariants({ variant: \"ghost\" }),\n \"size-8 p-0 font-normal aria-selected:opacity-100\",\n ),\n day_range_start:\n \"day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground\",\n day_range_end:\n \"day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside:\n \"day-outside text-muted-foreground aria-selected:text-muted-foreground\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_range_middle:\n \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: ({ className, ...props }) => (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n ),\n IconRight: ({ className, ...props }) => (\n <ChevronRightIcon className={cn(\"size-4\", className)} {...props} />\n ),\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar };"]}