reka-ui 2.2.1 → 2.3.0
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/Accordion/AccordionItem.cjs.map +1 -1
- package/dist/Accordion/AccordionItem.js.map +1 -1
- package/dist/Accordion/AccordionRoot.cjs.map +1 -1
- package/dist/Accordion/AccordionRoot.js.map +1 -1
- package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
- package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
- package/dist/AlertDialog/AlertDialogContent.cjs.map +1 -1
- package/dist/AlertDialog/AlertDialogContent.js.map +1 -1
- package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
- package/dist/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/Avatar/AvatarFallback.cjs +11 -14
- package/dist/Avatar/AvatarFallback.cjs.map +1 -1
- package/dist/Avatar/AvatarFallback.js +12 -15
- package/dist/Avatar/AvatarFallback.js.map +1 -1
- package/dist/Avatar/AvatarImage.cjs +3 -2
- package/dist/Avatar/AvatarImage.cjs.map +1 -1
- package/dist/Avatar/AvatarImage.js +3 -2
- package/dist/Avatar/AvatarImage.js.map +1 -1
- package/dist/Avatar/AvatarRoot.cjs +1 -1
- package/dist/Avatar/AvatarRoot.cjs.map +1 -1
- package/dist/Avatar/AvatarRoot.js +1 -1
- package/dist/Avatar/AvatarRoot.js.map +1 -1
- package/dist/Avatar/utils.cjs +43 -16
- package/dist/Avatar/utils.cjs.map +1 -1
- package/dist/Avatar/utils.js +44 -17
- package/dist/Avatar/utils.js.map +1 -1
- package/dist/Calendar/CalendarCell.cjs +2 -2
- package/dist/Calendar/CalendarCell.cjs.map +1 -1
- package/dist/Calendar/CalendarCell.js +2 -2
- package/dist/Calendar/CalendarCell.js.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
- package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.js +5 -1
- package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
- package/dist/Calendar/CalendarGrid.cjs.map +1 -1
- package/dist/Calendar/CalendarGrid.js.map +1 -1
- package/dist/Calendar/CalendarHeading.cjs.map +1 -1
- package/dist/Calendar/CalendarHeading.js.map +1 -1
- package/dist/Calendar/CalendarNext.cjs.map +1 -1
- package/dist/Calendar/CalendarNext.js.map +1 -1
- package/dist/Calendar/CalendarPrev.cjs.map +1 -1
- package/dist/Calendar/CalendarPrev.js.map +1 -1
- package/dist/Calendar/CalendarRoot.cjs +7 -4
- package/dist/Calendar/CalendarRoot.cjs.map +1 -1
- package/dist/Calendar/CalendarRoot.js +7 -4
- package/dist/Calendar/CalendarRoot.js.map +1 -1
- package/dist/Calendar/useCalendar.cjs +2 -2
- package/dist/Calendar/useCalendar.cjs.map +1 -1
- package/dist/Calendar/useCalendar.js +2 -2
- package/dist/Calendar/useCalendar.js.map +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
- package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxRoot.js.map +1 -1
- package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
- package/dist/Collapsible/CollapsibleContent.js.map +1 -1
- package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
- package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
- package/dist/Collapsible/CollapsibleRoot.js +2 -0
- package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
- package/dist/Collection/Collection.cjs.map +1 -1
- package/dist/Collection/Collection.js.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
- package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
- package/dist/Combobox/ComboboxGroup.js.map +1 -1
- package/dist/Combobox/ComboboxInput.cjs.map +1 -1
- package/dist/Combobox/ComboboxInput.js.map +1 -1
- package/dist/Combobox/ComboboxItem.cjs.map +1 -1
- package/dist/Combobox/ComboboxItem.js.map +1 -1
- package/dist/Combobox/ComboboxRoot.cjs +1 -2
- package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
- package/dist/Combobox/ComboboxRoot.js +1 -2
- package/dist/Combobox/ComboboxRoot.js.map +1 -1
- package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
- package/dist/Combobox/ComboboxTrigger.js.map +1 -1
- package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
- package/dist/Combobox/ComboboxViewport.js.map +1 -1
- package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
- package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
- package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
- package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
- package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
- package/dist/ContextMenu/ContextMenuSub.cjs +1 -1
- package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuSub.js +1 -1
- package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
- package/dist/DateField/DateFieldInput.cjs +1 -0
- package/dist/DateField/DateFieldInput.cjs.map +1 -1
- package/dist/DateField/DateFieldInput.js +1 -0
- package/dist/DateField/DateFieldInput.js.map +1 -1
- package/dist/DateField/DateFieldRoot.cjs +7 -1
- package/dist/DateField/DateFieldRoot.cjs.map +1 -1
- package/dist/DateField/DateFieldRoot.js +7 -1
- package/dist/DateField/DateFieldRoot.js.map +1 -1
- package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
- package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
- package/dist/DatePicker/DatePickerContent.cjs +8 -3
- package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
- package/dist/DatePicker/DatePickerContent.js +9 -4
- package/dist/DatePicker/DatePickerContent.js.map +1 -1
- package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
- package/dist/DatePicker/DatePickerHeading.js.map +1 -1
- package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
- package/dist/DatePicker/DatePickerNext.js.map +1 -1
- package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
- package/dist/DatePicker/DatePickerPrev.js.map +1 -1
- package/dist/DatePicker/DatePickerRoot.cjs +1 -0
- package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
- package/dist/DatePicker/DatePickerRoot.js +1 -0
- package/dist/DatePicker/DatePickerRoot.js.map +1 -1
- package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
- package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
- package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
- package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
- package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.cjs +2 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.js +2 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
- package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
- package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.cjs +6 -2
- package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.js +6 -2
- package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
- package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
- package/dist/Dialog/DialogContentImpl.js.map +1 -1
- package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
- package/dist/Dialog/DialogContentNonModal.js.map +1 -1
- package/dist/Dialog/DialogRoot.cjs +4 -1
- package/dist/Dialog/DialogRoot.cjs.map +1 -1
- package/dist/Dialog/DialogRoot.js +4 -1
- package/dist/Dialog/DialogRoot.js.map +1 -1
- package/dist/Dialog/DialogTrigger.cjs.map +1 -1
- package/dist/Dialog/DialogTrigger.js.map +1 -1
- package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
- package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
- package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
- package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
- package/dist/DismissableLayer/utils.cjs +7 -3
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js +8 -4
- package/dist/DismissableLayer/utils.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.cjs +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.cjs +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.js +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
- package/dist/Editable/EditableInput.cjs.map +1 -1
- package/dist/Editable/EditableInput.js.map +1 -1
- package/dist/Editable/EditableRoot.cjs +1 -1
- package/dist/Editable/EditableRoot.cjs.map +1 -1
- package/dist/Editable/EditableRoot.js +1 -1
- package/dist/Editable/EditableRoot.js.map +1 -1
- package/dist/FocusScope/FocusScope.cjs.map +1 -1
- package/dist/FocusScope/FocusScope.js.map +1 -1
- package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
- package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
- package/dist/HoverCard/HoverCardRoot.cjs +1 -1
- package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
- package/dist/HoverCard/HoverCardRoot.js +1 -1
- package/dist/HoverCard/HoverCardRoot.js.map +1 -1
- package/dist/Listbox/ListboxFilter.cjs.map +1 -1
- package/dist/Listbox/ListboxFilter.js.map +1 -1
- package/dist/Listbox/ListboxItem.cjs.map +1 -1
- package/dist/Listbox/ListboxItem.js.map +1 -1
- package/dist/Listbox/ListboxRoot.cjs +1 -1
- package/dist/Listbox/ListboxRoot.cjs.map +1 -1
- package/dist/Listbox/ListboxRoot.js +1 -1
- package/dist/Listbox/ListboxRoot.js.map +1 -1
- package/dist/Listbox/ListboxVirtualizer.cjs +3 -3
- package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
- package/dist/Listbox/ListboxVirtualizer.js +3 -3
- package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
- package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
- package/dist/Menu/MenuCheckboxItem.js.map +1 -1
- package/dist/Menu/MenuContentImpl.cjs.map +1 -1
- package/dist/Menu/MenuContentImpl.js.map +1 -1
- package/dist/Menu/MenuItemImpl.cjs.map +1 -1
- package/dist/Menu/MenuItemImpl.js.map +1 -1
- package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
- package/dist/Menu/MenuItemIndicator.js.map +1 -1
- package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
- package/dist/Menu/MenuRadioGroup.js.map +1 -1
- package/dist/Menu/MenuRoot.cjs +1 -1
- package/dist/Menu/MenuRoot.cjs.map +1 -1
- package/dist/Menu/MenuRoot.js +1 -1
- package/dist/Menu/MenuRoot.js.map +1 -1
- package/dist/Menu/MenuSub.cjs +1 -1
- package/dist/Menu/MenuSub.cjs.map +1 -1
- package/dist/Menu/MenuSub.js +1 -1
- package/dist/Menu/MenuSub.js.map +1 -1
- package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
- package/dist/Menu/MenuSubTrigger.js.map +1 -1
- package/dist/Menubar/MenubarContent.cjs.map +1 -1
- package/dist/Menubar/MenubarContent.js.map +1 -1
- package/dist/Menubar/MenubarMenu.cjs.map +1 -1
- package/dist/Menubar/MenubarMenu.js.map +1 -1
- package/dist/Menubar/MenubarRoot.cjs.map +1 -1
- package/dist/Menubar/MenubarRoot.js.map +1 -1
- package/dist/Menubar/MenubarSub.cjs +1 -1
- package/dist/Menubar/MenubarSub.cjs.map +1 -1
- package/dist/Menubar/MenubarSub.js +1 -1
- package/dist/Menubar/MenubarSub.js.map +1 -1
- package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
- package/dist/Menubar/MenubarTrigger.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
- package/dist/NumberField/NumberFieldInput.cjs +2 -2
- package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
- package/dist/NumberField/NumberFieldInput.js +2 -2
- package/dist/NumberField/NumberFieldInput.js.map +1 -1
- package/dist/NumberField/NumberFieldRoot.cjs +8 -5
- package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
- package/dist/NumberField/NumberFieldRoot.js +8 -5
- package/dist/NumberField/NumberFieldRoot.js.map +1 -1
- package/dist/Pagination/PaginationFirst.cjs.map +1 -1
- package/dist/Pagination/PaginationFirst.js.map +1 -1
- package/dist/Pagination/PaginationLast.cjs.map +1 -1
- package/dist/Pagination/PaginationLast.js.map +1 -1
- package/dist/Pagination/PaginationList.cjs.map +1 -1
- package/dist/Pagination/PaginationList.js.map +1 -1
- package/dist/Pagination/PaginationListItem.cjs.map +1 -1
- package/dist/Pagination/PaginationListItem.js.map +1 -1
- package/dist/Pagination/PaginationNext.cjs.map +1 -1
- package/dist/Pagination/PaginationNext.js.map +1 -1
- package/dist/Pagination/PaginationPrev.cjs.map +1 -1
- package/dist/Pagination/PaginationPrev.js.map +1 -1
- package/dist/Pagination/PaginationRoot.cjs.map +1 -1
- package/dist/Pagination/PaginationRoot.js.map +1 -1
- package/dist/PinInput/PinInputInput.cjs +1 -1
- package/dist/PinInput/PinInputInput.cjs.map +1 -1
- package/dist/PinInput/PinInputInput.js +1 -1
- package/dist/PinInput/PinInputInput.js.map +1 -1
- package/dist/PinInput/PinInputRoot.cjs.map +1 -1
- package/dist/PinInput/PinInputRoot.js.map +1 -1
- package/dist/Popover/PopoverAnchor.cjs.map +1 -1
- package/dist/Popover/PopoverAnchor.js.map +1 -1
- package/dist/Popover/PopoverContentModal.cjs.map +1 -1
- package/dist/Popover/PopoverContentModal.js.map +1 -1
- package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
- package/dist/Popover/PopoverContentNonModal.js.map +1 -1
- package/dist/Popover/PopoverRoot.cjs +1 -1
- package/dist/Popover/PopoverRoot.cjs.map +1 -1
- package/dist/Popover/PopoverRoot.js +1 -1
- package/dist/Popover/PopoverRoot.js.map +1 -1
- package/dist/Popover/PopoverTrigger.cjs.map +1 -1
- package/dist/Popover/PopoverTrigger.js.map +1 -1
- package/dist/Popper/PopperAnchor.cjs.map +1 -1
- package/dist/Popper/PopperAnchor.js.map +1 -1
- package/dist/Popper/PopperArrow.cjs.map +1 -1
- package/dist/Popper/PopperArrow.js.map +1 -1
- package/dist/Popper/PopperContent.cjs.map +1 -1
- package/dist/Popper/PopperContent.js.map +1 -1
- package/dist/Presence/Presence.cjs.map +1 -1
- package/dist/Presence/Presence.js.map +1 -1
- package/dist/Presence/usePresence.cjs.map +1 -1
- package/dist/Presence/usePresence.js.map +1 -1
- package/dist/Primitive/Slot.cjs +1 -9
- package/dist/Primitive/Slot.cjs.map +1 -1
- package/dist/Primitive/Slot.js +1 -9
- package/dist/Primitive/Slot.js.map +1 -1
- package/dist/Progress/ProgressRoot.cjs +3 -2
- package/dist/Progress/ProgressRoot.cjs.map +1 -1
- package/dist/Progress/ProgressRoot.js +3 -2
- package/dist/Progress/ProgressRoot.js.map +1 -1
- package/dist/RadioGroup/Radio.cjs.map +1 -1
- package/dist/RadioGroup/Radio.js.map +1 -1
- package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
- package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
- package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
- package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
- package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCell.js +2 -2
- package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.cjs +26 -9
- package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.js +26 -9
- package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.cjs +21 -4
- package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.js +21 -4
- package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
- package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.js +1 -1
- package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
- package/dist/Select/BubbleSelect.cjs.map +1 -1
- package/dist/Select/BubbleSelect.js.map +1 -1
- package/dist/Select/SelectContent.cjs.map +1 -1
- package/dist/Select/SelectContent.js.map +1 -1
- package/dist/Select/SelectContentImpl.cjs +1 -1
- package/dist/Select/SelectContentImpl.cjs.map +1 -1
- package/dist/Select/SelectContentImpl.js +1 -1
- package/dist/Select/SelectContentImpl.js.map +1 -1
- package/dist/Select/SelectItem.cjs.map +1 -1
- package/dist/Select/SelectItem.js.map +1 -1
- package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
- package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
- package/dist/Select/SelectItemAlignedPosition.js +1 -1
- package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
- package/dist/Select/SelectItemText.cjs.map +1 -1
- package/dist/Select/SelectItemText.js.map +1 -1
- package/dist/Select/SelectProvider.cjs.map +1 -1
- package/dist/Select/SelectProvider.js.map +1 -1
- package/dist/Select/SelectRoot.cjs +3 -1
- package/dist/Select/SelectRoot.cjs.map +1 -1
- package/dist/Select/SelectRoot.js +3 -1
- package/dist/Select/SelectRoot.js.map +1 -1
- package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
- package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
- package/dist/Select/SelectTrigger.cjs.map +1 -1
- package/dist/Select/SelectTrigger.js.map +1 -1
- package/dist/Select/SelectValue.cjs.map +1 -1
- package/dist/Select/SelectValue.js.map +1 -1
- package/dist/Select/SelectViewport.cjs.map +1 -1
- package/dist/Select/SelectViewport.js.map +1 -1
- package/dist/Slider/SliderHorizontal.cjs +7 -4
- package/dist/Slider/SliderHorizontal.cjs.map +1 -1
- package/dist/Slider/SliderHorizontal.js +7 -4
- package/dist/Slider/SliderHorizontal.js.map +1 -1
- package/dist/Slider/SliderRange.cjs +2 -2
- package/dist/Slider/SliderRange.cjs.map +1 -1
- package/dist/Slider/SliderRange.js +2 -2
- package/dist/Slider/SliderRange.js.map +1 -1
- package/dist/Slider/SliderRoot.cjs.map +1 -1
- package/dist/Slider/SliderRoot.js.map +1 -1
- package/dist/Slider/SliderThumb.cjs.map +1 -1
- package/dist/Slider/SliderThumb.js.map +1 -1
- package/dist/Slider/SliderThumbImpl.cjs +3 -3
- package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
- package/dist/Slider/SliderThumbImpl.js +3 -3
- package/dist/Slider/SliderThumbImpl.js.map +1 -1
- package/dist/Slider/SliderVertical.cjs +7 -4
- package/dist/Slider/SliderVertical.cjs.map +1 -1
- package/dist/Slider/SliderVertical.js +7 -4
- package/dist/Slider/SliderVertical.js.map +1 -1
- package/dist/Slider/utils.cjs +1 -1
- package/dist/Slider/utils.cjs.map +1 -1
- package/dist/Slider/utils.js +1 -1
- package/dist/Slider/utils.js.map +1 -1
- package/dist/Splitter/SplitterGroup.cjs.map +1 -1
- package/dist/Splitter/SplitterGroup.js.map +1 -1
- package/dist/Splitter/SplitterPanel.cjs +16 -10
- package/dist/Splitter/SplitterPanel.cjs.map +1 -1
- package/dist/Splitter/SplitterPanel.js +16 -10
- package/dist/Splitter/SplitterPanel.js.map +1 -1
- package/dist/Stepper/StepperIndicator.cjs.map +1 -1
- package/dist/Stepper/StepperIndicator.js.map +1 -1
- package/dist/Stepper/StepperItem.cjs.map +1 -1
- package/dist/Stepper/StepperItem.js.map +1 -1
- package/dist/Stepper/StepperRoot.cjs +30 -3
- package/dist/Stepper/StepperRoot.cjs.map +1 -1
- package/dist/Stepper/StepperRoot.js +30 -3
- package/dist/Stepper/StepperRoot.js.map +1 -1
- package/dist/Stepper/StepperTrigger.cjs.map +1 -1
- package/dist/Stepper/StepperTrigger.js.map +1 -1
- package/dist/Switch/SwitchRoot.cjs.map +1 -1
- package/dist/Switch/SwitchRoot.js.map +1 -1
- package/dist/Tabs/TabsContent.cjs.map +1 -1
- package/dist/Tabs/TabsContent.js.map +1 -1
- package/dist/Tabs/TabsIndicator.cjs.map +1 -1
- package/dist/Tabs/TabsIndicator.js.map +1 -1
- package/dist/Tabs/TabsList.cjs.map +1 -1
- package/dist/Tabs/TabsList.js.map +1 -1
- package/dist/Tabs/TabsRoot.cjs.map +1 -1
- package/dist/Tabs/TabsRoot.js.map +1 -1
- package/dist/Tabs/TabsTrigger.cjs.map +1 -1
- package/dist/Tabs/TabsTrigger.js.map +1 -1
- package/dist/TagsInput/TagsInputInput.cjs +1 -0
- package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
- package/dist/TagsInput/TagsInputInput.js +1 -0
- package/dist/TagsInput/TagsInputInput.js.map +1 -1
- package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
- package/dist/TagsInput/TagsInputItem.js.map +1 -1
- package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
- package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
- package/dist/TagsInput/TagsInputRoot.cjs +1 -1
- package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
- package/dist/TagsInput/TagsInputRoot.js +1 -1
- package/dist/TagsInput/TagsInputRoot.js.map +1 -1
- package/dist/TimeField/TimeFieldInput.cjs +1 -0
- package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
- package/dist/TimeField/TimeFieldInput.js +1 -0
- package/dist/TimeField/TimeFieldInput.js.map +1 -1
- package/dist/TimeField/TimeFieldRoot.cjs +13 -4
- package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
- package/dist/TimeField/TimeFieldRoot.js +13 -4
- package/dist/TimeField/TimeFieldRoot.js.map +1 -1
- package/dist/Toast/ToastAnnounce.cjs.map +1 -1
- package/dist/Toast/ToastAnnounce.js.map +1 -1
- package/dist/Toast/ToastRoot.cjs.map +1 -1
- package/dist/Toast/ToastRoot.js.map +1 -1
- package/dist/Toast/ToastRootImpl.cjs +1 -1
- package/dist/Toast/ToastRootImpl.cjs.map +1 -1
- package/dist/Toast/ToastRootImpl.js +1 -1
- package/dist/Toast/ToastRootImpl.js.map +1 -1
- package/dist/Toast/ToastViewport.cjs +1 -1
- package/dist/Toast/ToastViewport.cjs.map +1 -1
- package/dist/Toast/ToastViewport.js +1 -1
- package/dist/Toast/ToastViewport.js.map +1 -1
- package/dist/Toggle/Toggle.cjs.map +1 -1
- package/dist/Toggle/Toggle.js.map +1 -1
- package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
- package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
- package/dist/Toolbar/ToolbarRoot.cjs.map +1 -1
- package/dist/Toolbar/ToolbarRoot.js.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.cjs +1 -1
- package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.js +1 -1
- package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
- package/dist/Tooltip/TooltipRoot.cjs +1 -1
- package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
- package/dist/Tooltip/TooltipRoot.js +1 -1
- package/dist/Tooltip/TooltipRoot.js.map +1 -1
- package/dist/Tooltip/TooltipTrigger.cjs +1 -1
- package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
- package/dist/Tooltip/TooltipTrigger.js +1 -1
- package/dist/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/Tree/TreeItem.cjs +4 -1
- package/dist/Tree/TreeItem.cjs.map +1 -1
- package/dist/Tree/TreeItem.js +4 -1
- package/dist/Tree/TreeItem.js.map +1 -1
- package/dist/Tree/TreeRoot.cjs +29 -3
- package/dist/Tree/TreeRoot.cjs.map +1 -1
- package/dist/Tree/TreeRoot.js +29 -3
- package/dist/Tree/TreeRoot.js.map +1 -1
- package/dist/Tree/TreeVirtualizer.cjs +2 -2
- package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
- package/dist/Tree/TreeVirtualizer.js +2 -2
- package/dist/Tree/TreeVirtualizer.js.map +1 -1
- package/dist/Viewport/Viewport.cjs.map +1 -1
- package/dist/Viewport/Viewport.js.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
- package/dist/component/BaseSeparator.cjs.map +1 -1
- package/dist/component/BaseSeparator.js.map +1 -1
- package/dist/date/calendar.cjs.map +1 -1
- package/dist/date/calendar.js.map +1 -1
- package/dist/date/parser.cjs +22 -7
- package/dist/date/parser.cjs.map +1 -1
- package/dist/date/parser.js +23 -8
- package/dist/date/parser.js.map +1 -1
- package/dist/date/useDateField.cjs +21 -6
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +21 -6
- package/dist/date/useDateField.js.map +1 -1
- package/dist/date/utils.cjs +31 -2
- package/dist/date/utils.cjs.map +1 -1
- package/dist/date/utils.js +30 -3
- package/dist/date/utils.js.map +1 -1
- package/dist/index.d.ts +492 -351
- package/dist/shared/useBodyScrollLock.cjs +2 -2
- package/dist/shared/useBodyScrollLock.cjs.map +1 -1
- package/dist/shared/useBodyScrollLock.js +2 -2
- package/dist/shared/useBodyScrollLock.js.map +1 -1
- package/dist/shared/useDateFormatter.cjs +12 -10
- package/dist/shared/useDateFormatter.cjs.map +1 -1
- package/dist/shared/useDateFormatter.js +12 -10
- package/dist/shared/useDateFormatter.js.map +1 -1
- package/dist/shared/useDirection.cjs.map +1 -1
- package/dist/shared/useDirection.js.map +1 -1
- package/dist/shared/useForwardProps.cjs +4 -2
- package/dist/shared/useForwardProps.cjs.map +1 -1
- package/dist/shared/useForwardProps.js +5 -3
- package/dist/shared/useForwardProps.js.map +1 -1
- package/dist/shared/useGraceArea.cjs.map +1 -1
- package/dist/shared/useGraceArea.js.map +1 -1
- package/dist/shared/useId.cjs +2 -2
- package/dist/shared/useId.cjs.map +1 -1
- package/dist/shared/useId.js +2 -2
- package/dist/shared/useId.js.map +1 -1
- package/dist/shared/useLocale.cjs.map +1 -1
- package/dist/shared/useLocale.js.map +1 -1
- package/dist/shared/useNonce.cjs.map +1 -1
- package/dist/shared/useNonce.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as toDate, g as getDaysInMonth } from './comparators.js';
|
|
2
1
|
import { computed } from 'vue';
|
|
2
|
+
import { t as toDate, g as getDaysInMonth } from './comparators.js';
|
|
3
3
|
import { b as isAcceptableSegmentKey, i as isSegmentNavigationKey, c as isNumberString } from './segment.js';
|
|
4
4
|
import { u as useKbd } from '../shared/useKbd.js';
|
|
5
5
|
|
|
@@ -214,7 +214,8 @@ const segmentBuilders = {
|
|
|
214
214
|
function useDateField(props) {
|
|
215
215
|
const kbd = useKbd();
|
|
216
216
|
function minuteSecondIncrementation({ e, part, dateRef, prevValue }) {
|
|
217
|
-
const
|
|
217
|
+
const step = props.step.value[part] ?? 1;
|
|
218
|
+
const sign = e.key === kbd.ARROW_UP ? step : -step;
|
|
218
219
|
const min = 0;
|
|
219
220
|
const max = 59;
|
|
220
221
|
if (prevValue === null)
|
|
@@ -234,7 +235,8 @@ function useDateField(props) {
|
|
|
234
235
|
return Number.parseInt(str.slice(0, -1));
|
|
235
236
|
}
|
|
236
237
|
function dateTimeValueIncrementation({ e, part, dateRef, prevValue, hourCycle }) {
|
|
237
|
-
const
|
|
238
|
+
const step = props.step.value[part] ?? 1;
|
|
239
|
+
const sign = e.key === kbd.ARROW_UP ? step : -step;
|
|
238
240
|
if (prevValue === null)
|
|
239
241
|
return dateRef[part];
|
|
240
242
|
if (part === "hour" && "hour" in dateRef) {
|
|
@@ -242,8 +244,21 @@ function useDateField(props) {
|
|
|
242
244
|
return dateRef.set({ [part]: prevValue }).cycle(...cycleArgs2)[part];
|
|
243
245
|
}
|
|
244
246
|
const cycleArgs = [part, sign];
|
|
245
|
-
if (part === "day"
|
|
246
|
-
return dateRef.set({
|
|
247
|
+
if (part === "day") {
|
|
248
|
+
return dateRef.set({
|
|
249
|
+
[part]: prevValue,
|
|
250
|
+
/**
|
|
251
|
+
* Edge case for the day field:
|
|
252
|
+
*
|
|
253
|
+
* 1. If the month is filled,
|
|
254
|
+
* we need to ensure that the day snaps to the maximum value of that month.
|
|
255
|
+
* 2. If the month is not filled,
|
|
256
|
+
* we default to the month with the maximum number of days (here just using January, 31 days),
|
|
257
|
+
* so that user can input any possible day.
|
|
258
|
+
*/
|
|
259
|
+
month: props.segmentValues.value.month ?? 1
|
|
260
|
+
}).cycle(...cycleArgs)[part];
|
|
261
|
+
}
|
|
247
262
|
return dateRef.set({ [part]: prevValue }).cycle(...cycleArgs)[part];
|
|
248
263
|
}
|
|
249
264
|
function updateDayOrMonth(max, num, prev) {
|
|
@@ -369,7 +384,7 @@ function useDateField(props) {
|
|
|
369
384
|
if (isNumberString(e.key)) {
|
|
370
385
|
const num = Number.parseInt(e.key);
|
|
371
386
|
const segmentMonthValue = props.segmentValues.value.month;
|
|
372
|
-
const daysInMonth = segmentMonthValue ? getDaysInMonth(props.placeholder.value.set({ month: segmentMonthValue })) :
|
|
387
|
+
const daysInMonth = segmentMonthValue ? getDaysInMonth(props.placeholder.value.set({ month: segmentMonthValue })) : 31;
|
|
373
388
|
const { value, moveToNext } = updateDayOrMonth(daysInMonth, num, prevValue);
|
|
374
389
|
props.segmentValues.value.day = value;
|
|
375
390
|
if (moveToNext)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDateField.js","sources":["../../src/shared/date/useDateField.ts"],"sourcesContent":["import type { Formatter } from '@/shared'\nimport type { CalendarDateTime, CycleTimeOptions, DateFields, DateValue, TimeFields } from '@internationalized/date'\nimport type { Ref } from 'vue'\nimport type { AnyExceptLiteral, HourCycle, SegmentPart, SegmentValueObj } from './types'\nimport { getDaysInMonth, toDate } from '@/date'\nimport { useKbd } from '@/shared'\nimport { computed } from 'vue'\nimport { isAcceptableSegmentKey, isNumberString, isSegmentNavigationKey } from './segment'\n\ntype MinuteSecondIncrementProps = {\n e: KeyboardEvent\n part: keyof TimeFields\n dateRef: DateValue\n prevValue: number | null\n}\n\ntype DateTimeValueIncrementation = {\n e: KeyboardEvent\n part: keyof Omit<DateFields, 'era'> | keyof TimeFields\n dateRef: DateValue\n prevValue: number | null\n hourCycle?: HourCycle\n}\n\ntype SegmentAttrProps = {\n disabled: boolean\n segmentValues: SegmentValueObj\n hourCycle: HourCycle\n placeholder: DateValue\n formatter: Formatter\n}\n\nfunction commonSegmentAttrs(props: SegmentAttrProps) {\n return {\n role: 'spinbutton',\n contenteditable: true,\n tabindex: props.disabled ? undefined : 0,\n spellcheck: false,\n inputmode: 'numeric',\n autocorrect: 'off',\n enterkeyhint: 'next',\n style: 'caret-color: transparent;',\n }\n}\n\nfunction daySegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n const isEmpty = segmentValues.day === null\n const date = segmentValues.day ? placeholder.set({ day: segmentValues.day }) : placeholder\n\n const valueNow = date.day\n const valueMin = 1\n const valueMax = getDaysInMonth(date)\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'day,',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction monthSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder, formatter } = props\n const isEmpty = segmentValues.month === null\n const date = segmentValues.month\n ? placeholder.set({ month: segmentValues.month })\n : placeholder\n const valueNow = date.month\n const valueMin = 1\n const valueMax = 12\n const valueText = isEmpty ? 'Empty' : `${valueNow} - ${formatter.fullMonth(toDate(date))}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'month, ',\n 'contenteditable': true,\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction yearSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n const isEmpty = segmentValues.year === null\n const date = segmentValues.year ? placeholder.set({ year: segmentValues.year }) : placeholder\n const valueMin = 1\n const valueMax = 9999\n const valueNow = date.year\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'year, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction hourSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, hourCycle, placeholder } = props\n\n if (!('hour' in segmentValues) || !('hour' in placeholder))\n return {}\n const isEmpty = segmentValues.hour === null\n const date = segmentValues.hour ? placeholder.set({ hour: segmentValues.hour }) : placeholder\n const valueMin = hourCycle === 12 ? 1 : 0\n const valueMax = hourCycle === 12 ? 12 : 23\n const valueNow = date.hour\n const valueText = isEmpty ? 'Empty' : `${valueNow} ${segmentValues.dayPeriod ?? ''}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'hour, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction minuteSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n if (!('minute' in segmentValues) || !('minute' in placeholder))\n return {}\n const isEmpty = segmentValues.minute === null\n const date = segmentValues.minute\n ? placeholder.set({ minute: segmentValues.minute })\n : placeholder\n const valueNow = date.minute\n const valueMin = 0\n const valueMax = 59\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'minute, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction secondSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n if (!('second' in segmentValues) || !('second' in placeholder))\n return {}\n const isEmpty = segmentValues.second === null\n const date = segmentValues.second\n ? placeholder.set({ second: segmentValues.second })\n : placeholder\n const valueNow = date.second\n const valueMin = 0\n const valueMax = 59\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'second, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction dayPeriodSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues } = props\n if (!('dayPeriod' in segmentValues))\n return {}\n\n const valueMin = 0\n const valueMax = 12\n const valueNow = segmentValues.hour ? (segmentValues.hour > 12 ? segmentValues.hour - 12 : segmentValues.hour) : 0\n const valueText = segmentValues.dayPeriod ?? 'AM'\n\n return {\n ...commonSegmentAttrs(props),\n 'inputmode': 'text',\n 'aria-label': 'AM/PM',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n }\n}\n\nfunction literalSegmentAttrs(_props: SegmentAttrProps) {\n return {\n 'aria-hidden': true,\n 'data-segment': 'literal',\n }\n}\n\nfunction timeZoneSegmentAttrs(props: SegmentAttrProps) {\n return {\n 'role': 'textbox',\n 'aria-label': 'timezone, ',\n 'data-readonly': true,\n 'data-segment': 'timeZoneName',\n 'tabindex': props.disabled ? undefined : 0,\n 'style': 'caret-color: transparent;',\n }\n}\n\nfunction eraSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n\n const valueMin = 0\n const valueMax = 0\n const valueNow = 0\n const valueText = 'era' in segmentValues ? segmentValues.era : placeholder.era\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'era',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n }\n}\n\nexport const segmentBuilders = {\n day: {\n attrs: daySegmentAttrs,\n },\n month: {\n attrs: monthSegmentAttrs,\n },\n year: {\n attrs: yearSegmentAttrs,\n },\n hour: {\n attrs: hourSegmentAttrs,\n },\n minute: {\n attrs: minuteSegmentAttrs,\n },\n second: {\n attrs: secondSegmentAttrs,\n },\n dayPeriod: {\n attrs: dayPeriodSegmentAttrs,\n },\n literal: {\n attrs: literalSegmentAttrs,\n },\n timeZoneName: {\n attrs: timeZoneSegmentAttrs,\n },\n era: {\n attrs: eraSegmentAttrs,\n },\n}\n\nexport type UseDateFieldProps = {\n hasLeftFocus: Ref<boolean>\n lastKeyZero: Ref<boolean>\n placeholder: Ref<DateValue>\n hourCycle: HourCycle\n formatter: Formatter\n segmentValues: Ref<SegmentValueObj>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n part: SegmentPart\n modelValue: Ref<DateValue | undefined>\n focusNext: () => void\n}\n\nexport function useDateField(props: UseDateFieldProps) {\n const kbd = useKbd()\n\n function minuteSecondIncrementation({ e, part, dateRef, prevValue }: MinuteSecondIncrementProps): number {\n const sign = e.key === kbd.ARROW_UP ? 1 : -1\n const min = 0\n const max = 59\n\n if (prevValue === null)\n return sign > 0 ? min : max\n\n const cycleArgs: [keyof TimeFields, number] = [part, sign]\n return (dateRef as CalendarDateTime).set({ [part]: prevValue }).cycle(...cycleArgs)[part]\n }\n\n function deleteValue(prevValue: number | null) {\n props.hasLeftFocus.value = false\n if (prevValue === null)\n return prevValue\n\n const str = prevValue.toString()\n if (str.length === 1) {\n props.modelValue.value = undefined\n return null\n }\n\n return Number.parseInt(str.slice(0, -1))\n }\n function dateTimeValueIncrementation({ e, part, dateRef, prevValue, hourCycle }: DateTimeValueIncrementation): number {\n const sign = e.key === kbd.ARROW_UP ? 1 : -1\n\n if (prevValue === null)\n return dateRef[part as keyof Omit<DateFields, 'era'>]\n\n if (part === 'hour' && 'hour' in dateRef) {\n const cycleArgs: [keyof DateFields | keyof TimeFields, number, CycleTimeOptions?] = [part, sign, { hourCycle }]\n return dateRef.set({ [part as keyof DateValue]: prevValue }).cycle(...cycleArgs)[part]\n }\n\n const cycleArgs: [keyof DateFields, number] = [part as keyof DateFields, sign]\n if (part === 'day' && props.segmentValues.value.month !== null)\n return dateRef.set({ [part as keyof DateValue]: prevValue, month: props.segmentValues.value.month }).cycle(...cycleArgs)[part as keyof Omit<DateFields, 'era'>]\n\n return dateRef.set({ [part as keyof DateValue]: prevValue }).cycle(...cycleArgs)[part as keyof Omit<DateFields, 'era'>]\n }\n function updateDayOrMonth(max: number, num: number, prev: number | null) {\n let moveToNext = false\n const maxStart = Math.floor(max / 10)\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null) {\n /**\n * If the user types a 0 as the first number, we want\n * to keep track of that so that when they type the next\n * number, we can move to the next segment.\n */\n\n if (num === 0) {\n props.lastKeyZero.value = true\n return { value: null, moveToNext }\n }\n /**\n * If the last key was a 0, or if the first number is\n * greater than the max start digit (0-3 in most cases), then\n * we want to move to the next segment, since it's not possible\n * to continue typing a valid number in this segment.\n */\n\n if (props.lastKeyZero.value || num > maxStart) {\n // move to next\n moveToNext = true\n }\n props.lastKeyZero.value = false\n /**\n * If none of the above conditions are met, then we can just\n * return the number as the segment value and continue typing\n * in this segment.\n */\n return { value: num, moveToNext }\n }\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n const digits = prev.toString().length\n const total = Number.parseInt(prev.toString() + num.toString())\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n\n if (digits === 2 || total > max) {\n /**\n * As we're doing elsewhere, we're checking if the number is greater\n * than the max start digit (0-3 in most months), and if so, we're\n * going to move to the next segment.\n */\n if (num > maxStart || total > max) {\n // move to next\n moveToNext = true\n }\n return { value: num, moveToNext }\n }\n // move to next\n moveToNext = true\n return { value: total, moveToNext }\n }\n\n function updateMinuteOrSecond(num: number, prev: number | null) {\n const max = 59\n let moveToNext = false\n const maxStart = Math.floor(max / 10)\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null) {\n /**\n * If the user types a 0 as the first number, we want\n * to keep track of that so that when they type the next\n * number, we can move to the next segment.\n */\n\n if (num === 0) {\n props.lastKeyZero.value = true\n return { value: 0, moveToNext }\n }\n /**\n * If the last key was a 0, or if the first number is\n * greater than the max start digit (0-3 in most cases), then\n * we want to move to the next segment, since it's not possible\n * to continue typing a valid number in this segment.\n */\n\n if (props.lastKeyZero.value || num > maxStart) {\n // move to next\n moveToNext = true\n }\n props.lastKeyZero.value = false\n /**\n * If none of the above conditions are met, then we can just\n * return the number as the segment value and continue typing\n * in this segment.\n */\n return { value: num, moveToNext }\n }\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n const digits = prev.toString().length\n const total = Number.parseInt(prev.toString() + num.toString())\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n\n if (digits === 2 || total > max) {\n /**\n * As we're doing elsewhere, we're checking if the number is greater\n * than the max start digit (0-3 in most months), and if so, we're\n * going to move to the next segment.\n */\n if (num > maxStart) {\n // move to next\n moveToNext = true\n }\n return { value: num, moveToNext }\n }\n // move to next\n moveToNext = true\n return { value: total, moveToNext }\n }\n\n function updateHour(num: number, prev: number | null) {\n const max = 24\n let moveToNext = false\n const maxStart = Math.floor(max / 10)\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n // probably not implement, kind of weird\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null) {\n /**\n * If the user types a 0 as the first number, we want\n * to keep track of that so that when they type the next\n * number, we can move to the next segment.\n */\n\n if (num === 0) {\n props.lastKeyZero.value = true\n return { value: 0, moveToNext }\n }\n /**\n * If the last key was a 0, or if the first number is\n * greater than the max start digit (0-3 in most cases), then\n * we want to move to the next segment, since it's not possible\n * to continue typing a valid number in this segment.\n */\n\n if (props.lastKeyZero.value || num > maxStart) {\n // move to next\n moveToNext = true\n }\n props.lastKeyZero.value = false\n /**\n * If none of the above conditions are met, then we can just\n * return the number as the segment value and continue typing\n * in this segment.\n */\n return { value: num, moveToNext }\n }\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n const digits = prev.toString().length\n const total = Number.parseInt(prev.toString() + num.toString())\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n\n if (digits === 2 || total > max) {\n /**\n * As we're doing elsewhere, we're checking if the number is greater\n * than the max start digit (0-3 in most months), and if so, we're\n * going to move to the next segment.\n */\n if (num > maxStart) {\n // move to next\n moveToNext = true\n }\n return { value: num, moveToNext }\n }\n // move to next\n moveToNext = true\n return { value: total, moveToNext }\n }\n\n function updateYear(num: number, prev: number | null) {\n let moveToNext = false\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n // probably not implement, kind of weird\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null)\n return { value: num === 0 ? 1 : num, moveToNext }\n\n const str = prev.toString() + num.toString()\n\n if (str.length > 4)\n return { value: num === 0 ? 1 : num, moveToNext }\n\n if (str.length === 4)\n moveToNext = true\n\n const int = Number.parseInt(str)\n return { value: int, moveToNext }\n }\n\n const attributes = computed(() => segmentBuilders[props.part]?.attrs({\n disabled: props.disabled.value,\n placeholder: props.placeholder.value,\n hourCycle: props.hourCycle,\n segmentValues: props.segmentValues.value,\n formatter: props.formatter,\n }) ?? {})\n\n // TODO: look into abstracting segment keydown functions since they have the same structure (checks -> arrow_up, arrow_down update -> number string update -> move to next -> backspace update)\n function handleDaySegmentKeydown(e: KeyboardEvent) {\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key))\n return\n\n const prevValue = props.segmentValues.value.day\n\n if (e.key === kbd.ARROW_DOWN || e.key === kbd.ARROW_UP) {\n props.segmentValues.value.day = dateTimeValueIncrementation({ e, part: 'day', dateRef: props.placeholder.value, prevValue })\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const segmentMonthValue = props.segmentValues.value.month\n\n const daysInMonth = segmentMonthValue\n ? getDaysInMonth(props.placeholder.value.set({ month: segmentMonthValue }))\n : getDaysInMonth(props.placeholder.value)\n\n const { value, moveToNext } = updateDayOrMonth(daysInMonth, num, prevValue)\n\n props.segmentValues.value.day = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.day = deleteValue(prevValue)\n }\n }\n\n function handleMonthSegmentKeydown(e: KeyboardEvent) {\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key))\n return\n\n const prevValue = props.segmentValues.value.month\n\n if (e.key === kbd.ARROW_DOWN || e.key === kbd.ARROW_UP) {\n props.segmentValues.value.month = dateTimeValueIncrementation({ e, part: 'month', dateRef: props.placeholder.value, prevValue })\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateDayOrMonth(12, num, prevValue)\n\n props.segmentValues.value.month = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.month = deleteValue(prevValue)\n }\n }\n\n function handleYearSegmentKeydown(e: KeyboardEvent) {\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key))\n return\n\n const prevValue = props.segmentValues.value.year\n\n if (e.key === kbd.ARROW_DOWN || e.key === kbd.ARROW_UP) {\n props.segmentValues.value.year = dateTimeValueIncrementation({ e, part: 'year', dateRef: props.placeholder.value, prevValue })\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateYear(num, prevValue)\n\n props.segmentValues.value.year = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.year = deleteValue(prevValue)\n }\n }\n\n function handleHourSegmentKeydown(e: KeyboardEvent) {\n const dateRef = props.placeholder.value\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key) || !('hour' in dateRef) || !('hour' in props.segmentValues.value))\n return\n\n const prevValue = props.segmentValues.value.hour\n\n const hourCycle = props.hourCycle\n\n if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN) {\n props.segmentValues.value.hour = dateTimeValueIncrementation({ e, part: 'hour', dateRef: props.placeholder.value, prevValue, hourCycle })\n\n if ('dayPeriod' in props.segmentValues.value) {\n if (props.segmentValues.value.hour < 12)\n props.segmentValues.value.dayPeriod = 'AM'\n else if (props.segmentValues.value.hour)\n props.segmentValues.value.dayPeriod = 'PM'\n }\n\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateHour(num, prevValue)\n\n if ('dayPeriod' in props.segmentValues.value && value && value > 12)\n props.segmentValues.value.dayPeriod = 'PM'\n else if ('dayPeriod' in props.segmentValues.value && value)\n props.segmentValues.value.dayPeriod = 'AM'\n\n props.segmentValues.value.hour = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.hour = deleteValue(prevValue)\n }\n }\n\n function handleMinuteSegmentKeydown(e: KeyboardEvent) {\n const dateRef = props.placeholder.value\n\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key) || !('minute' in dateRef) || !('minute' in props.segmentValues.value))\n return\n\n const prevValue = props.segmentValues.value.minute\n\n props.segmentValues.value.minute = minuteSecondIncrementation({ e, part: 'minute', dateRef: props.placeholder.value, prevValue })\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n\n const { value, moveToNext } = updateMinuteOrSecond(num, prevValue)\n\n props.segmentValues.value.minute = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.minute = deleteValue(prevValue)\n }\n }\n\n function handleSecondSegmentKeydown(e: KeyboardEvent) {\n const dateRef = props.placeholder.value\n\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key) || !('second' in dateRef) || !('second' in props.segmentValues.value))\n return\n\n const prevValue = props.segmentValues.value.second\n\n props.segmentValues.value.second = minuteSecondIncrementation({ e, part: 'second', dateRef: props.placeholder.value, prevValue })\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateMinuteOrSecond(num, prevValue)\n\n props.segmentValues.value.second = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.second = deleteValue(prevValue)\n }\n }\n\n function handleDayPeriodSegmentKeydown(e: KeyboardEvent) {\n if (((!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key)) && e.key !== 'a' && e.key !== 'p') || !('hour' in props.placeholder.value) || !('dayPeriod' in props.segmentValues.value))\n return\n\n if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN) {\n if (props.segmentValues.value.dayPeriod === 'AM') {\n props.segmentValues.value.dayPeriod = 'PM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! + 12\n return\n }\n props.segmentValues.value.dayPeriod = 'AM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! - 12\n return\n }\n\n if (['a', 'A'].includes(e.key) && props.segmentValues.value.dayPeriod !== 'AM') {\n props.segmentValues.value.dayPeriod = 'AM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! - 12\n return\n }\n\n if (['p', 'P'].includes(e.key) && props.segmentValues.value.dayPeriod !== 'PM') {\n props.segmentValues.value.dayPeriod = 'PM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! + 12\n }\n }\n\n function handleSegmentClick(e: MouseEvent) {\n const disabled = props.disabled.value\n if (disabled)\n e.preventDefault()\n }\n\n function handleSegmentKeydown(e: KeyboardEvent) {\n const disabled = props.disabled.value\n const readonly = props.readonly.value\n if (e.key !== kbd.TAB)\n e.preventDefault()\n\n if (disabled || readonly)\n return\n const segmentKeydownHandlers = {\n day: handleDaySegmentKeydown,\n month: handleMonthSegmentKeydown,\n year: handleYearSegmentKeydown,\n hour: handleHourSegmentKeydown,\n minute: handleMinuteSegmentKeydown,\n second: handleSecondSegmentKeydown,\n dayPeriod: handleDayPeriodSegmentKeydown,\n timeZoneName: () => {},\n } as const\n\n segmentKeydownHandlers[props.part as keyof typeof segmentKeydownHandlers](e)\n\n if (![kbd.ARROW_LEFT, kbd.ARROW_RIGHT].includes(e.key) && e.key !== kbd.TAB && e.key !== kbd.SHIFT && isAcceptableSegmentKey(e.key)) {\n if (Object.values(props.segmentValues.value).every(item => item !== null)) {\n const updateObject = { ...props.segmentValues.value as Record<AnyExceptLiteral, number> }\n\n let dateRef = props.placeholder.value.copy()\n\n Object.keys(updateObject).forEach((part) => {\n const value = updateObject[part as AnyExceptLiteral]\n dateRef = dateRef.set({ [part]: value })\n })\n\n props.modelValue.value = dateRef.copy()\n }\n }\n }\n\n return {\n handleSegmentClick,\n handleSegmentKeydown,\n attributes,\n }\n}\n"],"names":["cycleArgs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDateField.js","sources":["../../src/shared/date/useDateField.ts"],"sourcesContent":["import type { CalendarDateTime, CycleTimeOptions, DateFields, DateValue, TimeFields } from '@internationalized/date'\nimport type { Ref } from 'vue'\nimport type { AnyExceptLiteral, DateStep, HourCycle, SegmentPart, SegmentValueObj } from './types'\nimport type { Formatter } from '@/shared'\nimport { computed } from 'vue'\nimport { getDaysInMonth, toDate } from '@/date'\nimport { useKbd } from '@/shared'\nimport { isAcceptableSegmentKey, isNumberString, isSegmentNavigationKey } from './segment'\n\ntype MinuteSecondIncrementProps = {\n e: KeyboardEvent\n part: keyof TimeFields\n dateRef: DateValue\n prevValue: number | null\n}\n\ntype DateTimeValueIncrementation = {\n e: KeyboardEvent\n part: keyof Omit<DateFields, 'era'> | keyof TimeFields\n dateRef: DateValue\n prevValue: number | null\n hourCycle?: HourCycle\n}\n\ntype SegmentAttrProps = {\n disabled: boolean\n segmentValues: SegmentValueObj\n hourCycle: HourCycle\n placeholder: DateValue\n formatter: Formatter\n}\n\nfunction commonSegmentAttrs(props: SegmentAttrProps) {\n return {\n role: 'spinbutton',\n contenteditable: true,\n tabindex: props.disabled ? undefined : 0,\n spellcheck: false,\n inputmode: 'numeric',\n autocorrect: 'off',\n enterkeyhint: 'next',\n style: 'caret-color: transparent;',\n }\n}\n\nfunction daySegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n const isEmpty = segmentValues.day === null\n const date = segmentValues.day ? placeholder.set({ day: segmentValues.day }) : placeholder\n\n const valueNow = date.day\n const valueMin = 1\n const valueMax = getDaysInMonth(date)\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'day,',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction monthSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder, formatter } = props\n const isEmpty = segmentValues.month === null\n const date = segmentValues.month\n ? placeholder.set({ month: segmentValues.month })\n : placeholder\n const valueNow = date.month\n const valueMin = 1\n const valueMax = 12\n const valueText = isEmpty ? 'Empty' : `${valueNow} - ${formatter.fullMonth(toDate(date))}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'month, ',\n 'contenteditable': true,\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction yearSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n const isEmpty = segmentValues.year === null\n const date = segmentValues.year ? placeholder.set({ year: segmentValues.year }) : placeholder\n const valueMin = 1\n const valueMax = 9999\n const valueNow = date.year\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'year, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction hourSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, hourCycle, placeholder } = props\n\n if (!('hour' in segmentValues) || !('hour' in placeholder))\n return {}\n const isEmpty = segmentValues.hour === null\n const date = segmentValues.hour ? placeholder.set({ hour: segmentValues.hour }) : placeholder\n const valueMin = hourCycle === 12 ? 1 : 0\n const valueMax = hourCycle === 12 ? 12 : 23\n const valueNow = date.hour\n const valueText = isEmpty ? 'Empty' : `${valueNow} ${segmentValues.dayPeriod ?? ''}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'hour, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction minuteSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n if (!('minute' in segmentValues) || !('minute' in placeholder))\n return {}\n const isEmpty = segmentValues.minute === null\n const date = segmentValues.minute\n ? placeholder.set({ minute: segmentValues.minute })\n : placeholder\n const valueNow = date.minute\n const valueMin = 0\n const valueMax = 59\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'minute, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction secondSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n if (!('second' in segmentValues) || !('second' in placeholder))\n return {}\n const isEmpty = segmentValues.second === null\n const date = segmentValues.second\n ? placeholder.set({ second: segmentValues.second })\n : placeholder\n const valueNow = date.second\n const valueMin = 0\n const valueMax = 59\n const valueText = isEmpty ? 'Empty' : `${valueNow}`\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'second, ',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n 'data-placeholder': isEmpty ? '' : undefined,\n }\n}\n\nfunction dayPeriodSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues } = props\n if (!('dayPeriod' in segmentValues))\n return {}\n\n const valueMin = 0\n const valueMax = 12\n const valueNow = segmentValues.hour ? (segmentValues.hour > 12 ? segmentValues.hour - 12 : segmentValues.hour) : 0\n const valueText = segmentValues.dayPeriod ?? 'AM'\n\n return {\n ...commonSegmentAttrs(props),\n 'inputmode': 'text',\n 'aria-label': 'AM/PM',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n }\n}\n\nfunction literalSegmentAttrs(_props: SegmentAttrProps) {\n return {\n 'aria-hidden': true,\n 'data-segment': 'literal',\n }\n}\n\nfunction timeZoneSegmentAttrs(props: SegmentAttrProps) {\n return {\n 'role': 'textbox',\n 'aria-label': 'timezone, ',\n 'data-readonly': true,\n 'data-segment': 'timeZoneName',\n 'tabindex': props.disabled ? undefined : 0,\n 'style': 'caret-color: transparent;',\n }\n}\n\nfunction eraSegmentAttrs(props: SegmentAttrProps) {\n const { segmentValues, placeholder } = props\n\n const valueMin = 0\n const valueMax = 0\n const valueNow = 0\n const valueText = 'era' in segmentValues ? segmentValues.era : placeholder.era\n\n return {\n ...commonSegmentAttrs(props),\n 'aria-label': 'era',\n 'aria-valuemin': valueMin,\n 'aria-valuemax': valueMax,\n 'aria-valuenow': valueNow,\n 'aria-valuetext': valueText,\n }\n}\n\nexport const segmentBuilders = {\n day: {\n attrs: daySegmentAttrs,\n },\n month: {\n attrs: monthSegmentAttrs,\n },\n year: {\n attrs: yearSegmentAttrs,\n },\n hour: {\n attrs: hourSegmentAttrs,\n },\n minute: {\n attrs: minuteSegmentAttrs,\n },\n second: {\n attrs: secondSegmentAttrs,\n },\n dayPeriod: {\n attrs: dayPeriodSegmentAttrs,\n },\n literal: {\n attrs: literalSegmentAttrs,\n },\n timeZoneName: {\n attrs: timeZoneSegmentAttrs,\n },\n era: {\n attrs: eraSegmentAttrs,\n },\n}\n\nexport type UseDateFieldProps = {\n hasLeftFocus: Ref<boolean>\n lastKeyZero: Ref<boolean>\n placeholder: Ref<DateValue>\n hourCycle: HourCycle\n step: Ref<DateStep>\n formatter: Formatter\n segmentValues: Ref<SegmentValueObj>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n part: SegmentPart\n modelValue: Ref<DateValue | undefined>\n focusNext: () => void\n}\n\nexport function useDateField(props: UseDateFieldProps) {\n const kbd = useKbd()\n\n function minuteSecondIncrementation({ e, part, dateRef, prevValue }: MinuteSecondIncrementProps): number {\n const step = props.step.value[part] ?? 1\n const sign = e.key === kbd.ARROW_UP ? step : -step\n const min = 0\n const max = 59\n\n if (prevValue === null)\n return sign > 0 ? min : max\n\n const cycleArgs: [keyof TimeFields, number] = [part, sign]\n return (dateRef as CalendarDateTime).set({ [part]: prevValue }).cycle(...cycleArgs)[part]\n }\n\n function deleteValue(prevValue: number | null) {\n props.hasLeftFocus.value = false\n if (prevValue === null)\n return prevValue\n\n const str = prevValue.toString()\n if (str.length === 1) {\n props.modelValue.value = undefined\n return null\n }\n\n return Number.parseInt(str.slice(0, -1))\n }\n function dateTimeValueIncrementation({ e, part, dateRef, prevValue, hourCycle }: DateTimeValueIncrementation): number {\n const step = props.step.value[part] ?? 1\n const sign = e.key === kbd.ARROW_UP ? step : -step\n\n if (prevValue === null)\n return dateRef[part as keyof Omit<DateFields, 'era'>]\n\n if (part === 'hour' && 'hour' in dateRef) {\n const cycleArgs: [keyof DateFields | keyof TimeFields, number, CycleTimeOptions?] = [part, sign, { hourCycle }]\n return dateRef.set({ [part as keyof DateValue]: prevValue }).cycle(...cycleArgs)[part]\n }\n\n const cycleArgs: [keyof DateFields, number] = [part as keyof DateFields, sign]\n if (part === 'day') {\n return dateRef.set({\n [part as keyof DateValue]: prevValue,\n /**\n * Edge case for the day field:\n *\n * 1. If the month is filled,\n * we need to ensure that the day snaps to the maximum value of that month.\n * 2. If the month is not filled,\n * we default to the month with the maximum number of days (here just using January, 31 days),\n * so that user can input any possible day.\n */\n month: props.segmentValues.value.month ?? 1,\n }).cycle(...cycleArgs)[part as keyof Omit<DateFields, 'era'>]\n }\n\n return dateRef.set({ [part as keyof DateValue]: prevValue }).cycle(...cycleArgs)[part as keyof Omit<DateFields, 'era'>]\n }\n function updateDayOrMonth(max: number, num: number, prev: number | null) {\n let moveToNext = false\n const maxStart = Math.floor(max / 10)\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null) {\n /**\n * If the user types a 0 as the first number, we want\n * to keep track of that so that when they type the next\n * number, we can move to the next segment.\n */\n\n if (num === 0) {\n props.lastKeyZero.value = true\n return { value: null, moveToNext }\n }\n /**\n * If the last key was a 0, or if the first number is\n * greater than the max start digit (0-3 in most cases), then\n * we want to move to the next segment, since it's not possible\n * to continue typing a valid number in this segment.\n */\n\n if (props.lastKeyZero.value || num > maxStart) {\n // move to next\n moveToNext = true\n }\n props.lastKeyZero.value = false\n /**\n * If none of the above conditions are met, then we can just\n * return the number as the segment value and continue typing\n * in this segment.\n */\n return { value: num, moveToNext }\n }\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n const digits = prev.toString().length\n const total = Number.parseInt(prev.toString() + num.toString())\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n\n if (digits === 2 || total > max) {\n /**\n * As we're doing elsewhere, we're checking if the number is greater\n * than the max start digit (0-3 in most months), and if so, we're\n * going to move to the next segment.\n */\n if (num > maxStart || total > max) {\n // move to next\n moveToNext = true\n }\n return { value: num, moveToNext }\n }\n // move to next\n moveToNext = true\n return { value: total, moveToNext }\n }\n\n function updateMinuteOrSecond(num: number, prev: number | null) {\n const max = 59\n let moveToNext = false\n const maxStart = Math.floor(max / 10)\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null) {\n /**\n * If the user types a 0 as the first number, we want\n * to keep track of that so that when they type the next\n * number, we can move to the next segment.\n */\n\n if (num === 0) {\n props.lastKeyZero.value = true\n return { value: 0, moveToNext }\n }\n /**\n * If the last key was a 0, or if the first number is\n * greater than the max start digit (0-3 in most cases), then\n * we want to move to the next segment, since it's not possible\n * to continue typing a valid number in this segment.\n */\n\n if (props.lastKeyZero.value || num > maxStart) {\n // move to next\n moveToNext = true\n }\n props.lastKeyZero.value = false\n /**\n * If none of the above conditions are met, then we can just\n * return the number as the segment value and continue typing\n * in this segment.\n */\n return { value: num, moveToNext }\n }\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n const digits = prev.toString().length\n const total = Number.parseInt(prev.toString() + num.toString())\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n\n if (digits === 2 || total > max) {\n /**\n * As we're doing elsewhere, we're checking if the number is greater\n * than the max start digit (0-3 in most months), and if so, we're\n * going to move to the next segment.\n */\n if (num > maxStart) {\n // move to next\n moveToNext = true\n }\n return { value: num, moveToNext }\n }\n // move to next\n moveToNext = true\n return { value: total, moveToNext }\n }\n\n function updateHour(num: number, prev: number | null) {\n const max = 24\n let moveToNext = false\n const maxStart = Math.floor(max / 10)\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n // probably not implement, kind of weird\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null) {\n /**\n * If the user types a 0 as the first number, we want\n * to keep track of that so that when they type the next\n * number, we can move to the next segment.\n */\n\n if (num === 0) {\n props.lastKeyZero.value = true\n return { value: 0, moveToNext }\n }\n /**\n * If the last key was a 0, or if the first number is\n * greater than the max start digit (0-3 in most cases), then\n * we want to move to the next segment, since it's not possible\n * to continue typing a valid number in this segment.\n */\n\n if (props.lastKeyZero.value || num > maxStart) {\n // move to next\n moveToNext = true\n }\n props.lastKeyZero.value = false\n /**\n * If none of the above conditions are met, then we can just\n * return the number as the segment value and continue typing\n * in this segment.\n */\n return { value: num, moveToNext }\n }\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n const digits = prev.toString().length\n const total = Number.parseInt(prev.toString() + num.toString())\n\n /**\n * If the number of digits is 2, or if the total with the existing digit\n * and the pressed digit is greater than the maximum value for this\n * month, then we will reset the segment as if the user had pressed the\n * backspace key and then typed the number.\n */\n\n if (digits === 2 || total > max) {\n /**\n * As we're doing elsewhere, we're checking if the number is greater\n * than the max start digit (0-3 in most months), and if so, we're\n * going to move to the next segment.\n */\n if (num > maxStart) {\n // move to next\n moveToNext = true\n }\n return { value: num, moveToNext }\n }\n // move to next\n moveToNext = true\n return { value: total, moveToNext }\n }\n\n function updateYear(num: number, prev: number | null) {\n let moveToNext = false\n\n /**\n * If the user has left the segment, we want to reset the\n * `prev` value so that we can start the segment over again\n * when the user types a number.\n */\n // probably not implement, kind of weird\n if (props.hasLeftFocus.value) {\n props.hasLeftFocus.value = false\n prev = null\n }\n\n if (prev === null)\n return { value: num === 0 ? 1 : num, moveToNext }\n\n const str = prev.toString() + num.toString()\n\n if (str.length > 4)\n return { value: num === 0 ? 1 : num, moveToNext }\n\n if (str.length === 4)\n moveToNext = true\n\n const int = Number.parseInt(str)\n return { value: int, moveToNext }\n }\n\n const attributes = computed(() => segmentBuilders[props.part]?.attrs({\n disabled: props.disabled.value,\n placeholder: props.placeholder.value,\n hourCycle: props.hourCycle,\n segmentValues: props.segmentValues.value,\n formatter: props.formatter,\n }) ?? {})\n\n // TODO: look into abstracting segment keydown functions since they have the same structure (checks -> arrow_up, arrow_down update -> number string update -> move to next -> backspace update)\n function handleDaySegmentKeydown(e: KeyboardEvent) {\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key))\n return\n\n const prevValue = props.segmentValues.value.day\n\n if (e.key === kbd.ARROW_DOWN || e.key === kbd.ARROW_UP) {\n props.segmentValues.value.day = dateTimeValueIncrementation({ e, part: 'day', dateRef: props.placeholder.value, prevValue })\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const segmentMonthValue = props.segmentValues.value.month\n\n const daysInMonth = segmentMonthValue\n ? getDaysInMonth(props.placeholder.value.set({ month: segmentMonthValue }))\n // if the month is not set, we default to the maximum number of days in a month\n // so that user can input any possible day\n : 31\n\n const { value, moveToNext } = updateDayOrMonth(daysInMonth, num, prevValue)\n\n props.segmentValues.value.day = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.day = deleteValue(prevValue)\n }\n }\n\n function handleMonthSegmentKeydown(e: KeyboardEvent) {\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key))\n return\n\n const prevValue = props.segmentValues.value.month\n\n if (e.key === kbd.ARROW_DOWN || e.key === kbd.ARROW_UP) {\n props.segmentValues.value.month = dateTimeValueIncrementation({ e, part: 'month', dateRef: props.placeholder.value, prevValue })\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateDayOrMonth(12, num, prevValue)\n\n props.segmentValues.value.month = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.month = deleteValue(prevValue)\n }\n }\n\n function handleYearSegmentKeydown(e: KeyboardEvent) {\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key))\n return\n\n const prevValue = props.segmentValues.value.year\n\n if (e.key === kbd.ARROW_DOWN || e.key === kbd.ARROW_UP) {\n props.segmentValues.value.year = dateTimeValueIncrementation({ e, part: 'year', dateRef: props.placeholder.value, prevValue })\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateYear(num, prevValue)\n\n props.segmentValues.value.year = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.year = deleteValue(prevValue)\n }\n }\n\n function handleHourSegmentKeydown(e: KeyboardEvent) {\n const dateRef = props.placeholder.value\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key) || !('hour' in dateRef) || !('hour' in props.segmentValues.value))\n return\n\n const prevValue = props.segmentValues.value.hour\n\n const hourCycle = props.hourCycle\n\n if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN) {\n props.segmentValues.value.hour = dateTimeValueIncrementation({ e, part: 'hour', dateRef: props.placeholder.value, prevValue, hourCycle })\n\n if ('dayPeriod' in props.segmentValues.value) {\n if (props.segmentValues.value.hour < 12)\n props.segmentValues.value.dayPeriod = 'AM'\n else if (props.segmentValues.value.hour)\n props.segmentValues.value.dayPeriod = 'PM'\n }\n\n return\n }\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateHour(num, prevValue)\n\n if ('dayPeriod' in props.segmentValues.value && value && value > 12)\n props.segmentValues.value.dayPeriod = 'PM'\n else if ('dayPeriod' in props.segmentValues.value && value)\n props.segmentValues.value.dayPeriod = 'AM'\n\n props.segmentValues.value.hour = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.hour = deleteValue(prevValue)\n }\n }\n\n function handleMinuteSegmentKeydown(e: KeyboardEvent) {\n const dateRef = props.placeholder.value\n\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key) || !('minute' in dateRef) || !('minute' in props.segmentValues.value))\n return\n\n const prevValue = props.segmentValues.value.minute\n\n props.segmentValues.value.minute = minuteSecondIncrementation({ e, part: 'minute', dateRef: props.placeholder.value, prevValue })\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n\n const { value, moveToNext } = updateMinuteOrSecond(num, prevValue)\n\n props.segmentValues.value.minute = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.minute = deleteValue(prevValue)\n }\n }\n\n function handleSecondSegmentKeydown(e: KeyboardEvent) {\n const dateRef = props.placeholder.value\n\n if (!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key) || !('second' in dateRef) || !('second' in props.segmentValues.value))\n return\n\n const prevValue = props.segmentValues.value.second\n\n props.segmentValues.value.second = minuteSecondIncrementation({ e, part: 'second', dateRef: props.placeholder.value, prevValue })\n\n if (isNumberString(e.key)) {\n const num = Number.parseInt(e.key)\n const { value, moveToNext } = updateMinuteOrSecond(num, prevValue)\n\n props.segmentValues.value.second = value\n\n if (moveToNext)\n props.focusNext()\n }\n\n if (e.key === kbd.BACKSPACE) {\n props.hasLeftFocus.value = false\n props.segmentValues.value.second = deleteValue(prevValue)\n }\n }\n\n function handleDayPeriodSegmentKeydown(e: KeyboardEvent) {\n if (((!isAcceptableSegmentKey(e.key) || isSegmentNavigationKey(e.key)) && e.key !== 'a' && e.key !== 'p') || !('hour' in props.placeholder.value) || !('dayPeriod' in props.segmentValues.value))\n return\n\n if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN) {\n if (props.segmentValues.value.dayPeriod === 'AM') {\n props.segmentValues.value.dayPeriod = 'PM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! + 12\n return\n }\n props.segmentValues.value.dayPeriod = 'AM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! - 12\n return\n }\n\n if (['a', 'A'].includes(e.key) && props.segmentValues.value.dayPeriod !== 'AM') {\n props.segmentValues.value.dayPeriod = 'AM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! - 12\n return\n }\n\n if (['p', 'P'].includes(e.key) && props.segmentValues.value.dayPeriod !== 'PM') {\n props.segmentValues.value.dayPeriod = 'PM'\n props.segmentValues.value.hour = props.segmentValues.value.hour! + 12\n }\n }\n\n function handleSegmentClick(e: MouseEvent) {\n const disabled = props.disabled.value\n if (disabled)\n e.preventDefault()\n }\n\n function handleSegmentKeydown(e: KeyboardEvent) {\n const disabled = props.disabled.value\n const readonly = props.readonly.value\n if (e.key !== kbd.TAB)\n e.preventDefault()\n\n if (disabled || readonly)\n return\n const segmentKeydownHandlers = {\n day: handleDaySegmentKeydown,\n month: handleMonthSegmentKeydown,\n year: handleYearSegmentKeydown,\n hour: handleHourSegmentKeydown,\n minute: handleMinuteSegmentKeydown,\n second: handleSecondSegmentKeydown,\n dayPeriod: handleDayPeriodSegmentKeydown,\n timeZoneName: () => {},\n } as const\n\n segmentKeydownHandlers[props.part as keyof typeof segmentKeydownHandlers](e)\n\n if (![kbd.ARROW_LEFT, kbd.ARROW_RIGHT].includes(e.key) && e.key !== kbd.TAB && e.key !== kbd.SHIFT && isAcceptableSegmentKey(e.key)) {\n if (Object.values(props.segmentValues.value).every(item => item !== null)) {\n const updateObject = { ...props.segmentValues.value as Record<AnyExceptLiteral, number> }\n\n let dateRef = props.placeholder.value.copy()\n\n Object.keys(updateObject).forEach((part) => {\n const value = updateObject[part as AnyExceptLiteral]\n dateRef = dateRef.set({ [part]: value })\n })\n\n props.modelValue.value = dateRef.copy()\n }\n }\n }\n\n return {\n handleSegmentClick,\n handleSegmentKeydown,\n attributes,\n }\n}\n"],"names":["cycleArgs"],"mappings":";;;;;AAgCA,SAAS,mBAAmB,KAAyB,EAAA;AACnD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,YAAA;AAAA,IACN,eAAiB,EAAA,IAAA;AAAA,IACjB,QAAA,EAAU,KAAM,CAAA,QAAA,GAAW,MAAY,GAAA,CAAA;AAAA,IACvC,UAAY,EAAA,KAAA;AAAA,IACZ,SAAW,EAAA,SAAA;AAAA,IACX,WAAa,EAAA,KAAA;AAAA,IACb,YAAc,EAAA,MAAA;AAAA,IACd,KAAO,EAAA;AAAA,GACT;AACF;AAEA,SAAS,gBAAgB,KAAyB,EAAA;AAChD,EAAM,MAAA,EAAE,aAAe,EAAA,WAAA,EAAgB,GAAA,KAAA;AACvC,EAAM,MAAA,OAAA,GAAU,cAAc,GAAQ,KAAA,IAAA;AACtC,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,GAAA,GAAM,WAAY,CAAA,GAAA,CAAI,EAAE,GAAK,EAAA,aAAA,CAAc,GAAI,EAAC,CAAI,GAAA,WAAA;AAE/E,EAAA,MAAM,WAAW,IAAK,CAAA,GAAA;AACtB,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAM,MAAA,QAAA,GAAW,eAAe,IAAI,CAAA;AACpC,EAAA,MAAM,SAAY,GAAA,OAAA,GAAU,OAAU,GAAA,CAAA,EAAG,QAAQ,CAAA,CAAA;AAEjD,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,YAAc,EAAA,MAAA;AAAA,IACd,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA,SAAA;AAAA,IAClB,kBAAA,EAAoB,UAAU,EAAK,GAAA;AAAA,GACrC;AACF;AAEA,SAAS,kBAAkB,KAAyB,EAAA;AAClD,EAAA,MAAM,EAAE,aAAA,EAAe,WAAa,EAAA,SAAA,EAAc,GAAA,KAAA;AAClD,EAAM,MAAA,OAAA,GAAU,cAAc,KAAU,KAAA,IAAA;AACxC,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,KAAA,GACvB,WAAY,CAAA,GAAA,CAAI,EAAE,KAAO,EAAA,aAAA,CAAc,KAAM,EAAC,CAC9C,GAAA,WAAA;AACJ,EAAA,MAAM,WAAW,IAAK,CAAA,KAAA;AACtB,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,QAAW,GAAA,EAAA;AACjB,EAAM,MAAA,SAAA,GAAY,OAAU,GAAA,OAAA,GAAU,CAAG,EAAA,QAAQ,CAAM,GAAA,EAAA,SAAA,CAAU,SAAU,CAAA,MAAA,CAAO,IAAI,CAAC,CAAC,CAAA,CAAA;AAExF,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,YAAc,EAAA,SAAA;AAAA,IACd,iBAAmB,EAAA,IAAA;AAAA,IACnB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA,SAAA;AAAA,IAClB,kBAAA,EAAoB,UAAU,EAAK,GAAA;AAAA,GACrC;AACF;AAEA,SAAS,iBAAiB,KAAyB,EAAA;AACjD,EAAM,MAAA,EAAE,aAAe,EAAA,WAAA,EAAgB,GAAA,KAAA;AACvC,EAAM,MAAA,OAAA,GAAU,cAAc,IAAS,KAAA,IAAA;AACvC,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,IAAA,GAAO,WAAY,CAAA,GAAA,CAAI,EAAE,IAAM,EAAA,aAAA,CAAc,IAAK,EAAC,CAAI,GAAA,WAAA;AAClF,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,QAAW,GAAA,IAAA;AACjB,EAAA,MAAM,WAAW,IAAK,CAAA,IAAA;AACtB,EAAA,MAAM,SAAY,GAAA,OAAA,GAAU,OAAU,GAAA,CAAA,EAAG,QAAQ,CAAA,CAAA;AAEjD,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,YAAc,EAAA,QAAA;AAAA,IACd,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA,SAAA;AAAA,IAClB,kBAAA,EAAoB,UAAU,EAAK,GAAA;AAAA,GACrC;AACF;AAEA,SAAS,iBAAiB,KAAyB,EAAA;AACjD,EAAA,MAAM,EAAE,aAAA,EAAe,SAAW,EAAA,WAAA,EAAgB,GAAA,KAAA;AAElD,EAAA,IAAI,EAAE,MAAA,IAAU,aAAkB,CAAA,IAAA,EAAE,MAAU,IAAA,WAAA,CAAA;AAC5C,IAAA,OAAO,EAAC;AACV,EAAM,MAAA,OAAA,GAAU,cAAc,IAAS,KAAA,IAAA;AACvC,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,IAAA,GAAO,WAAY,CAAA,GAAA,CAAI,EAAE,IAAM,EAAA,aAAA,CAAc,IAAK,EAAC,CAAI,GAAA,WAAA;AAClF,EAAM,MAAA,QAAA,GAAW,SAAc,KAAA,EAAA,GAAK,CAAI,GAAA,CAAA;AACxC,EAAM,MAAA,QAAA,GAAW,SAAc,KAAA,EAAA,GAAK,EAAK,GAAA,EAAA;AACzC,EAAA,MAAM,WAAW,IAAK,CAAA,IAAA;AACtB,EAAM,MAAA,SAAA,GAAY,UAAU,OAAU,GAAA,CAAA,EAAG,QAAQ,CAAI,CAAA,EAAA,aAAA,CAAc,aAAa,EAAE,CAAA,CAAA;AAElF,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,YAAc,EAAA,QAAA;AAAA,IACd,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA,SAAA;AAAA,IAClB,kBAAA,EAAoB,UAAU,EAAK,GAAA;AAAA,GACrC;AACF;AAEA,SAAS,mBAAmB,KAAyB,EAAA;AACnD,EAAM,MAAA,EAAE,aAAe,EAAA,WAAA,EAAgB,GAAA,KAAA;AACvC,EAAA,IAAI,EAAE,QAAA,IAAY,aAAkB,CAAA,IAAA,EAAE,QAAY,IAAA,WAAA,CAAA;AAChD,IAAA,OAAO,EAAC;AACV,EAAM,MAAA,OAAA,GAAU,cAAc,MAAW,KAAA,IAAA;AACzC,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,MAAA,GACvB,WAAY,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,aAAA,CAAc,MAAO,EAAC,CAChD,GAAA,WAAA;AACJ,EAAA,MAAM,WAAW,IAAK,CAAA,MAAA;AACtB,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,QAAW,GAAA,EAAA;AACjB,EAAA,MAAM,SAAY,GAAA,OAAA,GAAU,OAAU,GAAA,CAAA,EAAG,QAAQ,CAAA,CAAA;AAEjD,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,YAAc,EAAA,UAAA;AAAA,IACd,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA,SAAA;AAAA,IAClB,kBAAA,EAAoB,UAAU,EAAK,GAAA;AAAA,GACrC;AACF;AAEA,SAAS,mBAAmB,KAAyB,EAAA;AACnD,EAAM,MAAA,EAAE,aAAe,EAAA,WAAA,EAAgB,GAAA,KAAA;AACvC,EAAA,IAAI,EAAE,QAAA,IAAY,aAAkB,CAAA,IAAA,EAAE,QAAY,IAAA,WAAA,CAAA;AAChD,IAAA,OAAO,EAAC;AACV,EAAM,MAAA,OAAA,GAAU,cAAc,MAAW,KAAA,IAAA;AACzC,EAAM,MAAA,IAAA,GAAO,aAAc,CAAA,MAAA,GACvB,WAAY,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,aAAA,CAAc,MAAO,EAAC,CAChD,GAAA,WAAA;AACJ,EAAA,MAAM,WAAW,IAAK,CAAA,MAAA;AACtB,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,QAAW,GAAA,EAAA;AACjB,EAAA,MAAM,SAAY,GAAA,OAAA,GAAU,OAAU,GAAA,CAAA,EAAG,QAAQ,CAAA,CAAA;AAEjD,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,YAAc,EAAA,UAAA;AAAA,IACd,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA,SAAA;AAAA,IAClB,kBAAA,EAAoB,UAAU,EAAK,GAAA;AAAA,GACrC;AACF;AAEA,SAAS,sBAAsB,KAAyB,EAAA;AACtD,EAAM,MAAA,EAAE,eAAkB,GAAA,KAAA;AAC1B,EAAA,IAAI,EAAE,WAAe,IAAA,aAAA,CAAA;AACnB,IAAA,OAAO,EAAC;AAEV,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,QAAW,GAAA,EAAA;AACjB,EAAM,MAAA,QAAA,GAAW,aAAc,CAAA,IAAA,GAAQ,aAAc,CAAA,IAAA,GAAO,KAAK,aAAc,CAAA,IAAA,GAAO,EAAK,GAAA,aAAA,CAAc,IAAQ,GAAA,CAAA;AACjH,EAAM,MAAA,SAAA,GAAY,cAAc,SAAa,IAAA,IAAA;AAE7C,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,WAAa,EAAA,MAAA;AAAA,IACb,YAAc,EAAA,OAAA;AAAA,IACd,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA;AAAA,GACpB;AACF;AAEA,SAAS,oBAAoB,MAA0B,EAAA;AACrD,EAAO,OAAA;AAAA,IACL,aAAe,EAAA,IAAA;AAAA,IACf,cAAgB,EAAA;AAAA,GAClB;AACF;AAEA,SAAS,qBAAqB,KAAyB,EAAA;AACrD,EAAO,OAAA;AAAA,IACL,MAAQ,EAAA,SAAA;AAAA,IACR,YAAc,EAAA,YAAA;AAAA,IACd,eAAiB,EAAA,IAAA;AAAA,IACjB,cAAgB,EAAA,cAAA;AAAA,IAChB,UAAA,EAAY,KAAM,CAAA,QAAA,GAAW,MAAY,GAAA,CAAA;AAAA,IACzC,OAAS,EAAA;AAAA,GACX;AACF;AAEA,SAAS,gBAAgB,KAAyB,EAAA;AAChD,EAAM,MAAA,EAAE,aAAe,EAAA,WAAA,EAAgB,GAAA,KAAA;AAEvC,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,QAAW,GAAA,CAAA;AACjB,EAAA,MAAM,SAAY,GAAA,KAAA,IAAS,aAAgB,GAAA,aAAA,CAAc,MAAM,WAAY,CAAA,GAAA;AAE3E,EAAO,OAAA;AAAA,IACL,GAAG,mBAAmB,KAAK,CAAA;AAAA,IAC3B,YAAc,EAAA,KAAA;AAAA,IACd,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,QAAA;AAAA,IACjB,gBAAkB,EAAA;AAAA,GACpB;AACF;AAEO,MAAM,eAAkB,GAAA;AAAA,EAC7B,GAAK,EAAA;AAAA,IACH,KAAO,EAAA;AAAA,GACT;AAAA,EACA,KAAO,EAAA;AAAA,IACL,KAAO,EAAA;AAAA,GACT;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,KAAO,EAAA;AAAA,GACT;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,KAAO,EAAA;AAAA,GACT;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA;AAAA,GACT;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA;AAAA,GACT;AAAA,EACA,SAAW,EAAA;AAAA,IACT,KAAO,EAAA;AAAA,GACT;AAAA,EACA,OAAS,EAAA;AAAA,IACP,KAAO,EAAA;AAAA,GACT;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,KAAO,EAAA;AAAA,GACT;AAAA,EACA,GAAK,EAAA;AAAA,IACH,KAAO,EAAA;AAAA;AAEX,CAAA;AAiBO,SAAS,aAAa,KAA0B,EAAA;AACrD,EAAA,MAAM,MAAM,MAAO,EAAA;AAEnB,EAAA,SAAS,2BAA2B,EAAE,CAAA,EAAG,IAAM,EAAA,OAAA,EAAS,WAAiD,EAAA;AACvG,IAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,IAAI,CAAK,IAAA,CAAA;AACvC,IAAA,MAAM,OAAO,CAAE,CAAA,GAAA,KAAQ,GAAI,CAAA,QAAA,GAAW,OAAO,CAAC,IAAA;AAC9C,IAAA,MAAM,GAAM,GAAA,CAAA;AACZ,IAAA,MAAM,GAAM,GAAA,EAAA;AAEZ,IAAA,IAAI,SAAc,KAAA,IAAA;AAChB,MAAO,OAAA,IAAA,GAAO,IAAI,GAAM,GAAA,GAAA;AAE1B,IAAM,MAAA,SAAA,GAAwC,CAAC,IAAA,EAAM,IAAI,CAAA;AACzD,IAAA,OAAQ,OAA6B,CAAA,GAAA,CAAI,EAAE,CAAC,IAAI,GAAG,SAAU,EAAC,CAAE,CAAA,KAAA,CAAM,GAAG,SAAS,EAAE,IAAI,CAAA;AAAA;AAG1F,EAAA,SAAS,YAAY,SAA0B,EAAA;AAC7C,IAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,IAAA,IAAI,SAAc,KAAA,IAAA;AAChB,MAAO,OAAA,SAAA;AAET,IAAM,MAAA,GAAA,GAAM,UAAU,QAAS,EAAA;AAC/B,IAAI,IAAA,GAAA,CAAI,WAAW,CAAG,EAAA;AACpB,MAAA,KAAA,CAAM,WAAW,KAAQ,GAAA,MAAA;AACzB,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,OAAO,OAAO,QAAS,CAAA,GAAA,CAAI,KAAM,CAAA,CAAA,EAAG,EAAE,CAAC,CAAA;AAAA;AAEzC,EAAA,SAAS,4BAA4B,EAAE,CAAA,EAAG,MAAM,OAAS,EAAA,SAAA,EAAW,WAAkD,EAAA;AACpH,IAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,IAAI,CAAK,IAAA,CAAA;AACvC,IAAA,MAAM,OAAO,CAAE,CAAA,GAAA,KAAQ,GAAI,CAAA,QAAA,GAAW,OAAO,CAAC,IAAA;AAE9C,IAAA,IAAI,SAAc,KAAA,IAAA;AAChB,MAAA,OAAO,QAAQ,IAAqC,CAAA;AAEtD,IAAI,IAAA,IAAA,KAAS,MAAU,IAAA,MAAA,IAAU,OAAS,EAAA;AACxC,MAAA,MAAMA,aAA8E,CAAC,IAAA,EAAM,IAAM,EAAA,EAAE,WAAW,CAAA;AAC9G,MAAA,OAAO,OAAQ,CAAA,GAAA,CAAI,EAAE,CAAC,IAAuB,GAAG,SAAU,EAAC,CAAE,CAAA,KAAA,CAAM,GAAGA,UAAS,EAAE,IAAI,CAAA;AAAA;AAGvF,IAAM,MAAA,SAAA,GAAwC,CAAC,IAAA,EAA0B,IAAI,CAAA;AAC7E,IAAA,IAAI,SAAS,KAAO,EAAA;AAClB,MAAA,OAAO,QAAQ,GAAI,CAAA;AAAA,QACjB,CAAC,IAAuB,GAAG,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAU3B,KAAO,EAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,KAAS,IAAA;AAAA,OAC3C,CAAE,CAAA,KAAA,CAAM,GAAG,SAAS,EAAE,IAAqC,CAAA;AAAA;AAG9D,IAAA,OAAO,OAAQ,CAAA,GAAA,CAAI,EAAE,CAAC,IAAuB,GAAG,SAAU,EAAC,CAAE,CAAA,KAAA,CAAM,GAAG,SAAS,EAAE,IAAqC,CAAA;AAAA;AAExH,EAAS,SAAA,gBAAA,CAAiB,GAAa,EAAA,GAAA,EAAa,IAAqB,EAAA;AACvE,IAAA,IAAI,UAAa,GAAA,KAAA;AACjB,IAAA,MAAM,QAAW,GAAA,IAAA,CAAK,KAAM,CAAA,GAAA,GAAM,EAAE,CAAA;AAOpC,IAAI,IAAA,KAAA,CAAM,aAAa,KAAO,EAAA;AAC5B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAO,IAAA,GAAA,IAAA;AAAA;AAGT,IAAA,IAAI,SAAS,IAAM,EAAA;AAOjB,MAAA,IAAI,QAAQ,CAAG,EAAA;AACb,QAAA,KAAA,CAAM,YAAY,KAAQ,GAAA,IAAA;AAC1B,QAAO,OAAA,EAAE,KAAO,EAAA,IAAA,EAAM,UAAW,EAAA;AAAA;AASnC,MAAA,IAAI,KAAM,CAAA,WAAA,CAAY,KAAS,IAAA,GAAA,GAAM,QAAU,EAAA;AAE7C,QAAa,UAAA,GAAA,IAAA;AAAA;AAEf,MAAA,KAAA,CAAM,YAAY,KAAQ,GAAA,KAAA;AAM1B,MAAO,OAAA,EAAE,KAAO,EAAA,GAAA,EAAK,UAAW,EAAA;AAAA;AASlC,IAAM,MAAA,MAAA,GAAS,IAAK,CAAA,QAAA,EAAW,CAAA,MAAA;AAC/B,IAAM,MAAA,KAAA,GAAQ,OAAO,QAAS,CAAA,IAAA,CAAK,UAAa,GAAA,GAAA,CAAI,UAAU,CAAA;AAQ9D,IAAI,IAAA,MAAA,KAAW,CAAK,IAAA,KAAA,GAAQ,GAAK,EAAA;AAM/B,MAAI,IAAA,GAAA,GAAM,QAAY,IAAA,KAAA,GAAQ,GAAK,EAAA;AAEjC,QAAa,UAAA,GAAA,IAAA;AAAA;AAEf,MAAO,OAAA,EAAE,KAAO,EAAA,GAAA,EAAK,UAAW,EAAA;AAAA;AAGlC,IAAa,UAAA,GAAA,IAAA;AACb,IAAO,OAAA,EAAE,KAAO,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA;AAGpC,EAAS,SAAA,oBAAA,CAAqB,KAAa,IAAqB,EAAA;AAC9D,IAAA,MAAM,GAAM,GAAA,EAAA;AACZ,IAAA,IAAI,UAAa,GAAA,KAAA;AACjB,IAAA,MAAM,QAAW,GAAA,IAAA,CAAK,KAAM,CAAA,GAAA,GAAM,EAAE,CAAA;AAOpC,IAAI,IAAA,KAAA,CAAM,aAAa,KAAO,EAAA;AAC5B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAO,IAAA,GAAA,IAAA;AAAA;AAGT,IAAA,IAAI,SAAS,IAAM,EAAA;AAOjB,MAAA,IAAI,QAAQ,CAAG,EAAA;AACb,QAAA,KAAA,CAAM,YAAY,KAAQ,GAAA,IAAA;AAC1B,QAAO,OAAA,EAAE,KAAO,EAAA,CAAA,EAAG,UAAW,EAAA;AAAA;AAShC,MAAA,IAAI,KAAM,CAAA,WAAA,CAAY,KAAS,IAAA,GAAA,GAAM,QAAU,EAAA;AAE7C,QAAa,UAAA,GAAA,IAAA;AAAA;AAEf,MAAA,KAAA,CAAM,YAAY,KAAQ,GAAA,KAAA;AAM1B,MAAO,OAAA,EAAE,KAAO,EAAA,GAAA,EAAK,UAAW,EAAA;AAAA;AASlC,IAAM,MAAA,MAAA,GAAS,IAAK,CAAA,QAAA,EAAW,CAAA,MAAA;AAC/B,IAAM,MAAA,KAAA,GAAQ,OAAO,QAAS,CAAA,IAAA,CAAK,UAAa,GAAA,GAAA,CAAI,UAAU,CAAA;AAS9D,IAAI,IAAA,MAAA,KAAW,CAAK,IAAA,KAAA,GAAQ,GAAK,EAAA;AAM/B,MAAA,IAAI,MAAM,QAAU,EAAA;AAElB,QAAa,UAAA,GAAA,IAAA;AAAA;AAEf,MAAO,OAAA,EAAE,KAAO,EAAA,GAAA,EAAK,UAAW,EAAA;AAAA;AAGlC,IAAa,UAAA,GAAA,IAAA;AACb,IAAO,OAAA,EAAE,KAAO,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA;AAGpC,EAAS,SAAA,UAAA,CAAW,KAAa,IAAqB,EAAA;AACpD,IAAA,MAAM,GAAM,GAAA,EAAA;AACZ,IAAA,IAAI,UAAa,GAAA,KAAA;AACjB,IAAA,MAAM,QAAW,GAAA,IAAA,CAAK,KAAM,CAAA,GAAA,GAAM,EAAE,CAAA;AAQpC,IAAI,IAAA,KAAA,CAAM,aAAa,KAAO,EAAA;AAC5B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAO,IAAA,GAAA,IAAA;AAAA;AAGT,IAAA,IAAI,SAAS,IAAM,EAAA;AAOjB,MAAA,IAAI,QAAQ,CAAG,EAAA;AACb,QAAA,KAAA,CAAM,YAAY,KAAQ,GAAA,IAAA;AAC1B,QAAO,OAAA,EAAE,KAAO,EAAA,CAAA,EAAG,UAAW,EAAA;AAAA;AAShC,MAAA,IAAI,KAAM,CAAA,WAAA,CAAY,KAAS,IAAA,GAAA,GAAM,QAAU,EAAA;AAE7C,QAAa,UAAA,GAAA,IAAA;AAAA;AAEf,MAAA,KAAA,CAAM,YAAY,KAAQ,GAAA,KAAA;AAM1B,MAAO,OAAA,EAAE,KAAO,EAAA,GAAA,EAAK,UAAW,EAAA;AAAA;AASlC,IAAM,MAAA,MAAA,GAAS,IAAK,CAAA,QAAA,EAAW,CAAA,MAAA;AAC/B,IAAM,MAAA,KAAA,GAAQ,OAAO,QAAS,CAAA,IAAA,CAAK,UAAa,GAAA,GAAA,CAAI,UAAU,CAAA;AAS9D,IAAI,IAAA,MAAA,KAAW,CAAK,IAAA,KAAA,GAAQ,GAAK,EAAA;AAM/B,MAAA,IAAI,MAAM,QAAU,EAAA;AAElB,QAAa,UAAA,GAAA,IAAA;AAAA;AAEf,MAAO,OAAA,EAAE,KAAO,EAAA,GAAA,EAAK,UAAW,EAAA;AAAA;AAGlC,IAAa,UAAA,GAAA,IAAA;AACb,IAAO,OAAA,EAAE,KAAO,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA;AAGpC,EAAS,SAAA,UAAA,CAAW,KAAa,IAAqB,EAAA;AACpD,IAAA,IAAI,UAAa,GAAA,KAAA;AAQjB,IAAI,IAAA,KAAA,CAAM,aAAa,KAAO,EAAA;AAC5B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAO,IAAA,GAAA,IAAA;AAAA;AAGT,IAAA,IAAI,IAAS,KAAA,IAAA;AACX,MAAA,OAAO,EAAE,KAAO,EAAA,GAAA,KAAQ,CAAI,GAAA,CAAA,GAAI,KAAK,UAAW,EAAA;AAElD,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,QAAS,EAAA,GAAI,IAAI,QAAS,EAAA;AAE3C,IAAA,IAAI,IAAI,MAAS,GAAA,CAAA;AACf,MAAA,OAAO,EAAE,KAAO,EAAA,GAAA,KAAQ,CAAI,GAAA,CAAA,GAAI,KAAK,UAAW,EAAA;AAElD,IAAA,IAAI,IAAI,MAAW,KAAA,CAAA;AACjB,MAAa,UAAA,GAAA,IAAA;AAEf,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,QAAA,CAAS,GAAG,CAAA;AAC/B,IAAO,OAAA,EAAE,KAAO,EAAA,GAAA,EAAK,UAAW,EAAA;AAAA;AAGlC,EAAA,MAAM,aAAa,QAAS,CAAA,MAAM,gBAAgB,KAAM,CAAA,IAAI,GAAG,KAAM,CAAA;AAAA,IACnE,QAAA,EAAU,MAAM,QAAS,CAAA,KAAA;AAAA,IACzB,WAAA,EAAa,MAAM,WAAY,CAAA,KAAA;AAAA,IAC/B,WAAW,KAAM,CAAA,SAAA;AAAA,IACjB,aAAA,EAAe,MAAM,aAAc,CAAA,KAAA;AAAA,IACnC,WAAW,KAAM,CAAA;AAAA,GAClB,CAAK,IAAA,EAAE,CAAA;AAGR,EAAA,SAAS,wBAAwB,CAAkB,EAAA;AACjD,IAAA,IAAI,CAAC,sBAAuB,CAAA,CAAA,CAAE,GAAG,CAAK,IAAA,sBAAA,CAAuB,EAAE,GAAG,CAAA;AAChE,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,GAAA;AAE5C,IAAA,IAAI,EAAE,GAAQ,KAAA,GAAA,CAAI,cAAc,CAAE,CAAA,GAAA,KAAQ,IAAI,QAAU,EAAA;AACtD,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,GAAM,GAAA,2BAAA,CAA4B,EAAE,CAAA,EAAG,IAAM,EAAA,KAAA,EAAO,OAAS,EAAA,KAAA,CAAM,WAAY,CAAA,KAAA,EAAO,WAAW,CAAA;AAC3H,MAAA;AAAA;AAGF,IAAI,IAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAG,EAAA;AACzB,MAAA,MAAM,GAAM,GAAA,MAAA,CAAO,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA;AACjC,MAAM,MAAA,iBAAA,GAAoB,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,KAAA;AAEpD,MAAA,MAAM,WAAc,GAAA,iBAAA,GAChB,cAAe,CAAA,KAAA,CAAM,WAAY,CAAA,KAAA,CAAM,GAAI,CAAA,EAAE,KAAO,EAAA,iBAAA,EAAmB,CAAC,CAGxE,GAAA,EAAA;AAEJ,MAAA,MAAM,EAAE,KAAO,EAAA,UAAA,KAAe,gBAAiB,CAAA,WAAA,EAAa,KAAK,SAAS,CAAA;AAE1E,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,GAAM,GAAA,KAAA;AAEhC,MAAI,IAAA,UAAA;AACF,QAAA,KAAA,CAAM,SAAU,EAAA;AAAA;AAGpB,IAAI,IAAA,CAAA,CAAE,GAAQ,KAAA,GAAA,CAAI,SAAW,EAAA;AAC3B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,GAAM,GAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AACvD;AAGF,EAAA,SAAS,0BAA0B,CAAkB,EAAA;AACnD,IAAA,IAAI,CAAC,sBAAuB,CAAA,CAAA,CAAE,GAAG,CAAK,IAAA,sBAAA,CAAuB,EAAE,GAAG,CAAA;AAChE,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,KAAA;AAE5C,IAAA,IAAI,EAAE,GAAQ,KAAA,GAAA,CAAI,cAAc,CAAE,CAAA,GAAA,KAAQ,IAAI,QAAU,EAAA;AACtD,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,KAAQ,GAAA,2BAAA,CAA4B,EAAE,CAAA,EAAG,IAAM,EAAA,OAAA,EAAS,OAAS,EAAA,KAAA,CAAM,WAAY,CAAA,KAAA,EAAO,WAAW,CAAA;AAC/H,MAAA;AAAA;AAGF,IAAI,IAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAG,EAAA;AACzB,MAAA,MAAM,GAAM,GAAA,MAAA,CAAO,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA;AACjC,MAAA,MAAM,EAAE,KAAO,EAAA,UAAA,KAAe,gBAAiB,CAAA,EAAA,EAAI,KAAK,SAAS,CAAA;AAEjE,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,KAAQ,GAAA,KAAA;AAElC,MAAI,IAAA,UAAA;AACF,QAAA,KAAA,CAAM,SAAU,EAAA;AAAA;AAGpB,IAAI,IAAA,CAAA,CAAE,GAAQ,KAAA,GAAA,CAAI,SAAW,EAAA;AAC3B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,KAAQ,GAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AACzD;AAGF,EAAA,SAAS,yBAAyB,CAAkB,EAAA;AAClD,IAAA,IAAI,CAAC,sBAAuB,CAAA,CAAA,CAAE,GAAG,CAAK,IAAA,sBAAA,CAAuB,EAAE,GAAG,CAAA;AAChE,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,IAAA;AAE5C,IAAA,IAAI,EAAE,GAAQ,KAAA,GAAA,CAAI,cAAc,CAAE,CAAA,GAAA,KAAQ,IAAI,QAAU,EAAA;AACtD,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,IAAO,GAAA,2BAAA,CAA4B,EAAE,CAAA,EAAG,IAAM,EAAA,MAAA,EAAQ,OAAS,EAAA,KAAA,CAAM,WAAY,CAAA,KAAA,EAAO,WAAW,CAAA;AAC7H,MAAA;AAAA;AAGF,IAAI,IAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAG,EAAA;AACzB,MAAA,MAAM,GAAM,GAAA,MAAA,CAAO,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA;AACjC,MAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,UAAA,CAAW,KAAK,SAAS,CAAA;AAEvD,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,IAAO,GAAA,KAAA;AAEjC,MAAI,IAAA,UAAA;AACF,QAAA,KAAA,CAAM,SAAU,EAAA;AAAA;AAGpB,IAAI,IAAA,CAAA,CAAE,GAAQ,KAAA,GAAA,CAAI,SAAW,EAAA;AAC3B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,IAAO,GAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AACxD;AAGF,EAAA,SAAS,yBAAyB,CAAkB,EAAA;AAClD,IAAM,MAAA,OAAA,GAAU,MAAM,WAAY,CAAA,KAAA;AAClC,IAAA,IAAI,CAAC,sBAAA,CAAuB,CAAE,CAAA,GAAG,KAAK,sBAAuB,CAAA,CAAA,CAAE,GAAG,CAAA,IAAK,EAAE,MAAU,IAAA,OAAA,CAAA,IAAY,EAAE,MAAA,IAAU,MAAM,aAAc,CAAA,KAAA,CAAA;AAC7H,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,IAAA;AAE5C,IAAA,MAAM,YAAY,KAAM,CAAA,SAAA;AAExB,IAAA,IAAI,EAAE,GAAQ,KAAA,GAAA,CAAI,YAAY,CAAE,CAAA,GAAA,KAAQ,IAAI,UAAY,EAAA;AACtD,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,IAAO,GAAA,2BAAA,CAA4B,EAAE,CAAG,EAAA,IAAA,EAAM,MAAQ,EAAA,OAAA,EAAS,KAAM,CAAA,WAAA,CAAY,KAAO,EAAA,SAAA,EAAW,WAAW,CAAA;AAExI,MAAI,IAAA,WAAA,IAAe,KAAM,CAAA,aAAA,CAAc,KAAO,EAAA;AAC5C,QAAI,IAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,IAAO,GAAA,EAAA;AACnC,UAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AAAA,aAC/B,IAAA,KAAA,CAAM,cAAc,KAAM,CAAA,IAAA;AACjC,UAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AAAA;AAG1C,MAAA;AAAA;AAGF,IAAI,IAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAG,EAAA;AACzB,MAAA,MAAM,GAAM,GAAA,MAAA,CAAO,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA;AACjC,MAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,UAAA,CAAW,KAAK,SAAS,CAAA;AAEvD,MAAA,IAAI,WAAe,IAAA,KAAA,CAAM,aAAc,CAAA,KAAA,IAAS,SAAS,KAAQ,GAAA,EAAA;AAC/D,QAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AAAA,WAC/B,IAAA,WAAA,IAAe,KAAM,CAAA,aAAA,CAAc,KAAS,IAAA,KAAA;AACnD,QAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AAExC,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,IAAO,GAAA,KAAA;AAEjC,MAAI,IAAA,UAAA;AACF,QAAA,KAAA,CAAM,SAAU,EAAA;AAAA;AAGpB,IAAI,IAAA,CAAA,CAAE,GAAQ,KAAA,GAAA,CAAI,SAAW,EAAA;AAC3B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,IAAO,GAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AACxD;AAGF,EAAA,SAAS,2BAA2B,CAAkB,EAAA;AACpD,IAAM,MAAA,OAAA,GAAU,MAAM,WAAY,CAAA,KAAA;AAElC,IAAA,IAAI,CAAC,sBAAA,CAAuB,CAAE,CAAA,GAAG,KAAK,sBAAuB,CAAA,CAAA,CAAE,GAAG,CAAA,IAAK,EAAE,QAAY,IAAA,OAAA,CAAA,IAAY,EAAE,QAAA,IAAY,MAAM,aAAc,CAAA,KAAA,CAAA;AACjI,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,MAAA;AAE5C,IAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,MAAS,GAAA,0BAAA,CAA2B,EAAE,CAAA,EAAG,IAAM,EAAA,QAAA,EAAU,OAAS,EAAA,KAAA,CAAM,WAAY,CAAA,KAAA,EAAO,WAAW,CAAA;AAEhI,IAAI,IAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAG,EAAA;AACzB,MAAA,MAAM,GAAM,GAAA,MAAA,CAAO,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA;AAEjC,MAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,oBAAA,CAAqB,KAAK,SAAS,CAAA;AAEjE,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,MAAS,GAAA,KAAA;AAEnC,MAAI,IAAA,UAAA;AACF,QAAA,KAAA,CAAM,SAAU,EAAA;AAAA;AAGpB,IAAI,IAAA,CAAA,CAAE,GAAQ,KAAA,GAAA,CAAI,SAAW,EAAA;AAC3B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,MAAS,GAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AAC1D;AAGF,EAAA,SAAS,2BAA2B,CAAkB,EAAA;AACpD,IAAM,MAAA,OAAA,GAAU,MAAM,WAAY,CAAA,KAAA;AAElC,IAAA,IAAI,CAAC,sBAAA,CAAuB,CAAE,CAAA,GAAG,KAAK,sBAAuB,CAAA,CAAA,CAAE,GAAG,CAAA,IAAK,EAAE,QAAY,IAAA,OAAA,CAAA,IAAY,EAAE,QAAA,IAAY,MAAM,aAAc,CAAA,KAAA,CAAA;AACjI,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,MAAA;AAE5C,IAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,MAAS,GAAA,0BAAA,CAA2B,EAAE,CAAA,EAAG,IAAM,EAAA,QAAA,EAAU,OAAS,EAAA,KAAA,CAAM,WAAY,CAAA,KAAA,EAAO,WAAW,CAAA;AAEhI,IAAI,IAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAG,EAAA;AACzB,MAAA,MAAM,GAAM,GAAA,MAAA,CAAO,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA;AACjC,MAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,oBAAA,CAAqB,KAAK,SAAS,CAAA;AAEjE,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,MAAS,GAAA,KAAA;AAEnC,MAAI,IAAA,UAAA;AACF,QAAA,KAAA,CAAM,SAAU,EAAA;AAAA;AAGpB,IAAI,IAAA,CAAA,CAAE,GAAQ,KAAA,GAAA,CAAI,SAAW,EAAA;AAC3B,MAAA,KAAA,CAAM,aAAa,KAAQ,GAAA,KAAA;AAC3B,MAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,MAAS,GAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AAC1D;AAGF,EAAA,SAAS,8BAA8B,CAAkB,EAAA;AACvD,IAAM,IAAA,CAAA,CAAC,uBAAuB,CAAE,CAAA,GAAG,KAAK,sBAAuB,CAAA,CAAA,CAAE,GAAG,CAAA,KAAM,CAAE,CAAA,GAAA,KAAQ,OAAO,CAAE,CAAA,GAAA,KAAQ,GAAQ,IAAA,EAAE,MAAU,IAAA,KAAA,CAAM,YAAY,KAAU,CAAA,IAAA,EAAE,WAAe,IAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAA;AACxL,MAAA;AAEF,IAAA,IAAI,EAAE,GAAQ,KAAA,GAAA,CAAI,YAAY,CAAE,CAAA,GAAA,KAAQ,IAAI,UAAY,EAAA;AACtD,MAAA,IAAI,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,SAAA,KAAc,IAAM,EAAA;AAChD,QAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AACtC,QAAA,KAAA,CAAM,cAAc,KAAM,CAAA,IAAA,GAAO,KAAM,CAAA,aAAA,CAAc,MAAM,IAAQ,GAAA,EAAA;AACnE,QAAA;AAAA;AAEF,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AACtC,MAAA,KAAA,CAAM,cAAc,KAAM,CAAA,IAAA,GAAO,KAAM,CAAA,aAAA,CAAc,MAAM,IAAQ,GAAA,EAAA;AACnE,MAAA;AAAA;AAGF,IAAA,IAAI,CAAC,GAAA,EAAK,GAAG,CAAA,CAAE,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA,IAAK,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,SAAA,KAAc,IAAM,EAAA;AAC9E,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AACtC,MAAA,KAAA,CAAM,cAAc,KAAM,CAAA,IAAA,GAAO,KAAM,CAAA,aAAA,CAAc,MAAM,IAAQ,GAAA,EAAA;AACnE,MAAA;AAAA;AAGF,IAAA,IAAI,CAAC,GAAA,EAAK,GAAG,CAAA,CAAE,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA,IAAK,KAAM,CAAA,aAAA,CAAc,KAAM,CAAA,SAAA,KAAc,IAAM,EAAA;AAC9E,MAAM,KAAA,CAAA,aAAA,CAAc,MAAM,SAAY,GAAA,IAAA;AACtC,MAAA,KAAA,CAAM,cAAc,KAAM,CAAA,IAAA,GAAO,KAAM,CAAA,aAAA,CAAc,MAAM,IAAQ,GAAA,EAAA;AAAA;AACrE;AAGF,EAAA,SAAS,mBAAmB,CAAe,EAAA;AACzC,IAAM,MAAA,QAAA,GAAW,MAAM,QAAS,CAAA,KAAA;AAChC,IAAI,IAAA,QAAA;AACF,MAAA,CAAA,CAAE,cAAe,EAAA;AAAA;AAGrB,EAAA,SAAS,qBAAqB,CAAkB,EAAA;AAC9C,IAAM,MAAA,QAAA,GAAW,MAAM,QAAS,CAAA,KAAA;AAChC,IAAM,MAAA,QAAA,GAAW,MAAM,QAAS,CAAA,KAAA;AAChC,IAAI,IAAA,CAAA,CAAE,QAAQ,GAAI,CAAA,GAAA;AAChB,MAAA,CAAA,CAAE,cAAe,EAAA;AAEnB,IAAA,IAAI,QAAY,IAAA,QAAA;AACd,MAAA;AACF,IAAA,MAAM,sBAAyB,GAAA;AAAA,MAC7B,GAAK,EAAA,uBAAA;AAAA,MACL,KAAO,EAAA,yBAAA;AAAA,MACP,IAAM,EAAA,wBAAA;AAAA,MACN,IAAM,EAAA,wBAAA;AAAA,MACN,MAAQ,EAAA,0BAAA;AAAA,MACR,MAAQ,EAAA,0BAAA;AAAA,MACR,SAAW,EAAA,6BAAA;AAAA,MACX,cAAc,MAAM;AAAA;AAAC,KACvB;AAEA,IAAuB,sBAAA,CAAA,KAAA,CAAM,IAA2C,CAAA,CAAE,CAAC,CAAA;AAE3E,IAAI,IAAA,CAAC,CAAC,GAAI,CAAA,UAAA,EAAY,IAAI,WAAW,CAAA,CAAE,QAAS,CAAA,CAAA,CAAE,GAAG,CAAA,IAAK,EAAE,GAAQ,KAAA,GAAA,CAAI,OAAO,CAAE,CAAA,GAAA,KAAQ,IAAI,KAAS,IAAA,sBAAA,CAAuB,CAAE,CAAA,GAAG,CAAG,EAAA;AACnI,MAAI,IAAA,MAAA,CAAO,MAAO,CAAA,KAAA,CAAM,aAAc,CAAA,KAAK,EAAE,KAAM,CAAA,CAAA,IAAA,KAAQ,IAAS,KAAA,IAAI,CAAG,EAAA;AACzE,QAAA,MAAM,YAAe,GAAA,EAAE,GAAG,KAAA,CAAM,cAAc,KAA0C,EAAA;AAExF,QAAA,IAAI,OAAU,GAAA,KAAA,CAAM,WAAY,CAAA,KAAA,CAAM,IAAK,EAAA;AAE3C,QAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AAC1C,UAAM,MAAA,KAAA,GAAQ,aAAa,IAAwB,CAAA;AACnD,UAAA,OAAA,GAAU,QAAQ,GAAI,CAAA,EAAE,CAAC,IAAI,GAAG,OAAO,CAAA;AAAA,SACxC,CAAA;AAED,QAAM,KAAA,CAAA,UAAA,CAAW,KAAQ,GAAA,OAAA,CAAQ,IAAK,EAAA;AAAA;AACxC;AACF;AAGF,EAAO,OAAA;AAAA,IACL,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
package/dist/date/utils.cjs
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
const defu = require('defu');
|
|
4
|
+
|
|
3
5
|
function chunk(arr, size) {
|
|
4
6
|
const result = [];
|
|
5
7
|
for (let i = 0; i < arr.length; i += size)
|
|
@@ -16,8 +18,8 @@ function getOptsByGranularity(granularity, hourCycle, isTimeValue = false) {
|
|
|
16
18
|
minute: "2-digit",
|
|
17
19
|
second: "2-digit",
|
|
18
20
|
timeZoneName: "short",
|
|
19
|
-
hourCycle: hourCycle
|
|
20
|
-
hour12: hourCycle
|
|
21
|
+
hourCycle: normalizeHourCycle(hourCycle),
|
|
22
|
+
hour12: normalizeHour12(hourCycle)
|
|
21
23
|
};
|
|
22
24
|
if (isTimeValue) {
|
|
23
25
|
delete opts.year;
|
|
@@ -38,6 +40,17 @@ function getOptsByGranularity(granularity, hourCycle, isTimeValue = false) {
|
|
|
38
40
|
delete opts.second;
|
|
39
41
|
return opts;
|
|
40
42
|
}
|
|
43
|
+
function normalizeDateStep(props) {
|
|
44
|
+
return defu.defu(props?.step, {
|
|
45
|
+
year: 1,
|
|
46
|
+
month: 1,
|
|
47
|
+
day: 1,
|
|
48
|
+
hour: 1,
|
|
49
|
+
minute: 1,
|
|
50
|
+
second: 1,
|
|
51
|
+
millisecond: 1
|
|
52
|
+
});
|
|
53
|
+
}
|
|
41
54
|
function handleCalendarInitialFocus(calendar) {
|
|
42
55
|
const selectedDay = calendar.querySelector("[data-selected]");
|
|
43
56
|
if (selectedDay)
|
|
@@ -49,8 +62,24 @@ function handleCalendarInitialFocus(calendar) {
|
|
|
49
62
|
if (firstDay)
|
|
50
63
|
return firstDay.focus();
|
|
51
64
|
}
|
|
65
|
+
function normalizeHourCycle(hourCycle) {
|
|
66
|
+
if (hourCycle === 24)
|
|
67
|
+
return "h23";
|
|
68
|
+
if (hourCycle === 12)
|
|
69
|
+
return "h11";
|
|
70
|
+
return void 0;
|
|
71
|
+
}
|
|
72
|
+
function normalizeHour12(hourCycle) {
|
|
73
|
+
if (hourCycle === 24)
|
|
74
|
+
return false;
|
|
75
|
+
if (hourCycle === 12)
|
|
76
|
+
return true;
|
|
77
|
+
return void 0;
|
|
78
|
+
}
|
|
52
79
|
|
|
53
80
|
exports.chunk = chunk;
|
|
54
81
|
exports.getOptsByGranularity = getOptsByGranularity;
|
|
55
82
|
exports.handleCalendarInitialFocus = handleCalendarInitialFocus;
|
|
83
|
+
exports.normalizeDateStep = normalizeDateStep;
|
|
84
|
+
exports.normalizeHourCycle = normalizeHourCycle;
|
|
56
85
|
//# sourceMappingURL=utils.cjs.map
|
package/dist/date/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../src/date/utils.ts","../../src/shared/date/utils.ts"],"sourcesContent":["/**\n * Splits an array into chunks of a given size.\n * @param arr The array to split.\n * @param size The size of each chunk.\n * @returns An array of arrays, where each sub-array has `size` elements from the original array.\n * @example ```ts\n * const arr = [1, 2, 3, 4, 5, 6, 7, 8];\n * const chunks = chunk(arr, 3);\n * // chunks = [[1, 2, 3], [4, 5, 6], [7, 8]]\n * ```\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n const result = []\n for (let i = 0; i < arr.length; i += size)\n result.push(arr.slice(i, i + size))\n\n return result\n}\n","import type { Granularity } from './comparators'\nimport type { HourCycle } from './types'\n\nexport function getOptsByGranularity(granularity: Granularity, hourCycle: HourCycle, isTimeValue: boolean = false) {\n const opts: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n timeZoneName: 'short',\n hourCycle: hourCycle
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../src/date/utils.ts","../../src/shared/date/utils.ts"],"sourcesContent":["/**\n * Splits an array into chunks of a given size.\n * @param arr The array to split.\n * @param size The size of each chunk.\n * @returns An array of arrays, where each sub-array has `size` elements from the original array.\n * @example ```ts\n * const arr = [1, 2, 3, 4, 5, 6, 7, 8];\n * const chunks = chunk(arr, 3);\n * // chunks = [[1, 2, 3], [4, 5, 6], [7, 8]]\n * ```\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n const result = []\n for (let i = 0; i < arr.length; i += size)\n result.push(arr.slice(i, i + size))\n\n return result\n}\n","import type { Granularity } from './comparators'\nimport type { DateStep, HourCycle } from './types'\nimport { defu } from 'defu'\n\nexport function getOptsByGranularity(granularity: Granularity, hourCycle: HourCycle, isTimeValue: boolean = false) {\n const opts: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n timeZoneName: 'short',\n hourCycle: normalizeHourCycle(hourCycle),\n hour12: normalizeHour12(hourCycle),\n }\n if (isTimeValue) {\n delete opts.year\n delete opts.month\n delete opts.day\n }\n\n if (granularity === 'day') {\n delete opts.second\n delete opts.hour\n delete opts.minute\n delete opts.timeZoneName\n }\n if (granularity === 'hour') {\n delete opts.minute\n delete opts.second\n }\n\n if (granularity === 'minute')\n delete opts.second\n\n return opts\n}\n\ntype GetDefaultDateStepProps = {\n step?: DateStep\n}\n\nexport function normalizeDateStep(props?: GetDefaultDateStepProps): DateStep {\n return defu(props?.step, {\n year: 1,\n month: 1,\n day: 1,\n hour: 1,\n minute: 1,\n second: 1,\n millisecond: 1,\n } satisfies DateStep)\n}\n\nexport function handleCalendarInitialFocus(calendar: HTMLElement) {\n const selectedDay = calendar.querySelector<HTMLElement>('[data-selected]')\n if (selectedDay)\n return selectedDay.focus()\n\n const today = calendar.querySelector<HTMLElement>('[data-today]')\n if (today)\n return today.focus()\n\n const firstDay = calendar.querySelector<HTMLElement>('[data-reka-calendar-day]')\n if (firstDay)\n return firstDay.focus()\n}\n\nexport function normalizeHourCycle(hourCycle: HourCycle) {\n if (hourCycle === 24)\n return 'h23'\n if (hourCycle === 12)\n return 'h11'\n return undefined\n}\n\nexport function normalizeHour12(hourCycle: HourCycle) {\n if (hourCycle === 24)\n return false\n if (hourCycle === 12)\n return true\n return undefined\n}\n"],"names":["defu"],"mappings":"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"}
|
package/dist/date/utils.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { defu } from 'defu';
|
|
2
|
+
|
|
1
3
|
function chunk(arr, size) {
|
|
2
4
|
const result = [];
|
|
3
5
|
for (let i = 0; i < arr.length; i += size)
|
|
@@ -14,8 +16,8 @@ function getOptsByGranularity(granularity, hourCycle, isTimeValue = false) {
|
|
|
14
16
|
minute: "2-digit",
|
|
15
17
|
second: "2-digit",
|
|
16
18
|
timeZoneName: "short",
|
|
17
|
-
hourCycle: hourCycle
|
|
18
|
-
hour12: hourCycle
|
|
19
|
+
hourCycle: normalizeHourCycle(hourCycle),
|
|
20
|
+
hour12: normalizeHour12(hourCycle)
|
|
19
21
|
};
|
|
20
22
|
if (isTimeValue) {
|
|
21
23
|
delete opts.year;
|
|
@@ -36,6 +38,17 @@ function getOptsByGranularity(granularity, hourCycle, isTimeValue = false) {
|
|
|
36
38
|
delete opts.second;
|
|
37
39
|
return opts;
|
|
38
40
|
}
|
|
41
|
+
function normalizeDateStep(props) {
|
|
42
|
+
return defu(props?.step, {
|
|
43
|
+
year: 1,
|
|
44
|
+
month: 1,
|
|
45
|
+
day: 1,
|
|
46
|
+
hour: 1,
|
|
47
|
+
minute: 1,
|
|
48
|
+
second: 1,
|
|
49
|
+
millisecond: 1
|
|
50
|
+
});
|
|
51
|
+
}
|
|
39
52
|
function handleCalendarInitialFocus(calendar) {
|
|
40
53
|
const selectedDay = calendar.querySelector("[data-selected]");
|
|
41
54
|
if (selectedDay)
|
|
@@ -47,6 +60,20 @@ function handleCalendarInitialFocus(calendar) {
|
|
|
47
60
|
if (firstDay)
|
|
48
61
|
return firstDay.focus();
|
|
49
62
|
}
|
|
63
|
+
function normalizeHourCycle(hourCycle) {
|
|
64
|
+
if (hourCycle === 24)
|
|
65
|
+
return "h23";
|
|
66
|
+
if (hourCycle === 12)
|
|
67
|
+
return "h11";
|
|
68
|
+
return void 0;
|
|
69
|
+
}
|
|
70
|
+
function normalizeHour12(hourCycle) {
|
|
71
|
+
if (hourCycle === 24)
|
|
72
|
+
return false;
|
|
73
|
+
if (hourCycle === 12)
|
|
74
|
+
return true;
|
|
75
|
+
return void 0;
|
|
76
|
+
}
|
|
50
77
|
|
|
51
|
-
export { chunk as c, getOptsByGranularity as g, handleCalendarInitialFocus as h };
|
|
78
|
+
export { normalizeDateStep as a, chunk as c, getOptsByGranularity as g, handleCalendarInitialFocus as h, normalizeHourCycle as n };
|
|
52
79
|
//# sourceMappingURL=utils.js.map
|
package/dist/date/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../src/date/utils.ts","../../src/shared/date/utils.ts"],"sourcesContent":["/**\n * Splits an array into chunks of a given size.\n * @param arr The array to split.\n * @param size The size of each chunk.\n * @returns An array of arrays, where each sub-array has `size` elements from the original array.\n * @example ```ts\n * const arr = [1, 2, 3, 4, 5, 6, 7, 8];\n * const chunks = chunk(arr, 3);\n * // chunks = [[1, 2, 3], [4, 5, 6], [7, 8]]\n * ```\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n const result = []\n for (let i = 0; i < arr.length; i += size)\n result.push(arr.slice(i, i + size))\n\n return result\n}\n","import type { Granularity } from './comparators'\nimport type { HourCycle } from './types'\n\nexport function getOptsByGranularity(granularity: Granularity, hourCycle: HourCycle, isTimeValue: boolean = false) {\n const opts: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n timeZoneName: 'short',\n hourCycle: hourCycle
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/date/utils.ts","../../src/shared/date/utils.ts"],"sourcesContent":["/**\n * Splits an array into chunks of a given size.\n * @param arr The array to split.\n * @param size The size of each chunk.\n * @returns An array of arrays, where each sub-array has `size` elements from the original array.\n * @example ```ts\n * const arr = [1, 2, 3, 4, 5, 6, 7, 8];\n * const chunks = chunk(arr, 3);\n * // chunks = [[1, 2, 3], [4, 5, 6], [7, 8]]\n * ```\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n const result = []\n for (let i = 0; i < arr.length; i += size)\n result.push(arr.slice(i, i + size))\n\n return result\n}\n","import type { Granularity } from './comparators'\nimport type { DateStep, HourCycle } from './types'\nimport { defu } from 'defu'\n\nexport function getOptsByGranularity(granularity: Granularity, hourCycle: HourCycle, isTimeValue: boolean = false) {\n const opts: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n timeZoneName: 'short',\n hourCycle: normalizeHourCycle(hourCycle),\n hour12: normalizeHour12(hourCycle),\n }\n if (isTimeValue) {\n delete opts.year\n delete opts.month\n delete opts.day\n }\n\n if (granularity === 'day') {\n delete opts.second\n delete opts.hour\n delete opts.minute\n delete opts.timeZoneName\n }\n if (granularity === 'hour') {\n delete opts.minute\n delete opts.second\n }\n\n if (granularity === 'minute')\n delete opts.second\n\n return opts\n}\n\ntype GetDefaultDateStepProps = {\n step?: DateStep\n}\n\nexport function normalizeDateStep(props?: GetDefaultDateStepProps): DateStep {\n return defu(props?.step, {\n year: 1,\n month: 1,\n day: 1,\n hour: 1,\n minute: 1,\n second: 1,\n millisecond: 1,\n } satisfies DateStep)\n}\n\nexport function handleCalendarInitialFocus(calendar: HTMLElement) {\n const selectedDay = calendar.querySelector<HTMLElement>('[data-selected]')\n if (selectedDay)\n return selectedDay.focus()\n\n const today = calendar.querySelector<HTMLElement>('[data-today]')\n if (today)\n return today.focus()\n\n const firstDay = calendar.querySelector<HTMLElement>('[data-reka-calendar-day]')\n if (firstDay)\n return firstDay.focus()\n}\n\nexport function normalizeHourCycle(hourCycle: HourCycle) {\n if (hourCycle === 24)\n return 'h23'\n if (hourCycle === 12)\n return 'h11'\n return undefined\n}\n\nexport function normalizeHour12(hourCycle: HourCycle) {\n if (hourCycle === 24)\n return false\n if (hourCycle === 12)\n return true\n return undefined\n}\n"],"names":[],"mappings":"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"}
|