@cdx-ui/primitives 0.0.1-beta.140 → 0.0.1-beta.141
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/lib/commonjs/calendar/CalendarGrid.js +33 -0
- package/lib/commonjs/calendar/CalendarGrid.js.map +1 -0
- package/lib/commonjs/calendar/CalendarRoot.js +95 -0
- package/lib/commonjs/calendar/CalendarRoot.js.map +1 -0
- package/lib/commonjs/calendar/context.js +17 -0
- package/lib/commonjs/calendar/context.js.map +1 -0
- package/lib/commonjs/calendar/index.js +27 -0
- package/lib/commonjs/calendar/index.js.map +1 -0
- package/lib/commonjs/calendar/types.js +6 -0
- package/lib/commonjs/calendar/types.js.map +1 -0
- package/lib/commonjs/date-field/DateFieldHiddenInput.js +148 -0
- package/lib/commonjs/date-field/DateFieldHiddenInput.js.map +1 -0
- package/lib/commonjs/date-field/DateFieldInput.js +122 -0
- package/lib/commonjs/date-field/DateFieldInput.js.map +1 -0
- package/lib/commonjs/date-field/DateFieldRoot.js +85 -0
- package/lib/commonjs/date-field/DateFieldRoot.js.map +1 -0
- package/lib/commonjs/date-field/DateFieldSegment.js +92 -0
- package/lib/commonjs/date-field/DateFieldSegment.js.map +1 -0
- package/lib/commonjs/date-field/context.js +19 -0
- package/lib/commonjs/date-field/context.js.map +1 -0
- package/lib/commonjs/date-field/index.js +34 -0
- package/lib/commonjs/date-field/index.js.map +1 -0
- package/lib/commonjs/date-field/segmentIndex.js +23 -0
- package/lib/commonjs/date-field/segmentIndex.js.map +1 -0
- package/lib/commonjs/date-field/segmentKeyboard.js +169 -0
- package/lib/commonjs/date-field/segmentKeyboard.js.map +1 -0
- package/lib/commonjs/date-field/types.js +6 -0
- package/lib/commonjs/date-field/types.js.map +1 -0
- package/lib/commonjs/date-field/useDateFieldSegmentState.js +381 -0
- package/lib/commonjs/date-field/useDateFieldSegmentState.js.map +1 -0
- package/lib/commonjs/date-field/useRangeDateFieldBridge.js +67 -0
- package/lib/commonjs/date-field/useRangeDateFieldBridge.js.map +1 -0
- package/lib/commonjs/date-picker/DatePickerRoot.js +123 -0
- package/lib/commonjs/date-picker/DatePickerRoot.js.map +1 -0
- package/lib/commonjs/date-picker/context.js +17 -0
- package/lib/commonjs/date-picker/context.js.map +1 -0
- package/lib/commonjs/date-picker/index.js +26 -0
- package/lib/commonjs/date-picker/index.js.map +1 -0
- package/lib/commonjs/date-range-picker/DateRangePickerRoot.js +144 -0
- package/lib/commonjs/date-range-picker/DateRangePickerRoot.js.map +1 -0
- package/lib/commonjs/date-range-picker/context.js +23 -0
- package/lib/commonjs/date-range-picker/context.js.map +1 -0
- package/lib/commonjs/date-range-picker/index.js +26 -0
- package/lib/commonjs/date-range-picker/index.js.map +1 -0
- package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js +150 -0
- package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
- package/lib/commonjs/date-time-field/DateTimeFieldInput.js +104 -0
- package/lib/commonjs/date-time-field/DateTimeFieldInput.js.map +1 -0
- package/lib/commonjs/date-time-field/DateTimeFieldRoot.js +159 -0
- package/lib/commonjs/date-time-field/DateTimeFieldRoot.js.map +1 -0
- package/lib/commonjs/date-time-field/DateTimeFieldSegment.js +87 -0
- package/lib/commonjs/date-time-field/DateTimeFieldSegment.js.map +1 -0
- package/lib/commonjs/date-time-field/context.js +17 -0
- package/lib/commonjs/date-time-field/context.js.map +1 -0
- package/lib/commonjs/date-time-field/index.js +40 -0
- package/lib/commonjs/date-time-field/index.js.map +1 -0
- package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js +564 -0
- package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
- package/lib/commonjs/date-time-list/DateTimeListRoot.js +418 -0
- package/lib/commonjs/date-time-list/DateTimeListRoot.js.map +1 -0
- package/lib/commonjs/date-time-list/context.js +26 -0
- package/lib/commonjs/date-time-list/context.js.map +1 -0
- package/lib/commonjs/date-time-list/index.js +62 -0
- package/lib/commonjs/date-time-list/index.js.map +1 -0
- package/lib/commonjs/date-time-picker/DateTimePickerRoot.js +134 -0
- package/lib/commonjs/date-time-picker/DateTimePickerRoot.js.map +1 -0
- package/lib/commonjs/date-time-picker/context.js +17 -0
- package/lib/commonjs/date-time-picker/context.js.map +1 -0
- package/lib/commonjs/date-time-picker/index.js +26 -0
- package/lib/commonjs/date-time-picker/index.js.map +1 -0
- package/lib/commonjs/dialog/DialogRoot.js +1 -1
- package/lib/commonjs/dialog/DialogRoot.js.map +1 -1
- package/lib/commonjs/index.js +148 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/month-calendar/MonthCalendarCell.js +64 -0
- package/lib/commonjs/month-calendar/MonthCalendarCell.js.map +1 -0
- package/lib/commonjs/month-calendar/MonthCalendarRoot.js +103 -0
- package/lib/commonjs/month-calendar/MonthCalendarRoot.js.map +1 -0
- package/lib/commonjs/month-calendar/MonthCalendarYearCell.js +63 -0
- package/lib/commonjs/month-calendar/MonthCalendarYearCell.js.map +1 -0
- package/lib/commonjs/month-calendar/context.js +17 -0
- package/lib/commonjs/month-calendar/context.js.map +1 -0
- package/lib/commonjs/month-calendar/index.js +34 -0
- package/lib/commonjs/month-calendar/index.js.map +1 -0
- package/lib/commonjs/month-picker/MonthPickerRoot.js +118 -0
- package/lib/commonjs/month-picker/MonthPickerRoot.js.map +1 -0
- package/lib/commonjs/month-picker/context.js +17 -0
- package/lib/commonjs/month-picker/context.js.map +1 -0
- package/lib/commonjs/month-picker/index.js +26 -0
- package/lib/commonjs/month-picker/index.js.map +1 -0
- package/lib/commonjs/overlay/useAnchorPosition.js +27 -16
- package/lib/commonjs/overlay/useAnchorPosition.js.map +1 -1
- package/lib/commonjs/overlay/useDismissOverlay.web.js +10 -2
- package/lib/commonjs/overlay/useDismissOverlay.web.js.map +1 -1
- package/lib/commonjs/overlay/useOverlayPosition.js +5 -2
- package/lib/commonjs/overlay/useOverlayPosition.js.map +1 -1
- package/lib/commonjs/portal/portal.js +59 -2
- package/lib/commonjs/portal/portal.js.map +1 -1
- package/lib/commonjs/range-calendar/RangeCalendarRoot.js +148 -0
- package/lib/commonjs/range-calendar/RangeCalendarRoot.js.map +1 -0
- package/lib/commonjs/range-calendar/context.js +17 -0
- package/lib/commonjs/range-calendar/context.js.map +1 -0
- package/lib/commonjs/range-calendar/index.js +20 -0
- package/lib/commonjs/range-calendar/index.js.map +1 -0
- package/lib/commonjs/select/SelectRoot.js +1 -1
- package/lib/commonjs/select/SelectRoot.js.map +1 -1
- package/lib/commonjs/utils/accessibleLabel.js +23 -0
- package/lib/commonjs/utils/accessibleLabel.js.map +1 -0
- package/lib/commonjs/utils/createPortal.web.js +21 -0
- package/lib/commonjs/utils/createPortal.web.js.map +1 -0
- package/lib/module/calendar/CalendarGrid.js +29 -0
- package/lib/module/calendar/CalendarGrid.js.map +1 -0
- package/lib/module/calendar/CalendarRoot.js +91 -0
- package/lib/module/calendar/CalendarRoot.js.map +1 -0
- package/lib/module/calendar/context.js +12 -0
- package/lib/module/calendar/context.js.map +1 -0
- package/lib/module/calendar/index.js +6 -0
- package/lib/module/calendar/index.js.map +1 -0
- package/lib/module/calendar/types.js +4 -0
- package/lib/module/calendar/types.js.map +1 -0
- package/lib/module/date-field/DateFieldHiddenInput.js +146 -0
- package/lib/module/date-field/DateFieldHiddenInput.js.map +1 -0
- package/lib/module/date-field/DateFieldInput.js +118 -0
- package/lib/module/date-field/DateFieldInput.js.map +1 -0
- package/lib/module/date-field/DateFieldRoot.js +81 -0
- package/lib/module/date-field/DateFieldRoot.js.map +1 -0
- package/lib/module/date-field/DateFieldSegment.js +88 -0
- package/lib/module/date-field/DateFieldSegment.js.map +1 -0
- package/lib/module/date-field/context.js +15 -0
- package/lib/module/date-field/context.js.map +1 -0
- package/lib/module/date-field/index.js +7 -0
- package/lib/module/date-field/index.js.map +1 -0
- package/lib/module/date-field/segmentIndex.js +18 -0
- package/lib/module/date-field/segmentIndex.js.map +1 -0
- package/lib/module/date-field/segmentKeyboard.js +157 -0
- package/lib/module/date-field/segmentKeyboard.js.map +1 -0
- package/lib/module/date-field/types.js +4 -0
- package/lib/module/date-field/types.js.map +1 -0
- package/lib/module/date-field/useDateFieldSegmentState.js +378 -0
- package/lib/module/date-field/useDateFieldSegmentState.js.map +1 -0
- package/lib/module/date-field/useRangeDateFieldBridge.js +63 -0
- package/lib/module/date-field/useRangeDateFieldBridge.js.map +1 -0
- package/lib/module/date-picker/DatePickerRoot.js +119 -0
- package/lib/module/date-picker/DatePickerRoot.js.map +1 -0
- package/lib/module/date-picker/context.js +12 -0
- package/lib/module/date-picker/context.js.map +1 -0
- package/lib/module/date-picker/index.js +5 -0
- package/lib/module/date-picker/index.js.map +1 -0
- package/lib/module/date-range-picker/DateRangePickerRoot.js +140 -0
- package/lib/module/date-range-picker/DateRangePickerRoot.js.map +1 -0
- package/lib/module/date-range-picker/context.js +19 -0
- package/lib/module/date-range-picker/context.js.map +1 -0
- package/lib/module/date-range-picker/index.js +5 -0
- package/lib/module/date-range-picker/index.js.map +1 -0
- package/lib/module/date-time-field/DateTimeFieldHiddenInput.js +148 -0
- package/lib/module/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
- package/lib/module/date-time-field/DateTimeFieldInput.js +100 -0
- package/lib/module/date-time-field/DateTimeFieldInput.js.map +1 -0
- package/lib/module/date-time-field/DateTimeFieldRoot.js +154 -0
- package/lib/module/date-time-field/DateTimeFieldRoot.js.map +1 -0
- package/lib/module/date-time-field/DateTimeFieldSegment.js +83 -0
- package/lib/module/date-time-field/DateTimeFieldSegment.js.map +1 -0
- package/lib/module/date-time-field/context.js +12 -0
- package/lib/module/date-time-field/context.js.map +1 -0
- package/lib/module/date-time-field/index.js +7 -0
- package/lib/module/date-time-field/index.js.map +1 -0
- package/lib/module/date-time-field/useDateTimeFieldSegmentState.js +561 -0
- package/lib/module/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
- package/lib/module/date-time-list/DateTimeListRoot.js +416 -0
- package/lib/module/date-time-list/DateTimeListRoot.js.map +1 -0
- package/lib/module/date-time-list/context.js +20 -0
- package/lib/module/date-time-list/context.js.map +1 -0
- package/lib/module/date-time-list/index.js +5 -0
- package/lib/module/date-time-list/index.js.map +1 -0
- package/lib/module/date-time-picker/DateTimePickerRoot.js +130 -0
- package/lib/module/date-time-picker/DateTimePickerRoot.js.map +1 -0
- package/lib/module/date-time-picker/context.js +12 -0
- package/lib/module/date-time-picker/context.js.map +1 -0
- package/lib/module/date-time-picker/index.js +5 -0
- package/lib/module/date-time-picker/index.js.map +1 -0
- package/lib/module/dialog/DialogRoot.js +1 -1
- package/lib/module/dialog/DialogRoot.js.map +1 -1
- package/lib/module/index.js +11 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/month-calendar/MonthCalendarCell.js +60 -0
- package/lib/module/month-calendar/MonthCalendarCell.js.map +1 -0
- package/lib/module/month-calendar/MonthCalendarRoot.js +99 -0
- package/lib/module/month-calendar/MonthCalendarRoot.js.map +1 -0
- package/lib/module/month-calendar/MonthCalendarYearCell.js +59 -0
- package/lib/module/month-calendar/MonthCalendarYearCell.js.map +1 -0
- package/lib/module/month-calendar/context.js +12 -0
- package/lib/module/month-calendar/context.js.map +1 -0
- package/lib/module/month-calendar/index.js +7 -0
- package/lib/module/month-calendar/index.js.map +1 -0
- package/lib/module/month-picker/MonthPickerRoot.js +114 -0
- package/lib/module/month-picker/MonthPickerRoot.js.map +1 -0
- package/lib/module/month-picker/context.js +12 -0
- package/lib/module/month-picker/context.js.map +1 -0
- package/lib/module/month-picker/index.js +5 -0
- package/lib/module/month-picker/index.js.map +1 -0
- package/lib/module/overlay/useAnchorPosition.js +27 -16
- package/lib/module/overlay/useAnchorPosition.js.map +1 -1
- package/lib/module/overlay/useDismissOverlay.web.js +9 -2
- package/lib/module/overlay/useDismissOverlay.web.js.map +1 -1
- package/lib/module/overlay/useOverlayPosition.js +5 -2
- package/lib/module/overlay/useOverlayPosition.js.map +1 -1
- package/lib/module/portal/portal.js +59 -2
- package/lib/module/portal/portal.js.map +1 -1
- package/lib/module/range-calendar/RangeCalendarRoot.js +144 -0
- package/lib/module/range-calendar/RangeCalendarRoot.js.map +1 -0
- package/lib/module/range-calendar/context.js +12 -0
- package/lib/module/range-calendar/context.js.map +1 -0
- package/lib/module/range-calendar/index.js +5 -0
- package/lib/module/range-calendar/index.js.map +1 -0
- package/lib/module/select/SelectRoot.js +1 -1
- package/lib/module/select/SelectRoot.js.map +1 -1
- package/lib/module/utils/accessibleLabel.js +18 -0
- package/lib/module/utils/accessibleLabel.js.map +1 -0
- package/lib/module/utils/createPortal.web.js +17 -0
- package/lib/module/utils/createPortal.web.js.map +1 -0
- package/lib/typescript/calendar/CalendarGrid.d.ts +7 -0
- package/lib/typescript/calendar/CalendarGrid.d.ts.map +1 -0
- package/lib/typescript/calendar/CalendarRoot.d.ts +10 -0
- package/lib/typescript/calendar/CalendarRoot.d.ts.map +1 -0
- package/lib/typescript/calendar/context.d.ts +18 -0
- package/lib/typescript/calendar/context.d.ts.map +1 -0
- package/lib/typescript/calendar/index.d.ts +5 -0
- package/lib/typescript/calendar/index.d.ts.map +1 -0
- package/lib/typescript/calendar/types.d.ts +29 -0
- package/lib/typescript/calendar/types.d.ts.map +1 -0
- package/lib/typescript/date-field/DateFieldHiddenInput.d.ts +4 -0
- package/lib/typescript/date-field/DateFieldHiddenInput.d.ts.map +1 -0
- package/lib/typescript/date-field/DateFieldInput.d.ts +8 -0
- package/lib/typescript/date-field/DateFieldInput.d.ts.map +1 -0
- package/lib/typescript/date-field/DateFieldRoot.d.ts +10 -0
- package/lib/typescript/date-field/DateFieldRoot.d.ts.map +1 -0
- package/lib/typescript/date-field/DateFieldSegment.d.ts +9 -0
- package/lib/typescript/date-field/DateFieldSegment.d.ts.map +1 -0
- package/lib/typescript/date-field/context.d.ts +33 -0
- package/lib/typescript/date-field/context.d.ts.map +1 -0
- package/lib/typescript/date-field/index.d.ts +9 -0
- package/lib/typescript/date-field/index.d.ts.map +1 -0
- package/lib/typescript/date-field/segmentIndex.d.ts +7 -0
- package/lib/typescript/date-field/segmentIndex.d.ts.map +1 -0
- package/lib/typescript/date-field/segmentKeyboard.d.ts +23 -0
- package/lib/typescript/date-field/segmentKeyboard.d.ts.map +1 -0
- package/lib/typescript/date-field/types.d.ts +38 -0
- package/lib/typescript/date-field/types.d.ts.map +1 -0
- package/lib/typescript/date-field/useDateFieldSegmentState.d.ts +26 -0
- package/lib/typescript/date-field/useDateFieldSegmentState.d.ts.map +1 -0
- package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts +4 -0
- package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts.map +1 -0
- package/lib/typescript/date-picker/DatePickerRoot.d.ts +28 -0
- package/lib/typescript/date-picker/DatePickerRoot.d.ts.map +1 -0
- package/lib/typescript/date-picker/context.d.ts +25 -0
- package/lib/typescript/date-picker/context.d.ts.map +1 -0
- package/lib/typescript/date-picker/index.d.ts +5 -0
- package/lib/typescript/date-picker/index.d.ts.map +1 -0
- package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts +43 -0
- package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts.map +1 -0
- package/lib/typescript/date-range-picker/context.d.ts +42 -0
- package/lib/typescript/date-range-picker/context.d.ts.map +1 -0
- package/lib/typescript/date-range-picker/index.d.ts +4 -0
- package/lib/typescript/date-range-picker/index.d.ts.map +1 -0
- package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts +4 -0
- package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts.map +1 -0
- package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts +10 -0
- package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts.map +1 -0
- package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts +24 -0
- package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts.map +1 -0
- package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts +10 -0
- package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts.map +1 -0
- package/lib/typescript/date-time-field/context.d.ts +27 -0
- package/lib/typescript/date-time-field/context.d.ts.map +1 -0
- package/lib/typescript/date-time-field/index.d.ts +8 -0
- package/lib/typescript/date-time-field/index.d.ts.map +1 -0
- package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts +26 -0
- package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts.map +1 -0
- package/lib/typescript/date-time-list/DateTimeListRoot.d.ts +42 -0
- package/lib/typescript/date-time-list/DateTimeListRoot.d.ts.map +1 -0
- package/lib/typescript/date-time-list/context.d.ts +29 -0
- package/lib/typescript/date-time-list/context.d.ts.map +1 -0
- package/lib/typescript/date-time-list/index.d.ts +4 -0
- package/lib/typescript/date-time-list/index.d.ts.map +1 -0
- package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts +36 -0
- package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts.map +1 -0
- package/lib/typescript/date-time-picker/context.d.ts +25 -0
- package/lib/typescript/date-time-picker/context.d.ts.map +1 -0
- package/lib/typescript/date-time-picker/index.d.ts +4 -0
- package/lib/typescript/date-time-picker/index.d.ts.map +1 -0
- package/lib/typescript/dialog/types.d.ts +2 -1
- package/lib/typescript/dialog/types.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +11 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/month-calendar/MonthCalendarCell.d.ts +9 -0
- package/lib/typescript/month-calendar/MonthCalendarCell.d.ts.map +1 -0
- package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts +30 -0
- package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts.map +1 -0
- package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts +9 -0
- package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts.map +1 -0
- package/lib/typescript/month-calendar/context.d.ts +20 -0
- package/lib/typescript/month-calendar/context.d.ts.map +1 -0
- package/lib/typescript/month-calendar/index.d.ts +7 -0
- package/lib/typescript/month-calendar/index.d.ts.map +1 -0
- package/lib/typescript/month-picker/MonthPickerRoot.d.ts +29 -0
- package/lib/typescript/month-picker/MonthPickerRoot.d.ts.map +1 -0
- package/lib/typescript/month-picker/context.d.ts +23 -0
- package/lib/typescript/month-picker/context.d.ts.map +1 -0
- package/lib/typescript/month-picker/index.d.ts +4 -0
- package/lib/typescript/month-picker/index.d.ts.map +1 -0
- package/lib/typescript/overlay/useAnchorPosition.d.ts.map +1 -1
- package/lib/typescript/overlay/useDismissOverlay.web.d.ts.map +1 -1
- package/lib/typescript/overlay/useOverlayPosition.d.ts.map +1 -1
- package/lib/typescript/portal/portal.d.ts.map +1 -1
- package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts +34 -0
- package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts.map +1 -0
- package/lib/typescript/range-calendar/context.d.ts +26 -0
- package/lib/typescript/range-calendar/context.d.ts.map +1 -0
- package/lib/typescript/range-calendar/index.d.ts +5 -0
- package/lib/typescript/range-calendar/index.d.ts.map +1 -0
- package/lib/typescript/select/types.d.ts +2 -1
- package/lib/typescript/select/types.d.ts.map +1 -1
- package/lib/typescript/utils/accessibleLabel.d.ts +13 -0
- package/lib/typescript/utils/accessibleLabel.d.ts.map +1 -0
- package/lib/typescript/utils/createPortal.web.d.ts +17 -0
- package/lib/typescript/utils/createPortal.web.d.ts.map +1 -0
- package/package.json +3 -2
- package/src/calendar/CalendarGrid.tsx +29 -0
- package/src/calendar/CalendarRoot.tsx +138 -0
- package/src/calendar/context.tsx +28 -0
- package/src/calendar/index.ts +4 -0
- package/src/calendar/types.ts +30 -0
- package/src/date-field/DateFieldHiddenInput.tsx +152 -0
- package/src/date-field/DateFieldInput.tsx +138 -0
- package/src/date-field/DateFieldRoot.tsx +117 -0
- package/src/date-field/DateFieldSegment.tsx +97 -0
- package/src/date-field/context.tsx +48 -0
- package/src/date-field/index.ts +8 -0
- package/src/date-field/segmentIndex.tsx +17 -0
- package/src/date-field/segmentKeyboard.ts +207 -0
- package/src/date-field/types.ts +40 -0
- package/src/date-field/useDateFieldSegmentState.ts +455 -0
- package/src/date-field/useRangeDateFieldBridge.ts +78 -0
- package/src/date-picker/DatePickerRoot.tsx +186 -0
- package/src/date-picker/context.tsx +34 -0
- package/src/date-picker/index.ts +4 -0
- package/src/date-range-picker/DateRangePickerRoot.tsx +236 -0
- package/src/date-range-picker/context.tsx +48 -0
- package/src/date-range-picker/index.ts +8 -0
- package/src/date-time-field/DateTimeFieldHiddenInput.tsx +156 -0
- package/src/date-time-field/DateTimeFieldInput.tsx +119 -0
- package/src/date-time-field/DateTimeFieldRoot.tsx +209 -0
- package/src/date-time-field/DateTimeFieldSegment.tsx +95 -0
- package/src/date-time-field/context.tsx +41 -0
- package/src/date-time-field/index.ts +7 -0
- package/src/date-time-field/useDateTimeFieldSegmentState.ts +672 -0
- package/src/date-time-list/DateTimeListRoot.tsx +530 -0
- package/src/date-time-list/context.tsx +45 -0
- package/src/date-time-list/index.ts +16 -0
- package/src/date-time-picker/DateTimePickerRoot.tsx +210 -0
- package/src/date-time-picker/context.tsx +33 -0
- package/src/date-time-picker/index.ts +7 -0
- package/src/dialog/DialogRoot.tsx +1 -1
- package/src/dialog/types.ts +2 -1
- package/src/index.ts +21 -2
- package/src/month-calendar/MonthCalendarCell.tsx +53 -0
- package/src/month-calendar/MonthCalendarRoot.tsx +153 -0
- package/src/month-calendar/MonthCalendarYearCell.tsx +54 -0
- package/src/month-calendar/context.tsx +30 -0
- package/src/month-calendar/index.ts +6 -0
- package/src/month-picker/MonthPickerRoot.tsx +183 -0
- package/src/month-picker/context.tsx +31 -0
- package/src/month-picker/index.ts +3 -0
- package/src/overlay/useAnchorPosition.ts +25 -11
- package/src/overlay/useDismissOverlay.web.ts +10 -2
- package/src/overlay/useOverlayPosition.ts +5 -2
- package/src/portal/portal.tsx +79 -2
- package/src/range-calendar/RangeCalendarRoot.tsx +213 -0
- package/src/range-calendar/context.tsx +33 -0
- package/src/range-calendar/index.ts +4 -0
- package/src/select/SelectRoot.tsx +1 -1
- package/src/select/types.ts +2 -1
- package/src/utils/accessibleLabel.ts +22 -0
- package/src/utils/createPortal.web.ts +18 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DateFieldSegment = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _formatters = require("@cdx-ui/formatters");
|
|
10
|
+
var _slot = require("../slot");
|
|
11
|
+
var _dataAttributes = require("../utils/dataAttributes");
|
|
12
|
+
var _context = require("./context");
|
|
13
|
+
var _segmentIndex = require("./segmentIndex");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
const DateFieldSegment = exports.DateFieldSegment = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
16
|
+
asChild,
|
|
17
|
+
segment,
|
|
18
|
+
segmentIndex: segmentIndexProp,
|
|
19
|
+
style,
|
|
20
|
+
...props
|
|
21
|
+
}, ref) => {
|
|
22
|
+
const contextSegmentIndex = (0, _segmentIndex.useDateFieldSegmentIndex)();
|
|
23
|
+
const segmentIndex = segmentIndexProp ?? contextSegmentIndex;
|
|
24
|
+
const {
|
|
25
|
+
disabled,
|
|
26
|
+
readOnly,
|
|
27
|
+
focusedSegmentIndex,
|
|
28
|
+
focusSegment,
|
|
29
|
+
getSegmentDisplayText,
|
|
30
|
+
labels
|
|
31
|
+
} = (0, _context.useDateFieldContext)();
|
|
32
|
+
const isFocused = focusedSegmentIndex === segmentIndex;
|
|
33
|
+
const displayText = getSegmentDisplayText(segmentIndex);
|
|
34
|
+
const handlePress = (0, _react.useCallback)(() => {
|
|
35
|
+
focusSegment(segmentIndex);
|
|
36
|
+
}, [focusSegment, segmentIndex]);
|
|
37
|
+
|
|
38
|
+
// On web, prevent the Pressable from taking focus so the hidden TextInput
|
|
39
|
+
// can keep keyboard ownership after the tap.
|
|
40
|
+
const preventWebFocusSteal = (0, _react.useCallback)(event => {
|
|
41
|
+
if (_reactNative.Platform.OS !== 'web') {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const maybeDom = event;
|
|
45
|
+
maybeDom.preventDefault?.();
|
|
46
|
+
}, []);
|
|
47
|
+
const dataProps = (0, _dataAttributes.mergeDataAttributes)(props, (0, _dataAttributes.dataAttributes)({
|
|
48
|
+
slot: 'date-field-segment',
|
|
49
|
+
focus: isFocused,
|
|
50
|
+
placeholder: segment.text === displayText && !segment.value
|
|
51
|
+
}));
|
|
52
|
+
if (segment.isEditable && !asChild) {
|
|
53
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
54
|
+
accessibilityRole: "spinbutton",
|
|
55
|
+
accessibilityLabel: (0, _formatters.getDateSegmentAccessibilityLabel)(segment.type, labels),
|
|
56
|
+
accessibilityState: {
|
|
57
|
+
disabled,
|
|
58
|
+
selected: isFocused
|
|
59
|
+
},
|
|
60
|
+
disabled: disabled || readOnly,
|
|
61
|
+
onPress: handlePress,
|
|
62
|
+
onPressIn: preventWebFocusSteal
|
|
63
|
+
// Keep segments above the invisible keyboard input for hit-testing.
|
|
64
|
+
,
|
|
65
|
+
style: [{
|
|
66
|
+
zIndex: 1
|
|
67
|
+
}, style],
|
|
68
|
+
...props,
|
|
69
|
+
...dataProps,
|
|
70
|
+
...(_reactNative.Platform.OS === 'web' ? {
|
|
71
|
+
onMouseDown: e => {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
}
|
|
74
|
+
} : null),
|
|
75
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
76
|
+
children: displayText
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const Comp = asChild ? _slot.Slot : _reactNative.Text;
|
|
81
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
|
|
82
|
+
ref: ref,
|
|
83
|
+
style: style,
|
|
84
|
+
...props,
|
|
85
|
+
...dataProps,
|
|
86
|
+
accessibilityRole: "text",
|
|
87
|
+
importantForAccessibility: "no",
|
|
88
|
+
children: displayText
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
DateFieldSegment.displayName = 'DateFieldSegment';
|
|
92
|
+
//# sourceMappingURL=DateFieldSegment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_formatters","_slot","_dataAttributes","_context","_segmentIndex","_jsxRuntime","DateFieldSegment","exports","forwardRef","asChild","segment","segmentIndex","segmentIndexProp","style","props","ref","contextSegmentIndex","useDateFieldSegmentIndex","disabled","readOnly","focusedSegmentIndex","focusSegment","getSegmentDisplayText","labels","useDateFieldContext","isFocused","displayText","handlePress","useCallback","preventWebFocusSteal","event","Platform","OS","maybeDom","preventDefault","dataProps","mergeDataAttributes","dataAttributes","slot","focus","placeholder","text","value","isEditable","jsx","Pressable","accessibilityRole","accessibilityLabel","getDateSegmentAccessibilityLabel","type","accessibilityState","selected","onPress","onPressIn","zIndex","onMouseDown","e","children","Text","Comp","Slot","importantForAccessibility","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldSegment.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DateFieldContext = void 0;
|
|
7
|
+
exports.useDateFieldContext = useDateFieldContext;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
/** A `DateField` carries a `DateId` in date mode and a `MonthId` in month mode. */
|
|
10
|
+
|
|
11
|
+
const DateFieldContext = exports.DateFieldContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
12
|
+
function useDateFieldContext() {
|
|
13
|
+
const ctx = (0, _react.useContext)(DateFieldContext);
|
|
14
|
+
if (!ctx) {
|
|
15
|
+
throw new Error('DateField compound components must be used within DateFieldRoot');
|
|
16
|
+
}
|
|
17
|
+
return ctx;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","DateFieldContext","exports","createContext","useDateFieldContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["date-field/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA;;AA8BO,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,gBAAG,IAAAE,oBAAa,EAA+B,IAAI,CAAC;AAE1E,SAASC,mBAAmBA,CAAA,EAA0B;EAC3D,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACL,gBAAgB,CAAC;EACxC,IAAI,CAACI,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,iEAAiE,CAAC;EACpF;EACA,OAAOF,GAAG;AACZ","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "DateFieldInput", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _DateFieldInput.DateFieldInput;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "DateFieldRoot", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _DateFieldRoot.DateFieldRoot;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "DateFieldSegment", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _DateFieldSegment.DateFieldSegment;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "useDateFieldContext", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _context.useDateFieldContext;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var _DateFieldRoot = require("./DateFieldRoot");
|
|
31
|
+
var _DateFieldInput = require("./DateFieldInput");
|
|
32
|
+
var _DateFieldSegment = require("./DateFieldSegment");
|
|
33
|
+
var _context = require("./context");
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_DateFieldRoot","require","_DateFieldInput","_DateFieldSegment","_context"],"sourceRoot":"../../../src","sources":["date-field/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DateFieldSegmentIndexProvider = DateFieldSegmentIndexProvider;
|
|
7
|
+
exports.useDateFieldSegmentIndex = useDateFieldSegmentIndex;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
const SegmentIndexContext = /*#__PURE__*/(0, _react.createContext)(0);
|
|
11
|
+
function DateFieldSegmentIndexProvider({
|
|
12
|
+
index,
|
|
13
|
+
children
|
|
14
|
+
}) {
|
|
15
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(SegmentIndexContext.Provider, {
|
|
16
|
+
value: index,
|
|
17
|
+
children: children
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function useDateFieldSegmentIndex() {
|
|
21
|
+
return (0, _react.useContext)(SegmentIndexContext);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=segmentIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_jsxRuntime","SegmentIndexContext","createContext","DateFieldSegmentIndexProvider","index","children","jsx","Provider","value","useDateFieldSegmentIndex","useContext"],"sourceRoot":"../../../src","sources":["date-field/segmentIndex.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAkE,IAAAC,WAAA,GAAAD,OAAA;AAElE,MAAME,mBAAmB,gBAAG,IAAAC,oBAAa,EAAS,CAAC,CAAC;AAE7C,SAASC,6BAA6BA,CAAC;EAC5CC,KAAK;EACLC;AAIF,CAAC,EAAE;EACD,oBAAO,IAAAL,WAAA,CAAAM,GAAA,EAACL,mBAAmB,CAACM,QAAQ;IAACC,KAAK,EAAEJ,KAAM;IAAAC,QAAA,EAAEA;EAAQ,CAA+B,CAAC;AAC9F;AAEO,SAASI,wBAAwBA,CAAA,EAAW;EACjD,OAAO,IAAAC,iBAAU,EAACT,mBAAmB,CAAC;AACxC","ignoreList":[]}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SEGMENT_MAX_LENGTH = void 0;
|
|
7
|
+
exports.applySegmentDigit = applySegmentDigit;
|
|
8
|
+
exports.commitDayPeriodDraft = commitDayPeriodDraft;
|
|
9
|
+
exports.commitSegmentDraft = commitSegmentDraft;
|
|
10
|
+
exports.findAdjacentEditableIndex = findAdjacentEditableIndex;
|
|
11
|
+
exports.getSegmentMaxLength = getSegmentMaxLength;
|
|
12
|
+
exports.isSegmentDraftComplete = isSegmentDraftComplete;
|
|
13
|
+
exports.toHour12 = toHour12;
|
|
14
|
+
exports.toHour24 = toHour24;
|
|
15
|
+
var _formatters = require("@cdx-ui/formatters");
|
|
16
|
+
const SEGMENT_MAX_LENGTH = exports.SEGMENT_MAX_LENGTH = {
|
|
17
|
+
month: 2,
|
|
18
|
+
day: 2,
|
|
19
|
+
year: 4,
|
|
20
|
+
hour: 2,
|
|
21
|
+
minute: 2,
|
|
22
|
+
second: 2,
|
|
23
|
+
dayPeriod: 1
|
|
24
|
+
};
|
|
25
|
+
function getSegmentMaxLength(type) {
|
|
26
|
+
return SEGMENT_MAX_LENGTH[type] ?? 4;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** True when another digit cannot produce a different valid value (auto-advance). */
|
|
30
|
+
function isSegmentDraftComplete(type, draft, options) {
|
|
31
|
+
if (!draft) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const maxLength = getSegmentMaxLength(type);
|
|
35
|
+
if (draft.length >= maxLength) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
const value = Number(draft);
|
|
39
|
+
if (Number.isNaN(value)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Month 1-12: 2-9 cannot be a leading digit of a two-digit month.
|
|
44
|
+
if (type === 'month') {
|
|
45
|
+
return value >= 2 && value <= 9;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Day 1-31: 4-9 cannot be a leading digit of a two-digit day.
|
|
49
|
+
if (type === 'day') {
|
|
50
|
+
return value >= 4 && value <= 9;
|
|
51
|
+
}
|
|
52
|
+
if (type === 'hour') {
|
|
53
|
+
if (options?.hour12) {
|
|
54
|
+
return value >= 2 && value <= 9;
|
|
55
|
+
}
|
|
56
|
+
// 0-23: 3-9 cannot start a valid two-digit hour.
|
|
57
|
+
return value >= 3 && value <= 9;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Minute / second 0-59: 6-9 cannot start a valid two-digit value.
|
|
61
|
+
if (type === 'minute' || type === 'second') {
|
|
62
|
+
return value >= 6 && value <= 9;
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
function isValidSegmentDraft(type, draft, options) {
|
|
67
|
+
if (!draft) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
const value = Number(draft);
|
|
71
|
+
if (Number.isNaN(value)) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (type === 'month') {
|
|
75
|
+
if (draft.length === 1) {
|
|
76
|
+
return value >= 0 && value <= 9;
|
|
77
|
+
}
|
|
78
|
+
return value >= 1 && value <= 12;
|
|
79
|
+
}
|
|
80
|
+
if (type === 'day') {
|
|
81
|
+
if (draft.length === 1) {
|
|
82
|
+
return value >= 0 && value <= 9;
|
|
83
|
+
}
|
|
84
|
+
return value >= 1 && value <= 31;
|
|
85
|
+
}
|
|
86
|
+
if (type === 'year') {
|
|
87
|
+
return draft.length <= 4;
|
|
88
|
+
}
|
|
89
|
+
if (type === 'hour') {
|
|
90
|
+
if (draft.length === 1) {
|
|
91
|
+
return value >= 0 && value <= 9;
|
|
92
|
+
}
|
|
93
|
+
if (options?.hour12) {
|
|
94
|
+
return value >= 1 && value <= 12;
|
|
95
|
+
}
|
|
96
|
+
return value >= 0 && value <= 23;
|
|
97
|
+
}
|
|
98
|
+
if (type === 'minute' || type === 'second') {
|
|
99
|
+
if (draft.length === 1) {
|
|
100
|
+
return value >= 0 && value <= 9;
|
|
101
|
+
}
|
|
102
|
+
return value >= 0 && value <= 59;
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
function applySegmentDigit(draft, _committedText, isDraftDirty, digit, type, options) {
|
|
107
|
+
const maxLength = getSegmentMaxLength(type);
|
|
108
|
+
const base = isDraftDirty ? draft : '';
|
|
109
|
+
const candidate = `${base}${digit}`.slice(0, maxLength + 1);
|
|
110
|
+
|
|
111
|
+
// e.g. month "1" + "5" → invalid 15: commit 1, spill 5 into day.
|
|
112
|
+
if (base.length > 0 && candidate.length <= maxLength && !isValidSegmentDraft(type, candidate, options) && isValidSegmentDraft(type, base, options) && Number(base) >= 1) {
|
|
113
|
+
return {
|
|
114
|
+
draft: base,
|
|
115
|
+
isDraftDirty: true,
|
|
116
|
+
shouldCommit: true,
|
|
117
|
+
spillDigit: digit
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
const nextDraft = candidate.slice(0, maxLength);
|
|
121
|
+
if (!isValidSegmentDraft(type, nextDraft, options)) {
|
|
122
|
+
// Replace with the new digit alone (e.g. starting fresh).
|
|
123
|
+
return {
|
|
124
|
+
draft: digit,
|
|
125
|
+
isDraftDirty: true,
|
|
126
|
+
shouldCommit: isSegmentDraftComplete(type, digit, options)
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
draft: nextDraft,
|
|
131
|
+
isDraftDirty: true,
|
|
132
|
+
shouldCommit: isSegmentDraftComplete(type, nextDraft, options)
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function commitSegmentDraft(segment, draft) {
|
|
136
|
+
const parsed = (0, _formatters.parseDateSegment)(segment.type, draft || segment.text);
|
|
137
|
+
return parsed;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** Parses day-period input (`A`/`P`/`1`/`2`) into 0 (AM) or 1 (PM). */
|
|
141
|
+
function commitDayPeriodDraft(draft) {
|
|
142
|
+
const trimmed = draft.trim().toLowerCase();
|
|
143
|
+
if (!trimmed) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
if (trimmed === 'a' || trimmed === 'am' || trimmed === '1') {
|
|
147
|
+
return 0;
|
|
148
|
+
}
|
|
149
|
+
if (trimmed === 'p' || trimmed === 'pm' || trimmed === '2') {
|
|
150
|
+
return 1;
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
function findAdjacentEditableIndex(segments, fromIndex, direction) {
|
|
155
|
+
for (let i = fromIndex + direction; direction < 0 ? i >= 0 : i < segments.length; i += direction) {
|
|
156
|
+
if (segments[i]?.isEditable) {
|
|
157
|
+
return i;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
function toHour24(hour12, period) {
|
|
163
|
+
const normalized = hour12 % 12;
|
|
164
|
+
return normalized + (period === 1 ? 12 : 0);
|
|
165
|
+
}
|
|
166
|
+
function toHour12(hour24) {
|
|
167
|
+
return hour24 % 12 || 12;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=segmentKeyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_formatters","require","SEGMENT_MAX_LENGTH","exports","month","day","year","hour","minute","second","dayPeriod","getSegmentMaxLength","type","isSegmentDraftComplete","draft","options","maxLength","length","value","Number","isNaN","hour12","isValidSegmentDraft","applySegmentDigit","_committedText","isDraftDirty","digit","base","candidate","slice","shouldCommit","spillDigit","nextDraft","commitSegmentDraft","segment","parsed","parseDateSegment","text","commitDayPeriodDraft","trimmed","trim","toLowerCase","findAdjacentEditableIndex","segments","fromIndex","direction","i","isEditable","toHour24","period","normalized","toHour12","hour24"],"sourceRoot":"../../../src","sources":["date-field/segmentKeyboard.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["date-field/types.ts"],"mappings":"","ignoreList":[]}
|