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,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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The month pager's horizontal paging over the kit's index space. The week strip
|
|
3
|
+
* shared it until it became a vertical tape (2026-09-11).
|
|
4
|
+
*
|
|
5
|
+
* A programmatic move pages to its day instantly; moves stamped with the pager's
|
|
6
|
+
* own `origin` are ignored. A doctor's swipe commits at momentum end, and only
|
|
7
|
+
* when it left its start page.
|
|
8
|
+
*/
|
|
9
|
+
import type Animated from 'react-native-reanimated';
|
|
10
|
+
import { type AnimatedRef, type SharedValue } from 'react-native-reanimated';
|
|
11
|
+
import type { MoveOrigin } from '../types';
|
|
12
|
+
/** The pager reads only drag begin and momentum end; the scroll events between are waste. */
|
|
13
|
+
export declare const PAGER_SCROLL_THROTTLE = 100;
|
|
14
|
+
export type HorizontalPagerParams = {
|
|
15
|
+
width: number;
|
|
16
|
+
initialPage: number;
|
|
17
|
+
origin: MoveOrigin;
|
|
18
|
+
/** Worklet, identity-stable: the page that shows day index `idx`. */
|
|
19
|
+
pageOf: (idx: number) => number;
|
|
20
|
+
/** The page shown or headed to, when the caller needs to read it; the hook owns one otherwise. */
|
|
21
|
+
page?: SharedValue<number>;
|
|
22
|
+
/** JS, identity-stable: the doctor's own swipe settled on a different page. */
|
|
23
|
+
onSettled: (page: number) => void;
|
|
24
|
+
};
|
|
25
|
+
export declare const useHorizontalPager: ({ width, initialPage, origin, pageOf, page: callerPage, onSettled, }: HorizontalPagerParams) => {
|
|
26
|
+
ref: AnimatedRef<Animated.ScrollView>;
|
|
27
|
+
onScroll: import("react-native-reanimated").ScrollHandlerProcessed<Record<string, unknown>>;
|
|
28
|
+
onLayout: () => void;
|
|
29
|
+
contentOffset: {
|
|
30
|
+
x: number;
|
|
31
|
+
y: number;
|
|
32
|
+
};
|
|
33
|
+
widthSV: SharedValue<number>;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=useHorizontalPager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHorizontalPager.d.ts","sourceRoot":"","sources":["../../../../src/expandable/useHorizontalPager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,6FAA6F;AAC7F,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,kGAAkG;IAClG,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,+EAA+E;IAC/E,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAeF,eAAO,MAAM,kBAAkB,GAAI,sEAOhC,qBAAqB;;;;;;;;;CAwDvB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* react-native-agenda-kit — the one barrel.
|
|
3
|
+
*
|
|
4
|
+
* Three surfaces (`ExpandableCalendar`, `AgendaList`, `TimelineList`) sharing
|
|
5
|
+
* one date owner (`CalendarProvider`) and one integer index space. The kit
|
|
6
|
+
* fetches nothing, knows no domain type, and reads only its own theme:
|
|
7
|
+
* everything domain-shaped arrives as a render prop or a primitive.
|
|
8
|
+
*
|
|
9
|
+
* Every scroll handler depends on the worklets babel plugin (shipped inside
|
|
10
|
+
* `babel-preset-expo`, or added manually via `react-native-worklets/plugin`);
|
|
11
|
+
* `core/worklets.ts` asserts it in DEV.
|
|
12
|
+
*/
|
|
13
|
+
export { AgendaList } from './agenda/AgendaList';
|
|
14
|
+
export { CalendarProvider, type CalendarProviderProps } from './core/CalendarProvider';
|
|
15
|
+
export { ExpandableCalendar } from './expandable/ExpandableCalendar';
|
|
16
|
+
export { TimelineList } from './timeline/TimelineDay';
|
|
17
|
+
export { KitText } from './core/KitText';
|
|
18
|
+
export { buildRange, clampIndex, dayIndexOf, todayIndexOf, ymdAt } from './core/dateKey';
|
|
19
|
+
export { useCalendarDate } from './core/CalendarContext';
|
|
20
|
+
export { epochDayOfYmd, todayEpochDay, ymdOfEpochDay } from './core/civil';
|
|
21
|
+
export { AgendaKitThemeProvider, darkTheme, lightTheme, resolveTheme, useKitTheme, type AgendaKitColors, type AgendaKitFonts, type AgendaKitTheme, type AgendaKitThemeProviderProps, type PartialAgendaKitTheme, } from './theme';
|
|
22
|
+
/** Static metrics the kit lays out with. Read them; they are not themeable. */
|
|
23
|
+
export { ANIMATION, EASING, FONT_SIZE, RADIUS, SPACING } from './theme/tokens';
|
|
24
|
+
export { UpdateSources } from './types';
|
|
25
|
+
export type { AgendaListProps, AgendaListRef, AgendaSection, AvailableHours, CalendarMove, CalendarPosition, CalendarRange, DateString, ExpandableCalendarProps, ExpandableCalendarRef, MarkedDates, MoveOrigin, PackedTimelineEvent, TimelineEvent, TimelineInnerProps, TimelineListProps, UpdateSource, } from './types';
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,GAC3B,MAAM,SAAS,CAAC;AACjB,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme plumbing. Two exports matter to a consumer: `AgendaKitThemeProvider`
|
|
3
|
+
* and `useKitTheme`. Everything else is how the kit builds stylesheets.
|
|
4
|
+
*
|
|
5
|
+
* A theme is optional — with no provider above it the kit renders `lightTheme`,
|
|
6
|
+
* so a consumer can drop `<ExpandableCalendar />` in and see something correct
|
|
7
|
+
* before deciding on colours.
|
|
8
|
+
*/
|
|
9
|
+
import { type ReactNode } from 'react';
|
|
10
|
+
import { type AgendaKitTheme, type PartialAgendaKitTheme } from './theme';
|
|
11
|
+
export type AgendaKitThemeProviderProps = {
|
|
12
|
+
/** A full theme, or a partial one layered over `lightTheme` / `darkTheme`. */
|
|
13
|
+
theme?: AgendaKitTheme | PartialAgendaKitTheme;
|
|
14
|
+
/** Which built-in to layer a partial theme over. Ignored for a full theme. */
|
|
15
|
+
base?: AgendaKitTheme;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
};
|
|
18
|
+
export declare const AgendaKitThemeProvider: ({ theme, base, children, }: AgendaKitThemeProviderProps) => import("react").JSX.Element;
|
|
19
|
+
export declare const useKitTheme: () => AgendaKitTheme;
|
|
20
|
+
export type KitStyleArgs = {
|
|
21
|
+
colors: AgendaKitTheme['colors'];
|
|
22
|
+
fonts: AgendaKitTheme['fonts'];
|
|
23
|
+
dark: boolean;
|
|
24
|
+
};
|
|
25
|
+
export type KitStyleFactory<T> = (args: KitStyleArgs) => T;
|
|
26
|
+
export declare function useKitStyles<T>(factory: KitStyleFactory<T>): T;
|
|
27
|
+
//# sourceMappingURL=ThemeProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAIjB,MAAM,MAAM,2BAA2B,GAAG;IACxC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,cAAc,GAAG,qBAAqB,CAAC;IAC/C,8EAA8E;IAC9E,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,4BAIpC,2BAA2B,gCAS7B,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,cAA0C,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,KAAK,CAAC,CAAC;AAmB3D,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAe9D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { AgendaKitThemeProvider, useKitStyles, useKitTheme, type AgendaKitThemeProviderProps, type KitStyleArgs, type KitStyleFactory, } from './ThemeProvider';
|
|
2
|
+
export { darkTheme, lightTheme, resolveTheme, type AgendaKitColors, type AgendaKitFonts, type AgendaKitTheme, type PartialAgendaKitTheme, } from './theme';
|
|
3
|
+
export { ANIMATION, EASING, FONT_SIZE, RADIUS, SPACING } from './tokens';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,KAAK,2BAA2B,EAChC,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The kit's entire visual surface: eleven colours and three font families.
|
|
3
|
+
*
|
|
4
|
+
* It is deliberately flat and deliberately small. Every name says what the
|
|
5
|
+
* value PAINTS, not where it came from in some design system — so a consumer
|
|
6
|
+
* can map their own tokens onto it in one object literal and know nothing was
|
|
7
|
+
* missed. If a colour is not in this list, the kit does not draw it.
|
|
8
|
+
*/
|
|
9
|
+
export type AgendaKitColors = {
|
|
10
|
+
/** Ground under the calendar, the agenda rows and the timeline. */
|
|
11
|
+
surface: string;
|
|
12
|
+
/** Recessed band behind the week strip, one step darker than `surface`. */
|
|
13
|
+
canvas: string;
|
|
14
|
+
/** Hairlines: hour lines, the grid, row and block borders. */
|
|
15
|
+
border: string;
|
|
16
|
+
/** Accent INK — today's number, dots, the Today pill's label, the refresh spinner. */
|
|
17
|
+
accent: string;
|
|
18
|
+
/** Accent FILL — the selected-day pill. The one place accent is a background. */
|
|
19
|
+
accentFill: string;
|
|
20
|
+
/** Text and icons that sit ON `accentFill`. */
|
|
21
|
+
onAccentFill: string;
|
|
22
|
+
/** Default event-block fill (a tint of the accent). */
|
|
23
|
+
accentSoft: string;
|
|
24
|
+
/** Available-hours wash behind the timeline (the faintest accent tint). */
|
|
25
|
+
accentSubtle: string;
|
|
26
|
+
/** Primary text: day numbers, event titles. */
|
|
27
|
+
text: string;
|
|
28
|
+
/** Metadata: hour labels, disabled days, weekday initials. */
|
|
29
|
+
textMuted: string;
|
|
30
|
+
/** The now line and its cap. The only non-accent hue the kit draws. */
|
|
31
|
+
nowIndicator: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Font families by weight. `undefined` means the platform default — the kit
|
|
35
|
+
* ships no fonts and never assumes one is loaded.
|
|
36
|
+
*/
|
|
37
|
+
export type AgendaKitFonts = {
|
|
38
|
+
regular?: string;
|
|
39
|
+
medium?: string;
|
|
40
|
+
semiBold?: string;
|
|
41
|
+
};
|
|
42
|
+
export type AgendaKitTheme = {
|
|
43
|
+
colors: AgendaKitColors;
|
|
44
|
+
fonts: AgendaKitFonts;
|
|
45
|
+
dark: boolean;
|
|
46
|
+
};
|
|
47
|
+
export type PartialAgendaKitTheme = {
|
|
48
|
+
colors?: Partial<AgendaKitColors>;
|
|
49
|
+
fonts?: Partial<AgendaKitFonts>;
|
|
50
|
+
dark?: boolean;
|
|
51
|
+
};
|
|
52
|
+
/** True-neutral greys (R=G=B) so the accent carries all the colour. */
|
|
53
|
+
export declare const lightTheme: AgendaKitTheme;
|
|
54
|
+
/**
|
|
55
|
+
* `text` is #CCCCCC, not white: a bold stroke at 14:1 on a dark surface blooms
|
|
56
|
+
* optically and reads as glowing. The accent FILL does not lift (white on the
|
|
57
|
+
* lighter #818CF8 is only 2.99:1) — only the INK does.
|
|
58
|
+
*/
|
|
59
|
+
export declare const darkTheme: AgendaKitTheme;
|
|
60
|
+
/** Shallow-merges each group. Called once per distinct input, in the provider. */
|
|
61
|
+
export declare const resolveTheme: (base: AgendaKitTheme, overrides?: PartialAgendaKitTheme) => AgendaKitTheme;
|
|
62
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/theme/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,cAgBxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,cAgBvB,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,YAAY,GACvB,MAAM,cAAc,EACpB,YAAY,qBAAqB,KAChC,cAOF,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static metrics. NOT themeable, on purpose.
|
|
3
|
+
*
|
|
4
|
+
* Row heights, week-strip geometry and the packer all read these at module
|
|
5
|
+
* scope — `expandable/geometry.ts` computes line heights from `FONT_SIZE`
|
|
6
|
+
* before any React tree exists. A themeable font size would mean measuring at
|
|
7
|
+
* runtime, which is exactly what this kit refuses to do (declared heights are
|
|
8
|
+
* why a fling never shifts the list).
|
|
9
|
+
*
|
|
10
|
+
* Motion is here for the same reason: `KIT_EASING` is captured by worklets at
|
|
11
|
+
* module scope, so it cannot depend on a React context.
|
|
12
|
+
*
|
|
13
|
+
* Colours and font FAMILIES are themeable — see `theme.ts`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const SPACING: {
|
|
16
|
+
readonly 0: 0;
|
|
17
|
+
readonly 1: 4;
|
|
18
|
+
readonly 2: 8;
|
|
19
|
+
readonly 3: 12;
|
|
20
|
+
readonly 4: 16;
|
|
21
|
+
readonly 5: 20;
|
|
22
|
+
readonly 6: 24;
|
|
23
|
+
readonly 8: 32;
|
|
24
|
+
};
|
|
25
|
+
export declare const FONT_SIZE: {
|
|
26
|
+
readonly xxs: 11;
|
|
27
|
+
readonly xs: 12;
|
|
28
|
+
readonly sm: 14;
|
|
29
|
+
readonly base: 16;
|
|
30
|
+
};
|
|
31
|
+
export declare const RADIUS: {
|
|
32
|
+
readonly none: 0;
|
|
33
|
+
readonly card: 8;
|
|
34
|
+
readonly inner: 6;
|
|
35
|
+
readonly full: 9999;
|
|
36
|
+
};
|
|
37
|
+
/** Milliseconds. Short on purpose: a calendar that animates slowly feels broken. */
|
|
38
|
+
export declare const ANIMATION: {
|
|
39
|
+
readonly fast: 80;
|
|
40
|
+
readonly base: 120;
|
|
41
|
+
readonly slow: 180;
|
|
42
|
+
};
|
|
43
|
+
export declare const EASING: {
|
|
44
|
+
readonly bezier: [number, number, number, number];
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/theme/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,OAAO;;;;;;;;;CASV,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;CAKT,CAAC;AAEX,oFAAoF;AACpF,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,eAAO,MAAM,MAAM;qBACS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;CAClD,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One day as two absolute layers, so the pager can slot the shared hour lines between them:
|
|
3
|
+
* `DayBands` (availability) under the lines, `DayEvents` (packed blocks, then the now-line) above.
|
|
4
|
+
* Packing is memoised on the day's own event array: mounting a neighbour packs one day.
|
|
5
|
+
*/
|
|
6
|
+
import { type ReactElement } from 'react';
|
|
7
|
+
import type { SharedValue } from 'react-native-reanimated';
|
|
8
|
+
import type { AvailableHours, PackedTimelineEvent, TimelineEvent } from '../types';
|
|
9
|
+
type BandsProps = {
|
|
10
|
+
left: number;
|
|
11
|
+
width: number;
|
|
12
|
+
availableHours: AvailableHours | undefined;
|
|
13
|
+
color: string;
|
|
14
|
+
hourHeight: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const DayBands: import("react").MemoExoticComponent<({ left, width, availableHours, color, hourHeight }: BandsProps) => import("react").JSX.Element | null>;
|
|
17
|
+
type EventsProps<E extends TimelineEvent> = {
|
|
18
|
+
left: number;
|
|
19
|
+
width: number;
|
|
20
|
+
events: E[] | undefined;
|
|
21
|
+
hourHeight: number;
|
|
22
|
+
overlapEventsSpacing: number;
|
|
23
|
+
rightEdgeSpacing: number;
|
|
24
|
+
renderEvent?: (event: PackedTimelineEvent<E>) => ReactElement | null;
|
|
25
|
+
onEventPress?: (event: PackedTimelineEvent<E>) => void;
|
|
26
|
+
/** Only on today's column while the indicator is on; stable, so a minute tick renders nothing. */
|
|
27
|
+
nowMinutes?: SharedValue<number>;
|
|
28
|
+
};
|
|
29
|
+
declare const DayEventsInner: <E extends TimelineEvent>({ left, width, events, hourHeight, overlapEventsSpacing, rightEdgeSpacing, renderEvent, onEventPress, nowMinutes, }: EventsProps<E>) => import("react").JSX.Element | null;
|
|
30
|
+
export declare const DayEvents: typeof DayEventsInner;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=DayColumn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayColumn.d.ts","sourceRoot":"","sources":["../../../../src/timeline/DayColumn.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMnF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF,eAAO,MAAM,QAAQ,2FAbsD,UAAU,wCAa1C,CAAC;AAG5C,KAAK,WAAW,CAAC,CAAC,SAAS,aAAa,IAAI;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC;IACrE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACvD,kGAAkG;IAClG,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,CAAC,SAAS,aAAa,EAAE,qHAU9C,WAAW,CAAC,CAAC,CAAC,uCAchB,CAAC;AAEF,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Day columns, paged horizontally across the SELECTABLE days (the range is padded to whole weeks;
|
|
3
|
+
* a swipe must not land on padding). Column `i` sits at `(i − minIndex) · width`; only the centre
|
|
4
|
+
* and its neighbours are mounted. Content stacking is the library's: bands → lines → events.
|
|
5
|
+
*
|
|
6
|
+
* The doctor's swipe commits at MOMENTUM END as `origin: 'timeline'`, which this pager ignores.
|
|
7
|
+
* Any other move animates to a mounted neighbour, or mounts the destination first (keeping the
|
|
8
|
+
* current columns), jumps once it exists, and releases the old columns on the first scroll there.
|
|
9
|
+
*
|
|
10
|
+
* `contentOffset` is read once: the native ScrollView re-applies it whenever its value changes, so
|
|
11
|
+
* a width-derived offset per render would throw the pager back to the day it opened on.
|
|
12
|
+
*/
|
|
13
|
+
import { type ReactElement } from 'react';
|
|
14
|
+
import type { AvailableHours, DateString, PackedTimelineEvent, TimelineEvent } from '../types';
|
|
15
|
+
type Props<E extends TimelineEvent> = {
|
|
16
|
+
left: number;
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
events: Record<DateString, E[]>;
|
|
20
|
+
availableHoursFor: (ymd: DateString) => AvailableHours | undefined;
|
|
21
|
+
bandColor: string;
|
|
22
|
+
hourHeight: number;
|
|
23
|
+
overlapEventsSpacing: number;
|
|
24
|
+
rightEdgeSpacing: number;
|
|
25
|
+
renderEvent?: (event: PackedTimelineEvent<E>) => ReactElement | null;
|
|
26
|
+
onEventPress?: (event: PackedTimelineEvent<E>) => void;
|
|
27
|
+
showNowIndicator: boolean;
|
|
28
|
+
};
|
|
29
|
+
declare const DayPagerInner: <E extends TimelineEvent>({ left, width, height, events, availableHoursFor, bandColor, hourHeight, overlapEventsSpacing, rightEdgeSpacing, renderEvent, onEventPress, showNowIndicator, }: Props<E>) => import("react").JSX.Element;
|
|
30
|
+
export declare const DayPager: typeof DayPagerInner;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=DayPager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayPager.d.ts","sourceRoot":"","sources":["../../../../src/timeline/DayPager.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAYf,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAe/F,KAAK,KAAK,CAAC,CAAC,SAAS,aAAa,IAAI;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,cAAc,GAAG,SAAS,CAAC;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC;IACrE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,CAAC,SAAS,aAAa,EAAE,iKAa7C,KAAK,CAAC,CAAC,CAAC,gCAmNV,CAAC;AAEF,eAAO,MAAM,QAAQ,EAA0B,OAAO,aAAa,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One packed event: the library's `EventBlock` container (absolute, `minHeight: 25`, padding 4/5,
|
|
3
|
+
* 0.9 opacity when pressed) around the caller's `renderEvent`. The fill is the event's own colour,
|
|
4
|
+
* else the soft accent token; the hairline ring gives a pastel block an edge on the dark palette
|
|
5
|
+
*.
|
|
6
|
+
*/
|
|
7
|
+
import { type ReactElement } from 'react';
|
|
8
|
+
import type { PackedTimelineEvent, TimelineEvent } from '../types';
|
|
9
|
+
type Props<E extends TimelineEvent> = {
|
|
10
|
+
event: PackedTimelineEvent<E>;
|
|
11
|
+
renderEvent?: (event: PackedTimelineEvent<E>) => ReactElement | null;
|
|
12
|
+
onPress?: (event: PackedTimelineEvent<E>) => void;
|
|
13
|
+
};
|
|
14
|
+
declare const EventBlockInner: <E extends TimelineEvent>({ event, renderEvent, onPress }: Props<E>) => import("react").JSX.Element;
|
|
15
|
+
export declare const EventBlock: typeof EventBlockInner;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=EventBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBlock.d.ts","sourceRoot":"","sources":["../../../../src/timeline/EventBlock.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGnE,KAAK,KAAK,CAAC,CAAC,SAAS,aAAa,IAAI;IACpC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC;IACrE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS,aAAa,EAAE,iCAAiC,KAAK,CAAC,CAAC,CAAC,gCA6B1F,CAAC;AAEF,eAAO,MAAM,UAAU,EAA4B,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** The half-hour and hour lines: ONE layer across the pager's whole content, between bands and events. */
|
|
2
|
+
export declare const ColumnLines: import("react").MemoExoticComponent<({ hourHeight }: {
|
|
3
|
+
hourHeight: number;
|
|
4
|
+
}) => import("react").JSX.Element>;
|
|
5
|
+
//# sourceMappingURL=GridLines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridLines.d.ts","sourceRoot":"","sources":["../../../../src/timeline/GridLines.tsx"],"names":[],"mappings":"AAAA,0GAA0G;AAuB1G,eAAO,MAAM,WAAW,uDAjBkB;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,iCAiBf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The time gutter: hour labels, the gutter's edge, and each line's 16 px stub into the gutter
|
|
3
|
+
* (`TimelineHours.js` starts lines at `timelineLeftInset − 16`). The stubs stay here because the
|
|
4
|
+
* pager starts at `GUTTER` and clips, so its shared line layer cannot reach into the gutter.
|
|
5
|
+
*/
|
|
6
|
+
type Props = {
|
|
7
|
+
hourHeight: number;
|
|
8
|
+
format24h: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const HourGrid: import("react").MemoExoticComponent<({ hourHeight, format24h }: Props) => import("react").JSX.Element>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=HourGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HourGrid.d.ts","sourceRoot":"","sources":["../../../../src/timeline/HourGrid.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,KAAK,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAgCxD,eAAO,MAAM,QAAQ,kEA9B6B,KAAK,iCA8BZ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The now-line. The minute lives in a SharedValue re-read just past each minute boundary (a bare
|
|
3
|
+
* 60 s interval started mid-minute runs late for the life of the screen) and on foreground; the
|
|
4
|
+
* line and knob move through animated styles, so a tick is zero React commits. No spring: a line
|
|
5
|
+
* that overshoots claims a time that is not now. The pager clips at the gutter, so `NowKnob` draws
|
|
6
|
+
* the whole dot above it at rest and hides mid-swipe — a worklet-driven knob trails by a frame.
|
|
7
|
+
*/
|
|
8
|
+
import { type SharedValue } from 'react-native-reanimated';
|
|
9
|
+
/** Minutes since local midnight, shared by the line and the knob. Disabled means no timer. */
|
|
10
|
+
export declare const useNowMinutesSV: (enabled: boolean) => SharedValue<number>;
|
|
11
|
+
type Props = {
|
|
12
|
+
hourHeight: number;
|
|
13
|
+
minutes: SharedValue<number>;
|
|
14
|
+
};
|
|
15
|
+
export declare const NowIndicator: import("react").MemoExoticComponent<({ hourHeight, minutes }: Props) => import("react").JSX.Element>;
|
|
16
|
+
type KnobProps = {
|
|
17
|
+
/** The pager's left edge in the timeline content — where today's column starts at rest. */
|
|
18
|
+
left: number;
|
|
19
|
+
hourHeight: number;
|
|
20
|
+
minutes: SharedValue<number>;
|
|
21
|
+
/** Today's page, and the live pager position it is compared against. */
|
|
22
|
+
page: number;
|
|
23
|
+
pageWidth: SharedValue<number>;
|
|
24
|
+
scrollX: SharedValue<number>;
|
|
25
|
+
};
|
|
26
|
+
export declare const NowKnob: import("react").MemoExoticComponent<({ left, hourHeight, minutes, page, pageWidth, scrollX }: KnobProps) => import("react").JSX.Element>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=NowIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NowIndicator.d.ts","sourceRoot":"","sources":["../../../../src/timeline/NowIndicator.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAiB,EAGf,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AASjC,8FAA8F;AAC9F,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,WAAW,CAAC,MAAM,CAyBpE,CAAC;AAEF,KAAK,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAalE,eAAO,MAAM,YAAY,gEAX2B,KAAK,iCAWN,CAAC;AAGpD,KAAK,SAAS,GAAG;IACf,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9B,CAAC;AAoBF,eAAO,MAAM,OAAO,gGAlB2D,SAAS,iCAkB/C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The day view: ONE vertical ScrollView holding the time gutter and the day pager, so every day
|
|
3
|
+
* shares the vertical offset by construction. The start offset is a mount-time `contentOffset`;
|
|
4
|
+
* the caller mounts this conditionally, so every open recomputes it.
|
|
5
|
+
*
|
|
6
|
+
* The width is seeded from the window so the FIRST commit already holds the day columns (waiting
|
|
7
|
+
* for `onLayout` painted an empty grid first); `onLayout` corrects it when not full-width.
|
|
8
|
+
*
|
|
9
|
+
* `timelineProps.availableHours` replaces the library's inverted `unavailableHours` and also takes
|
|
10
|
+
* a per-date map, so a neighbouring day's bands are right mid-swipe.
|
|
11
|
+
*/
|
|
12
|
+
import type { TimelineEvent, TimelineListProps } from '../types';
|
|
13
|
+
export declare const TimelineList: <E extends TimelineEvent>({ events, timelineProps, showNowIndicator, scrollToNow, scrollToFirst, initialTime, }: TimelineListProps<E>) => import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=TimelineDay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimelineDay.d.ts","sourceRoot":"","sources":["../../../../src/timeline/TimelineDay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAc,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,aAAa,EAAE,uFAOnD,iBAAiB,CAAC,CAAC,CAAC,gCA2EtB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overlap packing for one day column — `react-native-calendars`' `Packer.js`, in minutes, so
|
|
3
|
+
* blocks land where react-native-calendars put them. Sort by start then end; a new overlap group starts
|
|
4
|
+
* at or after the latest end seen; first-fit into columns; each event gets `1/n` of the width,
|
|
5
|
+
* widened across later columns it does not collide with.
|
|
6
|
+
*
|
|
7
|
+
* Deliberate edge differences: a missing `end` is start + 60; an `end` at or before `start` is
|
|
8
|
+
* start + 15 (the library drew a negative height); collisions use an end of at least start + 15,
|
|
9
|
+
* so two zero-length events at one minute get their own columns.
|
|
10
|
+
*
|
|
11
|
+
* Invariant the span pass relies on: a column's events are sorted and pairwise disjoint, so the
|
|
12
|
+
* last event placed in a column is the only one that can still overlap a later-starting event.
|
|
13
|
+
* `lib/overlap-detection.ts` cannot execute (gap-6) — do not swap it in.
|
|
14
|
+
*/
|
|
15
|
+
import type { PackedTimelineEvent, TimelineEvent } from '../types';
|
|
16
|
+
type PackOptions = {
|
|
17
|
+
/** Width of the day column, px. */
|
|
18
|
+
colW: number;
|
|
19
|
+
hourHeight: number;
|
|
20
|
+
overlapEventsSpacing?: number;
|
|
21
|
+
rightEdgeSpacing?: number;
|
|
22
|
+
};
|
|
23
|
+
export declare const packEvents: <E extends TimelineEvent>(events: E[] | undefined, { colW, hourHeight, overlapEventsSpacing, rightEdgeSpacing }: PackOptions) => PackedTimelineEvent<E>[];
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=packEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packEvents.d.ts","sourceRoot":"","sources":["../../../../src/timeline/packEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgBnE,KAAK,WAAW,GAAG;IACjB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,aAAa,EAChD,QAAQ,CAAC,EAAE,GAAG,SAAS,EACvB,8DAAsE,WAAW,KAChF,mBAAmB,CAAC,CAAC,CAAC,EA2ExB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** px per hour. The live event card's layout branches (<25 / <50 / <70) assume it. */
|
|
2
|
+
export declare const HOUR_HEIGHT = 100;
|
|
3
|
+
export declare const GUTTER = 72;
|
|
4
|
+
/** Hour lines start this far inside the gutter (`timelineLeftInset - 16`). */
|
|
5
|
+
export declare const LINE_GUTTER_OVERHANG = 16;
|
|
6
|
+
/** Labels sit 6 px above their line, centred in the 56 px label box. */
|
|
7
|
+
export declare const LABEL_OFFSET_Y = -6;
|
|
8
|
+
export declare const LABEL_PADDING_LEFT = 12;
|
|
9
|
+
/** `contentStyle.height: calendarHeight + 10`. */
|
|
10
|
+
export declare const CONTENT_BOTTOM_PAD = 10;
|
|
11
|
+
export declare const EVENT_MIN_HEIGHT = 25;
|
|
12
|
+
export declare const NOW_KNOB = 7;
|
|
13
|
+
export declare const gridHeight: (hourHeight: number) => number;
|
|
14
|
+
//# sourceMappingURL=timelineGeometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timelineGeometry.d.ts","sourceRoot":"","sources":["../../../../src/timeline/timelineGeometry.ts"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,eAAO,MAAM,MAAM,KAAK,CAAC;AAEzB,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,wEAAwE;AACxE,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,eAAO,MAAM,UAAU,GAAI,YAAY,MAAM,KAAG,MAAyB,CAAC"}
|