react-native-agenda-kit 0.1.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/LICENSE +21 -0
- package/README.md +364 -0
- package/lib/commonjs/agenda/AgendaBackdrop.js +68 -0
- package/lib/commonjs/agenda/AgendaBackdrop.js.map +1 -0
- package/lib/commonjs/agenda/AgendaList.js +354 -0
- package/lib/commonjs/agenda/AgendaList.js.map +1 -0
- package/lib/commonjs/agenda/AgendaSlot.js +88 -0
- package/lib/commonjs/agenda/AgendaSlot.js.map +1 -0
- package/lib/commonjs/agenda/AgendaWindow.js +171 -0
- package/lib/commonjs/agenda/AgendaWindow.js.map +1 -0
- package/lib/commonjs/agenda/StickyHeaderOverlay.js +125 -0
- package/lib/commonjs/agenda/StickyHeaderOverlay.js.map +1 -0
- package/lib/commonjs/agenda/buildAgendaLayout.js +100 -0
- package/lib/commonjs/agenda/buildAgendaLayout.js.map +1 -0
- package/lib/commonjs/agenda/constants.js +29 -0
- package/lib/commonjs/agenda/constants.js.map +1 -0
- package/lib/commonjs/agenda/heights.js +49 -0
- package/lib/commonjs/agenda/heights.js.map +1 -0
- package/lib/commonjs/agenda/useAgendaScrollSync.js +204 -0
- package/lib/commonjs/agenda/useAgendaScrollSync.js.map +1 -0
- package/lib/commonjs/core/ArrowGlyph.js +65 -0
- package/lib/commonjs/core/ArrowGlyph.js.map +1 -0
- package/lib/commonjs/core/CalendarContext.js +32 -0
- package/lib/commonjs/core/CalendarContext.js.map +1 -0
- package/lib/commonjs/core/CalendarProvider.js +141 -0
- package/lib/commonjs/core/CalendarProvider.js.map +1 -0
- package/lib/commonjs/core/CalendarStore.js +70 -0
- package/lib/commonjs/core/CalendarStore.js.map +1 -0
- package/lib/commonjs/core/KitText.js +23 -0
- package/lib/commonjs/core/KitText.js.map +1 -0
- package/lib/commonjs/core/TodayButton.js +136 -0
- package/lib/commonjs/core/TodayButton.js.map +1 -0
- package/lib/commonjs/core/civil.js +101 -0
- package/lib/commonjs/core/civil.js.map +1 -0
- package/lib/commonjs/core/dateKey.js +56 -0
- package/lib/commonjs/core/dateKey.js.map +1 -0
- package/lib/commonjs/core/motion.js +56 -0
- package/lib/commonjs/core/motion.js.map +1 -0
- package/lib/commonjs/core/worklets.js +44 -0
- package/lib/commonjs/core/worklets.js.map +1 -0
- package/lib/commonjs/expandable/DayCell.js +120 -0
- package/lib/commonjs/expandable/DayCell.js.map +1 -0
- package/lib/commonjs/expandable/ExpandableCalendar.js +280 -0
- package/lib/commonjs/expandable/ExpandableCalendar.js.map +1 -0
- package/lib/commonjs/expandable/Knob.js +72 -0
- package/lib/commonjs/expandable/Knob.js.map +1 -0
- package/lib/commonjs/expandable/MonthPager.js +180 -0
- package/lib/commonjs/expandable/MonthPager.js.map +1 -0
- package/lib/commonjs/expandable/WeekStrip.js +451 -0
- package/lib/commonjs/expandable/WeekStrip.js.map +1 -0
- package/lib/commonjs/expandable/calendarCells.js +152 -0
- package/lib/commonjs/expandable/calendarCells.js.map +1 -0
- package/lib/commonjs/expandable/geometry.js +62 -0
- package/lib/commonjs/expandable/geometry.js.map +1 -0
- package/lib/commonjs/expandable/useExpandGesture.js +124 -0
- package/lib/commonjs/expandable/useExpandGesture.js.map +1 -0
- package/lib/commonjs/expandable/useHorizontalPager.js +97 -0
- package/lib/commonjs/expandable/useHorizontalPager.js.map +1 -0
- package/lib/commonjs/index.js +167 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/theme/ThemeProvider.js +73 -0
- package/lib/commonjs/theme/ThemeProvider.js.map +1 -0
- package/lib/commonjs/theme/index.js +75 -0
- package/lib/commonjs/theme/index.js.map +1 -0
- package/lib/commonjs/theme/theme.js +79 -0
- package/lib/commonjs/theme/theme.js.map +1 -0
- package/lib/commonjs/theme/tokens.js +54 -0
- package/lib/commonjs/theme/tokens.js.map +1 -0
- package/lib/commonjs/timeline/DayColumn.js +95 -0
- package/lib/commonjs/timeline/DayColumn.js.map +1 -0
- package/lib/commonjs/timeline/DayPager.js +250 -0
- package/lib/commonjs/timeline/DayPager.js.map +1 -0
- package/lib/commonjs/timeline/EventBlock.js +91 -0
- package/lib/commonjs/timeline/EventBlock.js.map +1 -0
- package/lib/commonjs/timeline/GridLines.js +47 -0
- package/lib/commonjs/timeline/GridLines.js.map +1 -0
- package/lib/commonjs/timeline/HourGrid.js +96 -0
- package/lib/commonjs/timeline/HourGrid.js.map +1 -0
- package/lib/commonjs/timeline/NowIndicator.js +132 -0
- package/lib/commonjs/timeline/NowIndicator.js.map +1 -0
- package/lib/commonjs/timeline/TimelineDay.js +126 -0
- package/lib/commonjs/timeline/TimelineDay.js.map +1 -0
- package/lib/commonjs/timeline/packEvents.js +102 -0
- package/lib/commonjs/timeline/packEvents.js.map +1 -0
- package/lib/commonjs/timeline/timelineGeometry.js +27 -0
- package/lib/commonjs/timeline/timelineGeometry.js.map +1 -0
- package/lib/commonjs/timeline/timelineMath.js +82 -0
- package/lib/commonjs/timeline/timelineMath.js.map +1 -0
- package/lib/commonjs/types.js +71 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/agenda/AgendaBackdrop.js +63 -0
- package/lib/module/agenda/AgendaBackdrop.js.map +1 -0
- package/lib/module/agenda/AgendaList.js +349 -0
- package/lib/module/agenda/AgendaList.js.map +1 -0
- package/lib/module/agenda/AgendaSlot.js +84 -0
- package/lib/module/agenda/AgendaSlot.js.map +1 -0
- package/lib/module/agenda/AgendaWindow.js +167 -0
- package/lib/module/agenda/AgendaWindow.js.map +1 -0
- package/lib/module/agenda/StickyHeaderOverlay.js +120 -0
- package/lib/module/agenda/StickyHeaderOverlay.js.map +1 -0
- package/lib/module/agenda/buildAgendaLayout.js +95 -0
- package/lib/module/agenda/buildAgendaLayout.js.map +1 -0
- package/lib/module/agenda/constants.js +25 -0
- package/lib/module/agenda/constants.js.map +1 -0
- package/lib/module/agenda/heights.js +42 -0
- package/lib/module/agenda/heights.js.map +1 -0
- package/lib/module/agenda/useAgendaScrollSync.js +200 -0
- package/lib/module/agenda/useAgendaScrollSync.js.map +1 -0
- package/lib/module/core/ArrowGlyph.js +60 -0
- package/lib/module/core/ArrowGlyph.js.map +1 -0
- package/lib/module/core/CalendarContext.js +26 -0
- package/lib/module/core/CalendarContext.js.map +1 -0
- package/lib/module/core/CalendarProvider.js +136 -0
- package/lib/module/core/CalendarProvider.js.map +1 -0
- package/lib/module/core/CalendarStore.js +66 -0
- package/lib/module/core/CalendarStore.js.map +1 -0
- package/lib/module/core/KitText.js +19 -0
- package/lib/module/core/KitText.js.map +1 -0
- package/lib/module/core/TodayButton.js +133 -0
- package/lib/module/core/TodayButton.js.map +1 -0
- package/lib/module/core/civil.js +88 -0
- package/lib/module/core/civil.js.map +1 -0
- package/lib/module/core/dateKey.js +47 -0
- package/lib/module/core/dateKey.js.map +1 -0
- package/lib/module/core/motion.js +49 -0
- package/lib/module/core/motion.js.map +1 -0
- package/lib/module/core/worklets.js +38 -0
- package/lib/module/core/worklets.js.map +1 -0
- package/lib/module/expandable/DayCell.js +116 -0
- package/lib/module/expandable/DayCell.js.map +1 -0
- package/lib/module/expandable/ExpandableCalendar.js +275 -0
- package/lib/module/expandable/ExpandableCalendar.js.map +1 -0
- package/lib/module/expandable/Knob.js +67 -0
- package/lib/module/expandable/Knob.js.map +1 -0
- package/lib/module/expandable/MonthPager.js +175 -0
- package/lib/module/expandable/MonthPager.js.map +1 -0
- package/lib/module/expandable/WeekStrip.js +446 -0
- package/lib/module/expandable/WeekStrip.js.map +1 -0
- package/lib/module/expandable/calendarCells.js +142 -0
- package/lib/module/expandable/calendarCells.js.map +1 -0
- package/lib/module/expandable/geometry.js +58 -0
- package/lib/module/expandable/geometry.js.map +1 -0
- package/lib/module/expandable/useExpandGesture.js +118 -0
- package/lib/module/expandable/useExpandGesture.js.map +1 -0
- package/lib/module/expandable/useHorizontalPager.js +92 -0
- package/lib/module/expandable/useHorizontalPager.js.map +1 -0
- package/lib/module/index.js +35 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/theme/ThemeProvider.js +65 -0
- package/lib/module/theme/ThemeProvider.js.map +1 -0
- package/lib/module/theme/index.js +6 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/theme.js +74 -0
- package/lib/module/theme/theme.js.map +1 -0
- package/lib/module/theme/tokens.js +50 -0
- package/lib/module/theme/tokens.js.map +1 -0
- package/lib/module/timeline/DayColumn.js +91 -0
- package/lib/module/timeline/DayColumn.js.map +1 -0
- package/lib/module/timeline/DayPager.js +245 -0
- package/lib/module/timeline/DayPager.js.map +1 -0
- package/lib/module/timeline/EventBlock.js +87 -0
- package/lib/module/timeline/EventBlock.js.map +1 -0
- package/lib/module/timeline/GridLines.js +43 -0
- package/lib/module/timeline/GridLines.js.map +1 -0
- package/lib/module/timeline/HourGrid.js +94 -0
- package/lib/module/timeline/HourGrid.js.map +1 -0
- package/lib/module/timeline/NowIndicator.js +126 -0
- package/lib/module/timeline/NowIndicator.js.map +1 -0
- package/lib/module/timeline/TimelineDay.js +122 -0
- package/lib/module/timeline/TimelineDay.js.map +1 -0
- package/lib/module/timeline/packEvents.js +97 -0
- package/lib/module/timeline/packEvents.js.map +1 -0
- package/lib/module/timeline/timelineGeometry.js +22 -0
- package/lib/module/timeline/timelineGeometry.js.map +1 -0
- package/lib/module/timeline/timelineMath.js +75 -0
- package/lib/module/timeline/timelineMath.js.map +1 -0
- package/lib/module/types.js +67 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/commonjs/agenda/AgendaBackdrop.d.ts +20 -0
- package/lib/typescript/commonjs/agenda/AgendaBackdrop.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/AgendaList.d.ts +12 -0
- package/lib/typescript/commonjs/agenda/AgendaList.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/AgendaSlot.d.ts +45 -0
- package/lib/typescript/commonjs/agenda/AgendaSlot.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/AgendaWindow.d.ts +49 -0
- package/lib/typescript/commonjs/agenda/AgendaWindow.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/StickyHeaderOverlay.d.ts +39 -0
- package/lib/typescript/commonjs/agenda/StickyHeaderOverlay.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/buildAgendaLayout.d.ts +57 -0
- package/lib/typescript/commonjs/agenda/buildAgendaLayout.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/constants.d.ts +19 -0
- package/lib/typescript/commonjs/agenda/constants.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/heights.d.ts +20 -0
- package/lib/typescript/commonjs/agenda/heights.d.ts.map +1 -0
- package/lib/typescript/commonjs/agenda/useAgendaScrollSync.d.ts +44 -0
- package/lib/typescript/commonjs/agenda/useAgendaScrollSync.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/ArrowGlyph.d.ts +14 -0
- package/lib/typescript/commonjs/core/ArrowGlyph.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/CalendarContext.d.ts +35 -0
- package/lib/typescript/commonjs/core/CalendarContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/CalendarProvider.d.ts +41 -0
- package/lib/typescript/commonjs/core/CalendarProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/CalendarStore.d.ts +28 -0
- package/lib/typescript/commonjs/core/CalendarStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/KitText.d.ts +10 -0
- package/lib/typescript/commonjs/core/KitText.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/TodayButton.d.ts +18 -0
- package/lib/typescript/commonjs/core/TodayButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/civil.d.ts +26 -0
- package/lib/typescript/commonjs/core/civil.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/dateKey.d.ts +21 -0
- package/lib/typescript/commonjs/core/dateKey.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/motion.d.ts +18 -0
- package/lib/typescript/commonjs/core/motion.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/worklets.d.ts +12 -0
- package/lib/typescript/commonjs/core/worklets.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/DayCell.d.ts +22 -0
- package/lib/typescript/commonjs/expandable/DayCell.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/ExpandableCalendar.d.ts +40 -0
- package/lib/typescript/commonjs/expandable/ExpandableCalendar.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/Knob.d.ts +19 -0
- package/lib/typescript/commonjs/expandable/Knob.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/MonthPager.d.ts +35 -0
- package/lib/typescript/commonjs/expandable/MonthPager.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/WeekStrip.d.ts +34 -0
- package/lib/typescript/commonjs/expandable/WeekStrip.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/calendarCells.d.ts +52 -0
- package/lib/typescript/commonjs/expandable/calendarCells.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/geometry.d.ts +43 -0
- package/lib/typescript/commonjs/expandable/geometry.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/useExpandGesture.d.ts +35 -0
- package/lib/typescript/commonjs/expandable/useExpandGesture.d.ts.map +1 -0
- package/lib/typescript/commonjs/expandable/useHorizontalPager.d.ts +35 -0
- package/lib/typescript/commonjs/expandable/useHorizontalPager.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +26 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/theme/ThemeProvider.d.ts +27 -0
- package/lib/typescript/commonjs/theme/ThemeProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/index.d.ts +4 -0
- package/lib/typescript/commonjs/theme/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/theme.d.ts +62 -0
- package/lib/typescript/commonjs/theme/theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/tokens.d.ts +46 -0
- package/lib/typescript/commonjs/theme/tokens.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/DayColumn.d.ts +32 -0
- package/lib/typescript/commonjs/timeline/DayColumn.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/DayPager.d.ts +32 -0
- package/lib/typescript/commonjs/timeline/DayPager.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/EventBlock.d.ts +17 -0
- package/lib/typescript/commonjs/timeline/EventBlock.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/GridLines.d.ts +5 -0
- package/lib/typescript/commonjs/timeline/GridLines.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/HourGrid.d.ts +12 -0
- package/lib/typescript/commonjs/timeline/HourGrid.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/NowIndicator.d.ts +28 -0
- package/lib/typescript/commonjs/timeline/NowIndicator.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/TimelineDay.d.ts +14 -0
- package/lib/typescript/commonjs/timeline/TimelineDay.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/packEvents.d.ts +25 -0
- package/lib/typescript/commonjs/timeline/packEvents.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/timelineGeometry.d.ts +14 -0
- package/lib/typescript/commonjs/timeline/timelineGeometry.d.ts.map +1 -0
- package/lib/typescript/commonjs/timeline/timelineMath.d.ts +32 -0
- package/lib/typescript/commonjs/timeline/timelineMath.d.ts.map +1 -0
- package/lib/typescript/commonjs/types.d.ts +237 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -0
- package/lib/typescript/module/agenda/AgendaBackdrop.d.ts +20 -0
- package/lib/typescript/module/agenda/AgendaBackdrop.d.ts.map +1 -0
- package/lib/typescript/module/agenda/AgendaList.d.ts +12 -0
- package/lib/typescript/module/agenda/AgendaList.d.ts.map +1 -0
- package/lib/typescript/module/agenda/AgendaSlot.d.ts +45 -0
- package/lib/typescript/module/agenda/AgendaSlot.d.ts.map +1 -0
- package/lib/typescript/module/agenda/AgendaWindow.d.ts +49 -0
- package/lib/typescript/module/agenda/AgendaWindow.d.ts.map +1 -0
- package/lib/typescript/module/agenda/StickyHeaderOverlay.d.ts +39 -0
- package/lib/typescript/module/agenda/StickyHeaderOverlay.d.ts.map +1 -0
- package/lib/typescript/module/agenda/buildAgendaLayout.d.ts +57 -0
- package/lib/typescript/module/agenda/buildAgendaLayout.d.ts.map +1 -0
- package/lib/typescript/module/agenda/constants.d.ts +19 -0
- package/lib/typescript/module/agenda/constants.d.ts.map +1 -0
- package/lib/typescript/module/agenda/heights.d.ts +20 -0
- package/lib/typescript/module/agenda/heights.d.ts.map +1 -0
- package/lib/typescript/module/agenda/useAgendaScrollSync.d.ts +44 -0
- package/lib/typescript/module/agenda/useAgendaScrollSync.d.ts.map +1 -0
- package/lib/typescript/module/core/ArrowGlyph.d.ts +14 -0
- package/lib/typescript/module/core/ArrowGlyph.d.ts.map +1 -0
- package/lib/typescript/module/core/CalendarContext.d.ts +35 -0
- package/lib/typescript/module/core/CalendarContext.d.ts.map +1 -0
- package/lib/typescript/module/core/CalendarProvider.d.ts +41 -0
- package/lib/typescript/module/core/CalendarProvider.d.ts.map +1 -0
- package/lib/typescript/module/core/CalendarStore.d.ts +28 -0
- package/lib/typescript/module/core/CalendarStore.d.ts.map +1 -0
- package/lib/typescript/module/core/KitText.d.ts +10 -0
- package/lib/typescript/module/core/KitText.d.ts.map +1 -0
- package/lib/typescript/module/core/TodayButton.d.ts +18 -0
- package/lib/typescript/module/core/TodayButton.d.ts.map +1 -0
- package/lib/typescript/module/core/civil.d.ts +26 -0
- package/lib/typescript/module/core/civil.d.ts.map +1 -0
- package/lib/typescript/module/core/dateKey.d.ts +21 -0
- package/lib/typescript/module/core/dateKey.d.ts.map +1 -0
- package/lib/typescript/module/core/motion.d.ts +18 -0
- package/lib/typescript/module/core/motion.d.ts.map +1 -0
- package/lib/typescript/module/core/worklets.d.ts +12 -0
- package/lib/typescript/module/core/worklets.d.ts.map +1 -0
- package/lib/typescript/module/expandable/DayCell.d.ts +22 -0
- package/lib/typescript/module/expandable/DayCell.d.ts.map +1 -0
- package/lib/typescript/module/expandable/ExpandableCalendar.d.ts +40 -0
- package/lib/typescript/module/expandable/ExpandableCalendar.d.ts.map +1 -0
- package/lib/typescript/module/expandable/Knob.d.ts +19 -0
- package/lib/typescript/module/expandable/Knob.d.ts.map +1 -0
- package/lib/typescript/module/expandable/MonthPager.d.ts +35 -0
- package/lib/typescript/module/expandable/MonthPager.d.ts.map +1 -0
- package/lib/typescript/module/expandable/WeekStrip.d.ts +34 -0
- package/lib/typescript/module/expandable/WeekStrip.d.ts.map +1 -0
- package/lib/typescript/module/expandable/calendarCells.d.ts +52 -0
- package/lib/typescript/module/expandable/calendarCells.d.ts.map +1 -0
- package/lib/typescript/module/expandable/geometry.d.ts +43 -0
- package/lib/typescript/module/expandable/geometry.d.ts.map +1 -0
- package/lib/typescript/module/expandable/useExpandGesture.d.ts +35 -0
- package/lib/typescript/module/expandable/useExpandGesture.d.ts.map +1 -0
- package/lib/typescript/module/expandable/useHorizontalPager.d.ts +35 -0
- package/lib/typescript/module/expandable/useHorizontalPager.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +26 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/theme/ThemeProvider.d.ts +27 -0
- package/lib/typescript/module/theme/ThemeProvider.d.ts.map +1 -0
- package/lib/typescript/module/theme/index.d.ts +4 -0
- package/lib/typescript/module/theme/index.d.ts.map +1 -0
- package/lib/typescript/module/theme/theme.d.ts +62 -0
- package/lib/typescript/module/theme/theme.d.ts.map +1 -0
- package/lib/typescript/module/theme/tokens.d.ts +46 -0
- package/lib/typescript/module/theme/tokens.d.ts.map +1 -0
- package/lib/typescript/module/timeline/DayColumn.d.ts +32 -0
- package/lib/typescript/module/timeline/DayColumn.d.ts.map +1 -0
- package/lib/typescript/module/timeline/DayPager.d.ts +32 -0
- package/lib/typescript/module/timeline/DayPager.d.ts.map +1 -0
- package/lib/typescript/module/timeline/EventBlock.d.ts +17 -0
- package/lib/typescript/module/timeline/EventBlock.d.ts.map +1 -0
- package/lib/typescript/module/timeline/GridLines.d.ts +5 -0
- package/lib/typescript/module/timeline/GridLines.d.ts.map +1 -0
- package/lib/typescript/module/timeline/HourGrid.d.ts +12 -0
- package/lib/typescript/module/timeline/HourGrid.d.ts.map +1 -0
- package/lib/typescript/module/timeline/NowIndicator.d.ts +28 -0
- package/lib/typescript/module/timeline/NowIndicator.d.ts.map +1 -0
- package/lib/typescript/module/timeline/TimelineDay.d.ts +14 -0
- package/lib/typescript/module/timeline/TimelineDay.d.ts.map +1 -0
- package/lib/typescript/module/timeline/packEvents.d.ts +25 -0
- package/lib/typescript/module/timeline/packEvents.d.ts.map +1 -0
- package/lib/typescript/module/timeline/timelineGeometry.d.ts +14 -0
- package/lib/typescript/module/timeline/timelineGeometry.d.ts.map +1 -0
- package/lib/typescript/module/timeline/timelineMath.d.ts +32 -0
- package/lib/typescript/module/timeline/timelineMath.d.ts.map +1 -0
- package/lib/typescript/module/types.d.ts +237 -0
- package/lib/typescript/module/types.d.ts.map +1 -0
- package/package.json +105 -0
- package/src/agenda/AgendaBackdrop.tsx +55 -0
- package/src/agenda/AgendaList.tsx +370 -0
- package/src/agenda/AgendaSlot.tsx +88 -0
- package/src/agenda/AgendaWindow.tsx +183 -0
- package/src/agenda/StickyHeaderOverlay.tsx +126 -0
- package/src/agenda/buildAgendaLayout.ts +110 -0
- package/src/agenda/constants.ts +22 -0
- package/src/agenda/heights.ts +44 -0
- package/src/agenda/useAgendaScrollSync.ts +251 -0
- package/src/core/ArrowGlyph.tsx +53 -0
- package/src/core/CalendarContext.ts +47 -0
- package/src/core/CalendarProvider.tsx +165 -0
- package/src/core/CalendarStore.ts +64 -0
- package/src/core/KitText.tsx +10 -0
- package/src/core/TodayButton.tsx +121 -0
- package/src/core/civil.ts +92 -0
- package/src/core/dateKey.ts +52 -0
- package/src/core/motion.ts +51 -0
- package/src/core/worklets.ts +37 -0
- package/src/expandable/DayCell.tsx +97 -0
- package/src/expandable/ExpandableCalendar.tsx +278 -0
- package/src/expandable/Knob.tsx +67 -0
- package/src/expandable/MonthPager.tsx +208 -0
- package/src/expandable/WeekStrip.tsx +439 -0
- package/src/expandable/calendarCells.ts +155 -0
- package/src/expandable/geometry.ts +51 -0
- package/src/expandable/useExpandGesture.ts +147 -0
- package/src/expandable/useHorizontalPager.ts +116 -0
- package/src/index.ts +62 -0
- package/src/theme/ThemeProvider.tsx +85 -0
- package/src/theme/index.ts +18 -0
- package/src/theme/theme.ts +110 -0
- package/src/theme/tokens.ts +50 -0
- package/src/timeline/DayColumn.tsx +84 -0
- package/src/timeline/DayPager.tsx +295 -0
- package/src/timeline/EventBlock.tsx +76 -0
- package/src/timeline/GridLines.tsx +36 -0
- package/src/timeline/HourGrid.tsx +90 -0
- package/src/timeline/NowIndicator.tsx +123 -0
- package/src/timeline/TimelineDay.tsx +112 -0
- package/src/timeline/packEvents.ts +118 -0
- package/src/timeline/timelineGeometry.ts +23 -0
- package/src/timeline/timelineMath.ts +86 -0
- package/src/types.ts +252 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An up arrow drawn from two Views: a stem, and a square with only its top and
|
|
3
|
+
* left borders painted, rotated 45° into a chevron.
|
|
4
|
+
*
|
|
5
|
+
* The kit ships no icon font and takes no SVG peer dependency for one 14 px
|
|
6
|
+
* glyph — a consumer should not have to install an icon package to get a Today
|
|
7
|
+
* button. Rotation of the whole arrow is the caller's job (`TodayButton` flips
|
|
8
|
+
* it 180° on the UI thread).
|
|
9
|
+
*/
|
|
10
|
+
export declare const ArrowGlyph: ({ size, color }: {
|
|
11
|
+
size: number;
|
|
12
|
+
color: string;
|
|
13
|
+
}) => import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=ArrowGlyph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrowGlyph.d.ts","sourceRoot":"","sources":["../../../../src/core/ArrowGlyph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,UAAU,GAAI,iBAAiB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,gCAsC1E,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two contexts, split by how often they change.
|
|
3
|
+
*
|
|
4
|
+
* `CalendarContext` is identity-stable for the life of the provider: every
|
|
5
|
+
* scroller reads it, and none of them may re-render because a date was committed.
|
|
6
|
+
* `CalendarDateContext` is the committed date alone — only surfaces that DRAW the
|
|
7
|
+
* committed date (the month grid's selection) subscribe to it. Surfaces that
|
|
8
|
+
* track the date at frame rate read `store.dayIndex` and subscribe to neither.
|
|
9
|
+
*/
|
|
10
|
+
import type { CalendarRange, DateString, MoveOrigin, UpdateSource } from '../types';
|
|
11
|
+
import type { CalendarStore } from './CalendarStore';
|
|
12
|
+
export type CalendarContextValue = {
|
|
13
|
+
range: CalendarRange;
|
|
14
|
+
store: CalendarStore;
|
|
15
|
+
/**
|
|
16
|
+
* JS mirror of the last committed date; the echo guard compares against it.
|
|
17
|
+
* Never inside `store`: worklets freeze what they capture (see CalendarStore).
|
|
18
|
+
* Read it for mount-time values instead of `store.*.value` during render.
|
|
19
|
+
*/
|
|
20
|
+
dateRef: {
|
|
21
|
+
current: DateString;
|
|
22
|
+
};
|
|
23
|
+
/** Move every surface to `ymd`: commits, notifies, then bumps `store.move`. */
|
|
24
|
+
setDate: (ymd: DateString, source: UpdateSource, origin?: MoveOrigin, animated?: boolean) => void;
|
|
25
|
+
/** The scroll-driven half, from a worklet via `runOnJS`: no `dayIndex` write. */
|
|
26
|
+
commitDate: (idx: number, source: UpdateSource, origin: MoveOrigin) => void;
|
|
27
|
+
/** The device setting, subscribed once by the provider. */
|
|
28
|
+
reduceMotion: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare const CalendarContext: import("react").Context<CalendarContextValue | null>;
|
|
31
|
+
export declare const CalendarDateContext: import("react").Context<string>;
|
|
32
|
+
export declare const useCalendarContext: () => CalendarContextValue;
|
|
33
|
+
/** The committed date. Subscribing re-renders on every commit — use sparingly. */
|
|
34
|
+
export declare const useCalendarDate: () => DateString;
|
|
35
|
+
//# sourceMappingURL=CalendarContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarContext.d.ts","sourceRoot":"","sources":["../../../../src/core/CalendarContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB;;;;OAIG;IACH,OAAO,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,CAAC;IACjC,+EAA+E;IAC/E,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAClG,iFAAiF;IACjF,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5E,2DAA2D;IAC3D,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,eAAe,sDAAmD,CAAC;AAChF,eAAO,MAAM,mBAAmB,iCAAgC,CAAC;AAEjE,eAAO,MAAM,kBAAkB,QAAO,oBASrC,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,eAAe,QAAO,UAA6C,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The date owner. Compat with `react-native-calendars`' `CalendarProvider`.
|
|
3
|
+
*
|
|
4
|
+
* Two cadences: `setDate` is synchronous (day tap, Today, page settle, the `date`
|
|
5
|
+
* prop) and writes `dayIndex`; `commitDate` is the scroll path, called from a
|
|
6
|
+
* worklet at settle and per month crossing, and leaves `dayIndex` to the
|
|
7
|
+
* scroller that already owns it. Both bump `move` so the OTHER surfaces follow.
|
|
8
|
+
*
|
|
9
|
+
* The prop echo: a controlled caller mirrors every `onDateChanged` back into
|
|
10
|
+
* `date`, and a `runOnJS` commit can land between a render's commit and its
|
|
11
|
+
* effects, so "prop equals current date" is not enough (M5: a fast fling was
|
|
12
|
+
* thrown back a month as `propUpdate`). The provider queues what it emitted; a
|
|
13
|
+
* prop matching a pending emission is an echo and consumes the queue up to it.
|
|
14
|
+
*/
|
|
15
|
+
import { type ReactNode } from 'react';
|
|
16
|
+
import type { AgendaKitTheme, PartialAgendaKitTheme } from '../theme';
|
|
17
|
+
import type { CalendarRange, DateString, UpdateSource } from '../types';
|
|
18
|
+
export type CalendarProviderProps = {
|
|
19
|
+
range: CalendarRange;
|
|
20
|
+
date: DateString;
|
|
21
|
+
onDateChanged?: (date: DateString, source: UpdateSource) => void;
|
|
22
|
+
onMonthChange?: (date: DateString, source: UpdateSource) => void;
|
|
23
|
+
showTodayButton?: boolean;
|
|
24
|
+
todayBottomMargin?: number;
|
|
25
|
+
/** Required for the Today button to render: the kit ships no strings. */
|
|
26
|
+
todayLabel?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Colours and font families. A partial theme layers over `base`
|
|
29
|
+
* (`lightTheme` unless given), so `{ colors: { accent: '#0F766E' } }` is a
|
|
30
|
+
* complete override. Omit it entirely for the built-in light theme.
|
|
31
|
+
*
|
|
32
|
+
* Pass a STABLE object — a fresh literal every render rebuilds every
|
|
33
|
+
* stylesheet in the tree. Hoist it to module scope or memoise it.
|
|
34
|
+
*/
|
|
35
|
+
theme?: AgendaKitTheme | PartialAgendaKitTheme;
|
|
36
|
+
/** Which built-in a partial `theme` layers over. Pass `darkTheme` for dark mode. */
|
|
37
|
+
themeBase?: AgendaKitTheme;
|
|
38
|
+
children: ReactNode;
|
|
39
|
+
};
|
|
40
|
+
export declare const CalendarProvider: ({ range, date, onDateChanged, onMonthChange, showTodayButton, todayBottomMargin, todayLabel, theme, themeBase, children, }: CalendarProviderProps) => import("react").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=CalendarProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/CalendarProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAS3G,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAc,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACjE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,cAAc,GAAG,qBAAqB,CAAC;IAC/C,oFAAoF;IACpF,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAKF,eAAO,MAAM,gBAAgB,GAAI,4HAW9B,qBAAqB,gCAgGvB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The UI-thread half of the calendar: four shared values, created once.
|
|
3
|
+
*
|
|
4
|
+
* The scroll offset owns position and `dayIndex` is derived from it on the UI
|
|
5
|
+
* thread, so the week strip, the Today button and the sticky header track a
|
|
6
|
+
* fling frame-locked. `move` carries a programmatic move with its `origin`;
|
|
7
|
+
* each scroller ignores its own origin, so a `scrollTo` never echoes back.
|
|
8
|
+
*/
|
|
9
|
+
import { type SharedValue } from 'react-native-reanimated';
|
|
10
|
+
import type { CalendarMove, CalendarRange } from '../types';
|
|
11
|
+
/**
|
|
12
|
+
* SHARED VALUES ONLY. Worklets that read `store.x.value` capture `store`, and
|
|
13
|
+
* react-native-worklets freezes captured objects in `__DEV__`: a plain ref in
|
|
14
|
+
* here silently ignores every write (M2: the echo guard compared against a date
|
|
15
|
+
* frozen at mount). Anything else lives on the provider and the context.
|
|
16
|
+
*/
|
|
17
|
+
export type CalendarStore = {
|
|
18
|
+
/** UI-thread truth. Written by whichever scroller owns the position. */
|
|
19
|
+
dayIndex: SharedValue<number>;
|
|
20
|
+
/** The last programmatic move. `seq` makes repeats distinct. */
|
|
21
|
+
move: SharedValue<CalendarMove>;
|
|
22
|
+
/** Index of today, refreshed across midnight and on app foreground. */
|
|
23
|
+
todayIndex: SharedValue<number>;
|
|
24
|
+
/** Bumped when a list starts a drag; only the CHANGE means anything. */
|
|
25
|
+
listDragSeq: SharedValue<number>;
|
|
26
|
+
};
|
|
27
|
+
export declare const useCreateCalendarStore: (range: CalendarRange, initialIndex: number) => CalendarStore;
|
|
28
|
+
//# sourceMappingURL=CalendarStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarStore.d.ts","sourceRoot":"","sources":["../../../../src/core/CalendarStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,gEAAgE;IAChE,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAChC,uEAAuE;IACvE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,wEAAwE;IACxE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAIF,eAAO,MAAM,sBAAsB,GAAI,OAAO,aAAa,EAAE,cAAc,MAAM,KAAG,aA6BnF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Ref } from 'react';
|
|
2
|
+
import { Text, type TextProps } from 'react-native';
|
|
3
|
+
/**
|
|
4
|
+
* Kit text with OS scaling pinned off: row heights are declared, so scaled text
|
|
5
|
+
* would clip in its slot. `Text.defaultProps` is a no-op under React 19.
|
|
6
|
+
*/
|
|
7
|
+
export declare const KitText: ({ ref, ...props }: TextProps & {
|
|
8
|
+
ref?: Ref<Text>;
|
|
9
|
+
}) => import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=KitText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KitText.d.ts","sourceRoot":"","sources":["../../../../src/core/KitText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,mBAAmB,SAAS,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;CAAE,gCAEzE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Today pill, visible whenever the calendar is not on today: centred, with an
|
|
3
|
+
* arrow pointing the way back to today (the owner's Teams reference, 2026-09-11).
|
|
4
|
+
*
|
|
5
|
+
* Visibility and the arrow's direction are derived on the UI thread from
|
|
6
|
+
* `dayIndex` and `todayIndex`, so the pill appears the frame a fling leaves today
|
|
7
|
+
* and the arrow flips with no React commit. The show/hide animation starts from a
|
|
8
|
+
* reaction that fires only when the boolean flips — `withTiming` returned from
|
|
9
|
+
* `useAnimatedStyle` would restart on every frame of a fling. Hidden means
|
|
10
|
+
* translated off the bottom edge: a transparent pill would still swallow taps.
|
|
11
|
+
*/
|
|
12
|
+
type Props = {
|
|
13
|
+
label: string;
|
|
14
|
+
bottomMargin?: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const TodayButton: import("react").MemoExoticComponent<({ label, bottomMargin }: Props) => import("react").JSX.Element>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=TodayButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodayButton.d.ts","sourceRoot":"","sources":["../../../../src/core/TodayButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsBH,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAkEF,eAAO,MAAM,WAAW,gEAhE+B,KAAK,iCAgEX,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integer civil-date arithmetic: no `Date`, no string splitting, no timezone.
|
|
3
|
+
*
|
|
4
|
+
* An epoch day is the count of days since 1970-01-01 in the proleptic Gregorian
|
|
5
|
+
* calendar. Calendar days are integers here, so a DST transition cannot make two
|
|
6
|
+
* days 23 or 25 hours apart — the bug a `(a - b) / 86400000` calendar has twice
|
|
7
|
+
* a year. Algorithms: H. Hinnant, "chrono-Compatible Low-Level Date Algorithms".
|
|
8
|
+
*/
|
|
9
|
+
/** Epoch day of a civil date. `m` is 1–12. */
|
|
10
|
+
export declare const epochDayOf: (y: number, m: number, d: number) => number;
|
|
11
|
+
/** Civil date of an epoch day, packed as YYYYMMDD so nothing is allocated. */
|
|
12
|
+
export declare const civilOf: (z: number) => number;
|
|
13
|
+
/** 0 = Sunday … 6 = Saturday, as `Date#getDay`. 1970-01-01 was a Thursday. */
|
|
14
|
+
export declare const weekdayOf: (z: number) => number;
|
|
15
|
+
export declare const daysInMonth: (y: number, m: number) => number;
|
|
16
|
+
/** 'YYYY-MM-DD' of an epoch day. */
|
|
17
|
+
export declare const ymdOfEpochDay: (z: number) => string;
|
|
18
|
+
/** Epoch day of 'YYYY-MM-DD' (anything after position 10 is ignored); NaN if malformed. */
|
|
19
|
+
export declare const epochDayOfYmd: (s: string) => number;
|
|
20
|
+
/** y·12 + (m − 1) of 'YYYY-MM-DD' — a month ordinal that orders and subtracts. */
|
|
21
|
+
export declare const monthOrdinalOfYmd: (s: string) => number;
|
|
22
|
+
/** Epoch day of a `Date`'s LOCAL calendar day. The one bridge from `Date`. */
|
|
23
|
+
export declare const epochDayOfDate: (d: Date) => number;
|
|
24
|
+
/** Today's epoch day. Cached until local midnight: a hot call is one `Date.now()`, no allocation. */
|
|
25
|
+
export declare const todayEpochDay: () => number;
|
|
26
|
+
//# sourceMappingURL=civil.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"civil.d.ts","sourceRoot":"","sources":["../../../../src/core/civil.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8CAA8C;AAC9C,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAO5D,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,KAAG,MAYnC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAAiC,CAAC;AAKxE,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MACJ,CAAC;AAKhD,oCAAoC;AACpC,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,MAIzC,CAAC;AAOF,2FAA2F;AAC3F,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,MAMzC,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,MAI3C,CAAC;AAEJ,8EAA8E;AAC9E,eAAO,MAAM,cAAc,GAAI,GAAG,IAAI,KAAG,MACmB,CAAC;AAI7D,qGAAqG;AACrG,eAAO,MAAM,aAAa,QAAO,MAUhC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one translation between the kit's integer index space and 'YYYY-MM-DD'.
|
|
3
|
+
*
|
|
4
|
+
* Every surface addresses a day as `dayIndex`, an offset from `range.start`.
|
|
5
|
+
* `buildRange` pays for the strings once; after that both directions are O(1)
|
|
6
|
+
* and allocation-free: `dayIndexOf` is a subtraction, `ymdAt` an array read.
|
|
7
|
+
*/
|
|
8
|
+
import type { CalendarRange, DateString } from '../types';
|
|
9
|
+
/** Index of `ymd` within `range`. May fall outside `[0, days)`; NaN if malformed. */
|
|
10
|
+
export declare const dayIndexOf: (range: CalendarRange, ymd: DateString) => number;
|
|
11
|
+
/** 'YYYY-MM-DD' at `idx`. Defined for any integer; callers clamp first. */
|
|
12
|
+
export declare const ymdAt: (range: CalendarRange, idx: number) => DateString;
|
|
13
|
+
/** The single gating predicate: an index is selectable iff clamping leaves it alone. */
|
|
14
|
+
export declare const clampIndex: (range: CalendarRange, idx: number) => number;
|
|
15
|
+
export declare const todayIndexOf: (startEpochDay: number, days: number) => number;
|
|
16
|
+
/**
|
|
17
|
+
* `start` is pushed back to the `firstDay` week boundary and `days` rounded up
|
|
18
|
+
* to whole weeks, so `floor(dayIndex / 7)` is always a week page.
|
|
19
|
+
*/
|
|
20
|
+
export declare const buildRange: (minDate: Date, maxDate: Date, firstDay?: number) => CalendarRange;
|
|
21
|
+
//# sourceMappingURL=dateKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateKey.d.ts","sourceRoot":"","sources":["../../../../src/core/dateKey.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE1D,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,OAAO,aAAa,EAAE,KAAK,UAAU,KAAG,MACzB,CAAC;AAE3C,2EAA2E;AAC3E,eAAO,MAAM,KAAK,GAAI,OAAO,aAAa,EAAE,KAAK,MAAM,KAAG,UACS,CAAC;AAEpE,wFAAwF;AACxF,eAAO,MAAM,UAAU,GAAI,OAAO,aAAa,EAAE,KAAK,MAAM,KAAG,MACsB,CAAC;AAEtF,eAAO,MAAM,YAAY,GAAI,eAAe,MAAM,EAAE,MAAM,MAAM,KAAG,MAGlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,IAAI,EAAE,SAAS,IAAI,EAAE,WAAU,MAAU,KAAG,aAmB/E,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The kit's motion inputs and the two accessibility flags it obeys.
|
|
3
|
+
*
|
|
4
|
+
* Durations come from `theme/tokens` (`ANIMATION.fast/base/slow`). They are
|
|
5
|
+
* module constants, not themeable: `KIT_EASING` is captured by worklets at
|
|
6
|
+
* module scope and so cannot read a React context.
|
|
7
|
+
*/
|
|
8
|
+
export declare const KIT_EASING: import("react-native-reanimated").EasingFunctionFactory;
|
|
9
|
+
/** Reanimated treats `duration: 0` as an immediate set, so a snap stays a snap. */
|
|
10
|
+
export declare const kitDuration: (ms: number, reduced: boolean) => number;
|
|
11
|
+
/** Subscribe ONCE per tree: the provider reads it and publishes it on the context. */
|
|
12
|
+
export declare const useReduceMotion: () => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* TalkBack does not see opacity, so the stacked week strip and month grid would
|
|
15
|
+
* both be read. `ExpandableCalendar` renders a static grid while this is true.
|
|
16
|
+
*/
|
|
17
|
+
export declare const useScreenReaderEnabled: () => boolean;
|
|
18
|
+
//# sourceMappingURL=motion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../../../src/core/motion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,eAAO,MAAM,UAAU,yDAAkC,CAAC;AAE1D,mFAAmF;AACnF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,EAAE,SAAS,OAAO,KAAG,MAA4B,CAAC;AA0BxF,sFAAsF;AACtF,eAAO,MAAM,eAAe,QAAO,OAA+D,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAO,OACY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-scope `'worklet'` helpers. The babel plugin workletizes a top-level
|
|
3
|
+
* function with the directive unconditionally; inside a hook call it depends on
|
|
4
|
+
* configuration (`hooks/useChromeScrub.ts:24-39`).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Largest `i` with `offsets[i] <= y`, or 0. `offsets` is a strictly increasing
|
|
8
|
+
* prefix-sum table, so the search is exact and allocation-free.
|
|
9
|
+
*/
|
|
10
|
+
export declare const bsearchLE: (offsets: readonly number[], y: number) => number;
|
|
11
|
+
export declare const clampNum: (v: number, lo: number, hi: number) => number;
|
|
12
|
+
//# sourceMappingURL=worklets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worklets.d.ts","sourceRoot":"","sources":["../../../../src/core/worklets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,MAAM,KAAG,MAajE,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,EAAE,IAAI,MAAM,EAAE,IAAI,MAAM,KAAG,MAG5D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One day in the MONTH GRID. Selection arrives as a plain prop from the committed
|
|
3
|
+
* date, and `memo` on primitive props means a commit re-renders two cells, not the
|
|
4
|
+
* month. (The week strip tracks a fling frame by frame with one pill instead.)
|
|
5
|
+
*/
|
|
6
|
+
type Props = {
|
|
7
|
+
dayIndex: number;
|
|
8
|
+
label: string;
|
|
9
|
+
left: number;
|
|
10
|
+
top: number;
|
|
11
|
+
isToday: boolean;
|
|
12
|
+
isDisabled: boolean;
|
|
13
|
+
isSelected: boolean;
|
|
14
|
+
/** `null` = no dot, `''` = default colour. */
|
|
15
|
+
dot: string | null;
|
|
16
|
+
onPress: (dayIndex: number) => void;
|
|
17
|
+
/** The caller's spoken date; the bare number is read when absent. */
|
|
18
|
+
accessibilityLabel?: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const DayCell: import("react").MemoExoticComponent<({ dayIndex, label, left, top, isToday, isDisabled, isSelected, dot, onPress, accessibilityLabel, }: Props) => import("react").JSX.Element>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=DayCell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayCell.d.ts","sourceRoot":"","sources":["../../../../src/expandable/DayCell.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAkCF,eAAO,MAAM,OAAO,2IArBjB,KAAK,iCAqBiC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The expandable calendar — week strip closed, month grid open — and the body it
|
|
3
|
+
* pushes down.
|
|
4
|
+
*
|
|
5
|
+
* Nothing animates height. `progress` (0 closed, 1 open) moves and every layer
|
|
6
|
+
* reads it as a transform or opacity: the month layer fades in and slides from
|
|
7
|
+
* "selected week on top" to its natural place, the strip fades out, and the knob
|
|
8
|
+
* and fixed-height body translate by `progress · travel`, where `travel` belongs
|
|
9
|
+
* to the VISIBLE month and re-targets when that changes while open.
|
|
10
|
+
*
|
|
11
|
+
* The body renders `children` because it must read `progress`. A list drag closes
|
|
12
|
+
* an open calendar: the grid shows the committed date, the list the day under it.
|
|
13
|
+
* With a screen reader the calendar is a static open month grid — TalkBack ignores
|
|
14
|
+
* opacity, would read strip and grid both, and cannot perform the pan.
|
|
15
|
+
*/
|
|
16
|
+
import type { ExpandableCalendarProps } from '../types';
|
|
17
|
+
export declare const ExpandableCalendar: import("react").NamedExoticComponent<import("../types").ExpandableCalendarCompatProps & {
|
|
18
|
+
initialPosition?: import("..").CalendarPosition;
|
|
19
|
+
onCalendarToggled?: (isOpen: boolean) => void;
|
|
20
|
+
style?: import("react-native").StyleProp<import("react-native").ViewStyle>;
|
|
21
|
+
closeOnDayPress?: boolean;
|
|
22
|
+
closeOnListScroll?: boolean;
|
|
23
|
+
markedDates?: import("..").MarkedDates;
|
|
24
|
+
disablePan?: boolean;
|
|
25
|
+
openThreshold?: number;
|
|
26
|
+
closeThreshold?: number;
|
|
27
|
+
knobAccessibilityLabel?: string;
|
|
28
|
+
dayAccessibilityLabel?: (date: import("..").DateString) => string;
|
|
29
|
+
monthShortLabels?: readonly string[];
|
|
30
|
+
children?: import("react").ReactNode;
|
|
31
|
+
ref?: React.Ref<import("..").ExpandableCalendarRef>;
|
|
32
|
+
}> & {
|
|
33
|
+
readonly type: ({ initialPosition, onCalendarToggled, style, closeOnDayPress, closeOnListScroll, markedDates, disablePan, openThreshold, closeThreshold, knobAccessibilityLabel, dayAccessibilityLabel, monthShortLabels, children, ref, }: ExpandableCalendarProps) => import("react").JSX.Element;
|
|
34
|
+
} & {
|
|
35
|
+
positions: {
|
|
36
|
+
readonly CLOSED: "closed";
|
|
37
|
+
readonly OPEN: "open";
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=ExpandableCalendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandableCalendar.d.ts","sourceRoot":"","sources":["../../../../src/expandable/ExpandableCalendar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0BH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAmNxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;gPApL5B,uBAAuB;;;;;;CAsLxB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The drag band under the calendar. A tap toggles; a drag anywhere on the
|
|
3
|
+
* calendar (not just here) opens and closes — the band is the affordance, not
|
|
4
|
+
* the only hit area.
|
|
5
|
+
*
|
|
6
|
+
* A `Pressable`, not a `Gesture.Tap` raced against the pan. The tap belongs to
|
|
7
|
+
* the knob alone; racing a tap on the whole detector would make every day-cell
|
|
8
|
+
* tap also toggle the calendar.
|
|
9
|
+
*/
|
|
10
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
11
|
+
import { type AnimatedStyle } from 'react-native-reanimated';
|
|
12
|
+
type Props = {
|
|
13
|
+
animatedStyle: StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
|
|
14
|
+
onPress: () => void;
|
|
15
|
+
accessibilityLabel?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const Knob: import("react").MemoExoticComponent<({ animatedStyle, onPress, accessibilityLabel }: Props) => import("react").JSX.Element>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=Knob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Knob.d.ts","sourceRoot":"","sources":["../../../../src/expandable/Knob.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGvE,KAAK,KAAK,GAAG;IACX,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAkBF,eAAO,MAAM,IAAI,uFAhBkD,KAAK,iCAgBrC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The open calendar: one month per page across the selectable window.
|
|
3
|
+
*
|
|
4
|
+
* Selection is the COMMITTED date as a plain prop, handed only to the page that
|
|
5
|
+
* holds it, so a commit re-renders at most two pages and two memo'd cells.
|
|
6
|
+
*
|
|
7
|
+
* Mounted pages derive from that same committed date. Closed, only its month
|
|
8
|
+
* exists: the layer is invisible, and every month crossing commits a date. Open,
|
|
9
|
+
* its two neighbours join so a swipe shows one; a swipe that lands commits the
|
|
10
|
+
* new month, which re-centres the window. A screen reader pages by scroll
|
|
11
|
+
* actions, so it gets every month. Moves page the pager instantly even while
|
|
12
|
+
* closed, so opening shows the right month.
|
|
13
|
+
*/
|
|
14
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
15
|
+
import { type AnimatedStyle, type SharedValue } from 'react-native-reanimated';
|
|
16
|
+
import { type MonthPages } from './calendarCells';
|
|
17
|
+
type Props = {
|
|
18
|
+
width: number;
|
|
19
|
+
lefts: number[];
|
|
20
|
+
pages: MonthPages;
|
|
21
|
+
pagesSV: SharedValue<MonthPages>;
|
|
22
|
+
labels: string[];
|
|
23
|
+
a11yLabels?: string[];
|
|
24
|
+
dots: (string | null)[];
|
|
25
|
+
selectedIndex: number;
|
|
26
|
+
initialPage: number;
|
|
27
|
+
visiblePage: SharedValue<number>;
|
|
28
|
+
onDayPress: (dayIndex: number) => void;
|
|
29
|
+
animatedStyle: StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
|
|
30
|
+
isOpen: boolean;
|
|
31
|
+
screenReader: boolean;
|
|
32
|
+
};
|
|
33
|
+
export declare const MonthPager: import("react").MemoExoticComponent<({ width, lefts, pages, pagesSV, labels, a11yLabels, dots, selectedIndex, initialPage, visiblePage, onDayPress, animatedStyle, isOpen, screenReader, }: Props) => import("react").JSX.Element>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=MonthPager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPager.d.ts","sourceRoot":"","sources":["../../../../src/expandable/MonthPager.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAChF,OAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGzF,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuE/D,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAgGF,eAAO,MAAM,UAAU,8LA/EpB,KAAK,iCA+EuC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The closed calendar: a vertical TAPE of weeks seen through a one-row window.
|
|
3
|
+
*
|
|
4
|
+
* Every week is a row stacked in one `Animated.View`; the window clips it and
|
|
5
|
+
* `weekPos` translates it, so crossing into the next week slides the tape up and
|
|
6
|
+
* crossing back slides it down — the owner's Teams reference (2026-09-11). A move
|
|
7
|
+
* of more than a week jumps: the agenda jumps too, and a slide through months
|
|
8
|
+
* would read as a blur.
|
|
9
|
+
*
|
|
10
|
+
* Selection is TWO pills riding the tape: the new day's fades in while the old
|
|
11
|
+
* day's fades out, on the UI thread, with no React commit. Each pill shows its
|
|
12
|
+
* day through one non-editable TextInput (`text` is an animated prop —
|
|
13
|
+
* Reanimated's own `PerformanceMonitor` idiom) and one dot for a marked day.
|
|
14
|
+
*
|
|
15
|
+
* Alternate months sit on a canvas band and a 1st carries its month's short name,
|
|
16
|
+
* so a month edge shows inside a week. A horizontal swipe moves one week.
|
|
17
|
+
*/
|
|
18
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
19
|
+
import { type AnimatedStyle } from 'react-native-reanimated';
|
|
20
|
+
type Props = {
|
|
21
|
+
width: number;
|
|
22
|
+
/** `cellLefts(width)`: one array per width, shared by every row. */
|
|
23
|
+
lefts: number[];
|
|
24
|
+
labels: string[];
|
|
25
|
+
ordinals: number[];
|
|
26
|
+
monthShortLabels?: readonly string[];
|
|
27
|
+
dots: (string | null)[];
|
|
28
|
+
onDayPress: (dayIndex: number) => void;
|
|
29
|
+
animatedStyle: StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
|
|
30
|
+
interactive: boolean;
|
|
31
|
+
};
|
|
32
|
+
export declare const WeekStrip: import("react").MemoExoticComponent<({ width, lefts, labels, ordinals, monthShortLabels, dots, onDayPress, animatedStyle, interactive, }: Props) => import("react").JSX.Element>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=WeekStrip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WeekStrip.d.ts","sourceRoot":"","sources":["../../../../src/expandable/WeekStrip.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAA0C,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtG,OAAiB,EAOf,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAuKjC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACxB,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAiKF,eAAO,MAAM,SAAS,4IArJnB,KAAK,iCAqJqC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-range tables the week strip and month grid render from, built in ONE
|
|
3
|
+
* integer pass over the range (no `Date`, no string parsing) and read by index.
|
|
4
|
+
*/
|
|
5
|
+
import type { CalendarRange, MarkedDates } from '../types';
|
|
6
|
+
export type MonthPages = {
|
|
7
|
+
count: number;
|
|
8
|
+
/** Weeks per page (4, 5 or 6). */
|
|
9
|
+
weeksByPage: number[];
|
|
10
|
+
/** Day index of the 1st of each page's month (may be negative for page 0). */
|
|
11
|
+
monthStartByPage: number[];
|
|
12
|
+
/** First grid index (a week start) per page. */
|
|
13
|
+
gridStartByPage: number[];
|
|
14
|
+
/**
|
|
15
|
+
* Month page per day index, UNCLAMPED: −1 before the first page, `count` after
|
|
16
|
+
* the last. The grid's "is this day in this month" test needs it unclamped;
|
|
17
|
+
* paging clamps at the read site.
|
|
18
|
+
*/
|
|
19
|
+
rawPageByIndex: number[];
|
|
20
|
+
};
|
|
21
|
+
export type CalendarCells = {
|
|
22
|
+
/** Day-of-month label per index. */
|
|
23
|
+
labels: string[];
|
|
24
|
+
/** y·12 + (m − 1) per index: the strip's month shading reads its parity, the month label its month. */
|
|
25
|
+
ordinalByIndex: number[];
|
|
26
|
+
pages: MonthPages;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Month pages span the SELECTABLE window only: the range is padded to whole
|
|
30
|
+
* weeks, and paging to a month with no selectable day would be a dead page.
|
|
31
|
+
*/
|
|
32
|
+
export declare const buildCalendarCells: (range: CalendarRange) => CalendarCells;
|
|
33
|
+
/** Page of a day index, clamped to `[0, count)` — for paging, never for the grid test. */
|
|
34
|
+
export declare const pageOfIndex: (pages: MonthPages, idx: number) => number;
|
|
35
|
+
/**
|
|
36
|
+
* Dot colour per index: `null` = no dot, `''` = marked with no colour given
|
|
37
|
+
* (render the default token), otherwise the caller's colour.
|
|
38
|
+
*/
|
|
39
|
+
export declare const buildDots: (range: CalendarRange, marked?: MarkedDates) => (string | null)[];
|
|
40
|
+
/** Left edge of weekday COLUMN `col` (0…7) — where the strip's month band starts and stops. */
|
|
41
|
+
export declare const columnEdge: (width: number, col: number) => number;
|
|
42
|
+
/**
|
|
43
|
+
* Left edge of weekday column `col`'s CELL: seven `flex: 1` columns inside 15 px side
|
|
44
|
+
* padding, each centring a 32 px cell — the library's layout, so strip, grid and
|
|
45
|
+
* pill share one formula and cannot sit a pixel apart.
|
|
46
|
+
*/
|
|
47
|
+
export declare const cellLeft: (width: number, col: number) => number;
|
|
48
|
+
/** The seven column lefts for one width — build once per width, not per cell. */
|
|
49
|
+
export declare const cellLefts: (width: number) => number[];
|
|
50
|
+
/** Column under an x coordinate within a row — the inverse, for page-level taps. */
|
|
51
|
+
export declare const columnAt: (width: number, x: number) => number;
|
|
52
|
+
//# sourceMappingURL=calendarCells.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendarCells.d.ts","sourceRoot":"","sources":["../../../../src/expandable/calendarCells.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM3D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gDAAgD;IAChD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,oCAAoC;IACpC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uGAAuG;IACvG,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,aAAa,KAAG,aAyDzD,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,EAAE,KAAK,MAAM,KAAG,MAK5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,aAAa,EAAE,SAAS,WAAW,KAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAUrF,CAAC;AAOF,+FAA+F;AAC/F,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAAuD,CAAC;AAEhH;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAIrD,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MAAM,EAI/C,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,GAAG,MAAM,KAAG,MAGnD,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The expandable calendar's geometry — numbers only, never a colour. Transcribed
|
|
3
|
+
* from `react-native-calendars`' style files (`calendar/day/basic/style.js`,
|
|
4
|
+
* `expandableCalendar/style.js`, `calendar/style.js`), then resized on
|
|
5
|
+
* 2026-09-11 toward the owner's Teams reference: a 40 px circle (was 32) with a
|
|
6
|
+
* month's short name above its 1st, in a row 2 px taller.
|
|
7
|
+
*/
|
|
8
|
+
/** The selection circle and the tap target of a day. */
|
|
9
|
+
export declare const DAY_CELL = 40;
|
|
10
|
+
export declare const WEEK_ROW_V_MARGIN = 4;
|
|
11
|
+
/** The cell plus its two margins — the library's `WEEK_HEIGHT` shape. */
|
|
12
|
+
export declare const WEEK_ROW_HEIGHT: number;
|
|
13
|
+
export declare const WEEK_ROW_H_PADDING = 15;
|
|
14
|
+
/**
|
|
15
|
+
* Declared, never measured: the strip positions its dots absolutely and the grid
|
|
16
|
+
* flows them under the text, and an undeclared line box put them ~1.6 px apart.
|
|
17
|
+
* Inter's line box is fontSize × 1.21.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DAY_LINE_HEIGHT: number;
|
|
20
|
+
export declare const DOT_SIZE = 4;
|
|
21
|
+
export declare const DOT_MARGIN_TOP = 1;
|
|
22
|
+
/** Number and dot centred in the cell. */
|
|
23
|
+
export declare const DAY_TEXT_MARGIN_TOP: number;
|
|
24
|
+
/** The strip's month name over a 1st, from the cell top; that cell's number and dot move under it. */
|
|
25
|
+
export declare const MONTH_LABEL_TOP = 1;
|
|
26
|
+
export declare const MONTH_LABEL_LINE_HEIGHT: number;
|
|
27
|
+
export declare const FIRST_OF_MONTH_TEXT_TOP: number;
|
|
28
|
+
export declare const KNOB_CONTAINER_HEIGHT = 24;
|
|
29
|
+
export declare const KNOB_WIDTH = 40;
|
|
30
|
+
export declare const KNOB_HEIGHT = 4;
|
|
31
|
+
/** The month layer is laid out once at the largest month's height. */
|
|
32
|
+
export declare const MAX_WEEKS = 6;
|
|
33
|
+
/** px a drag must travel before release commits to the other end. */
|
|
34
|
+
export declare const PAN_THRESHOLD = 30;
|
|
35
|
+
/** px/s: a faster flick decides the direction regardless of distance. */
|
|
36
|
+
export declare const SNAP_VELOCITY = 300;
|
|
37
|
+
/** Closed (one week), open on a `weeks`-row month, and the distance between; knob band included. */
|
|
38
|
+
export declare const calendarHeights: (weeks: number) => {
|
|
39
|
+
closed: number;
|
|
40
|
+
full: number;
|
|
41
|
+
travel: number;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/expandable/geometry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wDAAwD;AACxD,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,yEAAyE;AACzE,eAAO,MAAM,eAAe,QAAmC,CAAC;AAChE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAkC,CAAC;AAC/D,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,QAA2E,CAAC;AAE5G,sGAAsG;AACtG,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,uBAAuB,QAAmC,CAAC;AACxE,eAAO,MAAM,uBAAuB,QAA4C,CAAC;AAEjF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,sEAAsE;AACtE,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,qEAAqE;AACrE,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,yEAAyE;AACzE,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,oGAAoG;AACpG,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM;;;;CAK5C,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drag the calendar open and closed. `progress` moves (0 closed, 1 open); every
|
|
3
|
+
* layer reads it as a transform or opacity. Follows `ChartSheet.tsx`: remember
|
|
4
|
+
* where this drag began, clamp while dragging, land on an end. `activeOffsetY(±8)`
|
|
5
|
+
* and `failOffsetX(±12)` settle the axis against the horizontal pagers inside the
|
|
6
|
+
* same detector within the first few pixels.
|
|
7
|
+
*/
|
|
8
|
+
import { type SharedValue } from 'react-native-reanimated';
|
|
9
|
+
type OnToggled = (isOpen: boolean) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Snap to an end and report a CHANGE of end once it lands. Module scope, so the
|
|
12
|
+
* plugin workletizes it unconditionally. The duration scales with the distance
|
|
13
|
+
* left, so a release two pixels from open does not take the full animation.
|
|
14
|
+
*/
|
|
15
|
+
export declare const snap: (progress: SharedValue<number>, lastReported: SharedValue<number>, target: 0 | 1, reduceMotion: boolean, onToggled: OnToggled) => void;
|
|
16
|
+
type Params = {
|
|
17
|
+
progress: SharedValue<number>;
|
|
18
|
+
/** Open − closed height of the visible month, px. */
|
|
19
|
+
travel: SharedValue<number>;
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
openThreshold?: number;
|
|
22
|
+
closeThreshold?: number;
|
|
23
|
+
reduceMotion: boolean;
|
|
24
|
+
/** The starting end — passed in rather than read from `progress.value` during render. */
|
|
25
|
+
initialOpen: boolean;
|
|
26
|
+
/** Identity-stable: the gesture's worklets capture it. */
|
|
27
|
+
onToggled: OnToggled;
|
|
28
|
+
};
|
|
29
|
+
export declare const useExpandGesture: ({ progress, travel, enabled, openThreshold, closeThreshold, reduceMotion, initialOpen, onToggled, }: Params) => {
|
|
30
|
+
pan: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
|
|
31
|
+
snapTo: (target?: 0 | 1) => boolean;
|
|
32
|
+
lastReported: SharedValue<number>;
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=useExpandGesture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useExpandGesture.d.ts","sourceRoot":"","sources":["../../../../src/expandable/useExpandGesture.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAMjC,KAAK,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAS3C;;;;GAIG;AACH,eAAO,MAAM,IAAI,GACf,UAAU,WAAW,CAAC,MAAM,CAAC,EAC7B,cAAc,WAAW,CAAC,MAAM,CAAC,EACjC,QAAQ,CAAC,GAAG,CAAC,EACb,cAAc,OAAO,EACrB,WAAW,SAAS,SAcrB,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,qDAAqD;IACrD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,WAAW,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,qGAS9B,MAAM;;sBAyDK,CAAC,GAAG,CAAC,KAAG,OAAO;;CAS5B,CAAC"}
|