@eintrek/erp-theme 1.4.11 → 1.4.13

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,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare function Input({ className, type, ...props }: React.ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
2
+ declare function Input({ className, type, onWheel, ...props }: React.ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
3
3
  export { Input };
@@ -19,5 +19,8 @@ export interface DatePickerProps {
19
19
  "aria-invalid"?: boolean;
20
20
  "aria-describedby"?: string;
21
21
  }
22
+ /** Ready-made matcher for fields that genuinely cannot be in the future
23
+ * (date of birth, an issue date on a document already in hand). */
24
+ export declare const disallowFutureDates: (date: Date) => boolean;
22
25
  declare function DatePicker({ date, onDateChange, placeholder, disabled, disabledDates, formatDate, fromYear, toYear, className, id, ariaLabel, "aria-required": ariaRequired, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
23
26
  export { DatePicker };
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { Badge, badgeVariants } from "./components/ui/badge";
8
8
  export { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/ui/breadcrumb";
9
9
  export { Button, buttonVariants } from "./components/ui/button";
10
10
  export { Calendar, DateInput, type DateRange } from "./components/ui/calendar";
11
- export { DatePicker, type DatePickerProps } from "./components/ui/date-picker";
11
+ export { DatePicker, disallowFutureDates, type DatePickerProps, } from "./components/ui/date-picker";
12
12
  export { DatePickerField, type DatePickerFieldProps } from "./components/ui/date-picker-field";
13
13
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./components/ui/card";
14
14
  export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "./components/ui/carousel";
package/dist/index.esm.js CHANGED
@@ -1391,8 +1391,24 @@ const th = {
1391
1391
  },
1392
1392
  };
1393
1393
 
1394
- function Input({ className, type, ...props }) {
1395
- return (jsx("input", { type: type, "data-slot": "input", className: cn$1("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "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", className), ...props }));
1394
+ function Input({ className, type, onWheel, ...props }) {
1395
+ // Scrolling the page with the pointer over a FOCUSED number input makes the
1396
+ // browser step its value — the user is just moving down the form and the
1397
+ // quantity or price they typed silently changes under the cursor. Blink only
1398
+ // does this for discrete wheel notches, so a mouse (Windows, typically) hits
1399
+ // it constantly while a trackpad (macOS) almost never does, which is why it
1400
+ // reads as a platform bug.
1401
+ //
1402
+ // Blurring drops the focus the stepping depends on, so the wheel goes back to
1403
+ // scrolling the page. preventDefault() is not an option: React attaches wheel
1404
+ // listeners passively, and blocking it would trap the page under the cursor.
1405
+ const handleWheel = (event) => {
1406
+ onWheel?.(event);
1407
+ if (type === "number" && document.activeElement === event.currentTarget) {
1408
+ event.currentTarget.blur();
1409
+ }
1410
+ };
1411
+ return (jsx("input", { type: type, onWheel: handleWheel, "data-slot": "input", className: cn$1("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "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", className), ...props }));
1396
1412
  }
1397
1413
 
1398
1414
  function Popover({ ...props }) {
@@ -1405,7 +1421,18 @@ function PopoverContent({ className, align = "center", sideOffset = 4, ...props
1405
1421
  return (jsx(PopoverPrimitive.Portal, { children: jsx(PopoverPrimitive.Content, { "data-slot": "popover-content", align: align, sideOffset: sideOffset, className: cn$1("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", className), ...props }) }));
1406
1422
  }
1407
1423
 
1408
- const defaultDisabledDates = (date) => date > new Date() || date < new Date("1900-01-01");
1424
+ /**
1425
+ * Only the lower bound is universal. Rejecting future dates by default made
1426
+ * every forward-looking field — due dates, expiry, delivery, installment
1427
+ * schedules — silently unusable unless the caller remembered to override it,
1428
+ * and several forms already carried `d => d < new Date("1900-01-01")` purely
1429
+ * to undo it. A field that must stay in the past says so with its own
1430
+ * `disabledDates`; the picker no longer guesses.
1431
+ */
1432
+ const defaultDisabledDates = (date) => date < new Date("1900-01-01");
1433
+ /** Ready-made matcher for fields that genuinely cannot be in the future
1434
+ * (date of birth, an issue date on a document already in hand). */
1435
+ const disallowFutureDates = (date) => date > new Date() || date < new Date("1900-01-01");
1409
1436
  const defaultFormatDate = (date) => new Intl.DateTimeFormat("th-TH", {
1410
1437
  day: "numeric",
1411
1438
  month: "long",
@@ -34852,5 +34879,5 @@ const flagConfig = {
34852
34879
  ],
34853
34880
  };
34854
34881
 
34855
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandBlock, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CustomSelectField2, DataTable, DataTableCell, DataTableColumnHeader, DataTableDateFilter, DataTableFacetedFilter, DataTableFilterDropdown, DataTableFilterList, DataTablePagination, DataTableRangeFilter, DataTableSkeleton, DataTableSliderFilter, DataTableSortList, DataTableToolbar, DataTableViewOptions, DateInput, DatePicker, DatePickerField, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Faceted, FacetedBadgeList, FacetedContent, FacetedEmpty, FacetedGroup, FacetedInput, FacetedItem, FacetedList, FacetedSeparator, FacetedTrigger, FileUploader, Footer, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormSkeleton, FormattedNumberInput, Header, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputField, InputOTP, InputOTPGroup, InputOTPSlot, Label, LoadingScreen, MASK_PRESETS, MaskedTextInput, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, PageHeader, Pagination$1 as Pagination, PaginationContent$1 as PaginationContent, PaginationEllipsis$1 as PaginationEllipsis, PaginationItem$1 as PaginationItem, PaginationLink$1 as PaginationLink, PaginationNext$1 as PaginationNext, PaginationPrevious$1 as PaginationPrevious, Popover, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, RegistryItemRow, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectField, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarTrigger, Skeleton, Slider, Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay, Switch, THAI_MONTH_NAMES, Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TextareaField, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, ValidationErrors, badgeVariants, buttonVariants, cn$1 as cn, convertFileToUploadedFile, convertFilesToUploadedFiles, dataTableConfig, databasePrefix, flagConfig, formatCurrency, formatDate, formatDateThai, formatDateThaiShort, formatFileSize, formatMasked as formatMaskedValue, formatNumber, formatThaiMonth, formatThaiMonthShort, generateFileId, generateId, getBaseUrl, getCommonPinningStyles, getDefaultFilterOperator, getFilterOperators, getFiltersStateParser, getMonthDateRange, getSortingStateParser, getThaiMonthName, getValidFilters, isImageFile, navigationMenuTriggerStyle, parseDigits as parseMaskedDigits, siteConfig, thaiBahtText, toBuddhistIso, toBuddhistYear, toGregorianYear, toggleVariants, unknownError, useCallbackRef, useDataTable, useDebounce, useDebouncedCallback, useFormField, useIsMobile, useMediaQuery, validateFileSize, validateFileType };
34882
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandBlock, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CustomSelectField2, DataTable, DataTableCell, DataTableColumnHeader, DataTableDateFilter, DataTableFacetedFilter, DataTableFilterDropdown, DataTableFilterList, DataTablePagination, DataTableRangeFilter, DataTableSkeleton, DataTableSliderFilter, DataTableSortList, DataTableToolbar, DataTableViewOptions, DateInput, DatePicker, DatePickerField, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Faceted, FacetedBadgeList, FacetedContent, FacetedEmpty, FacetedGroup, FacetedInput, FacetedItem, FacetedList, FacetedSeparator, FacetedTrigger, FileUploader, Footer, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormSkeleton, FormattedNumberInput, Header, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputField, InputOTP, InputOTPGroup, InputOTPSlot, Label, LoadingScreen, MASK_PRESETS, MaskedTextInput, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, PageHeader, Pagination$1 as Pagination, PaginationContent$1 as PaginationContent, PaginationEllipsis$1 as PaginationEllipsis, PaginationItem$1 as PaginationItem, PaginationLink$1 as PaginationLink, PaginationNext$1 as PaginationNext, PaginationPrevious$1 as PaginationPrevious, Popover, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, RegistryItemRow, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectField, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarTrigger, Skeleton, Slider, Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay, Switch, THAI_MONTH_NAMES, Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TextareaField, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, ValidationErrors, badgeVariants, buttonVariants, cn$1 as cn, convertFileToUploadedFile, convertFilesToUploadedFiles, dataTableConfig, databasePrefix, disallowFutureDates, flagConfig, formatCurrency, formatDate, formatDateThai, formatDateThaiShort, formatFileSize, formatMasked as formatMaskedValue, formatNumber, formatThaiMonth, formatThaiMonthShort, generateFileId, generateId, getBaseUrl, getCommonPinningStyles, getDefaultFilterOperator, getFilterOperators, getFiltersStateParser, getMonthDateRange, getSortingStateParser, getThaiMonthName, getValidFilters, isImageFile, navigationMenuTriggerStyle, parseDigits as parseMaskedDigits, siteConfig, thaiBahtText, toBuddhistIso, toBuddhistYear, toGregorianYear, toggleVariants, unknownError, useCallbackRef, useDataTable, useDebounce, useDebouncedCallback, useFormField, useIsMobile, useMediaQuery, validateFileSize, validateFileType };
34856
34883
  //# sourceMappingURL=index.esm.js.map