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,349 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The agenda: one `Animated.ScrollView`, absolute slots over a declared layout,
|
|
5
|
+
* a skeleton backdrop behind it and the stuck header over it.
|
|
6
|
+
*
|
|
7
|
+
* Compat with the react-native-calendars screen's `AgendaList` JSX, plus two things the library
|
|
8
|
+
* only pretended to do: real sticky headers and real pull-to-refresh.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { memo, useCallback, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
12
|
+
import { RefreshControl, StyleSheet, View } from 'react-native';
|
|
13
|
+
import Animated, { scrollTo, useAnimatedReaction, useAnimatedRef, useSharedValue } from 'react-native-reanimated';
|
|
14
|
+
import { runOnJS, scheduleOnUI } from 'react-native-worklets';
|
|
15
|
+
import { useKitTheme } from "../theme/index.js";
|
|
16
|
+
import { useCalendarContext } from "../core/CalendarContext.js";
|
|
17
|
+
import { clampIndex, dayIndexOf } from "../core/dateKey.js";
|
|
18
|
+
import { bsearchLE } from "../core/worklets.js";
|
|
19
|
+
import { AgendaBackdrop } from "./AgendaBackdrop.js";
|
|
20
|
+
import { AgendaWindow } from "./AgendaWindow.js";
|
|
21
|
+
import { buildAgendaLayout } from "./buildAgendaLayout.js";
|
|
22
|
+
import { BUCKET_REST } from "./constants.js";
|
|
23
|
+
import { StickyHeaderOverlay } from "./StickyHeaderOverlay.js";
|
|
24
|
+
import { useAgendaScrollSync } from "./useAgendaScrollSync.js";
|
|
25
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
+
const MY_ORIGIN = 'agenda';
|
|
27
|
+
const EMPTY_TABLES = {
|
|
28
|
+
offsets: [],
|
|
29
|
+
sectionOffset: [],
|
|
30
|
+
sectionStart: [],
|
|
31
|
+
monthOfSection: []
|
|
32
|
+
};
|
|
33
|
+
const defaultGetItemType = item => item?.itemCustomHeightType ?? 'Regular';
|
|
34
|
+
const defaultKeyExtractor = (item, index) => item?.id ?? `row-${index}`;
|
|
35
|
+
|
|
36
|
+
/** Every scroll this list issues goes through here; see `programmaticY` in the sync. */
|
|
37
|
+
const scrollListTo = (ref, programmaticY, moving, y, animated) => {
|
|
38
|
+
'worklet';
|
|
39
|
+
|
|
40
|
+
moving.value = 0;
|
|
41
|
+
programmaticY.value = animated ? y : -1;
|
|
42
|
+
scrollTo(ref, 0, y, animated);
|
|
43
|
+
};
|
|
44
|
+
const AgendaListInner = ({
|
|
45
|
+
sections,
|
|
46
|
+
renderItem,
|
|
47
|
+
renderSectionHeader,
|
|
48
|
+
itemHeightByType,
|
|
49
|
+
sectionHeaderHeight = 32,
|
|
50
|
+
getItemType = defaultGetItemType,
|
|
51
|
+
keyExtractor = defaultKeyExtractor,
|
|
52
|
+
stickySectionHeadersEnabled = false,
|
|
53
|
+
refreshing = false,
|
|
54
|
+
onRefresh,
|
|
55
|
+
decelerationRate = 0.985,
|
|
56
|
+
backdrop,
|
|
57
|
+
rowGroundColor,
|
|
58
|
+
ref,
|
|
59
|
+
onDragBegin,
|
|
60
|
+
onSettle
|
|
61
|
+
}) => {
|
|
62
|
+
const {
|
|
63
|
+
colors
|
|
64
|
+
} = useKitTheme();
|
|
65
|
+
const {
|
|
66
|
+
range,
|
|
67
|
+
store,
|
|
68
|
+
dateRef,
|
|
69
|
+
setDate,
|
|
70
|
+
commitDate,
|
|
71
|
+
reduceMotion
|
|
72
|
+
} = useCalendarContext();
|
|
73
|
+
const listRef = useAnimatedRef();
|
|
74
|
+
const headerIntern = useRef(new Map());
|
|
75
|
+
const heightForType = useCallback(type => itemHeightByType[type] ?? itemHeightByType.Regular ?? 0, [itemHeightByType]);
|
|
76
|
+
const layout = useMemo(() => buildAgendaLayout({
|
|
77
|
+
sections,
|
|
78
|
+
sectionHeaderHeight,
|
|
79
|
+
heightForType,
|
|
80
|
+
getItemType,
|
|
81
|
+
keyExtractor,
|
|
82
|
+
headerIntern: headerIntern.current
|
|
83
|
+
}), [sections, sectionHeaderHeight, heightForType, getItemType, keyExtractor]);
|
|
84
|
+
const layoutRef = useRef(layout);
|
|
85
|
+
layoutRef.current = layout;
|
|
86
|
+
const tablesSV = useSharedValue(EMPTY_TABLES);
|
|
87
|
+
const viewportSV = useSharedValue(0);
|
|
88
|
+
|
|
89
|
+
// Mount at the committed day with zero scroll: `contentOffset` is honoured on
|
|
90
|
+
// the first frame (M0), and the first window already holds its rows.
|
|
91
|
+
const [initialSection] = useState(() => clampIndex(range, dayIndexOf(range, dateRef.current)));
|
|
92
|
+
const [initialOffset] = useState(() => layout.sectionOffset[initialSection] ?? 0);
|
|
93
|
+
const [contentOffset] = useState(() => ({
|
|
94
|
+
x: 0,
|
|
95
|
+
y: initialOffset
|
|
96
|
+
}));
|
|
97
|
+
const [windowRange, setWindowRange] = useState(() => {
|
|
98
|
+
const row = layout.sectionStart[initialSection] ?? 0;
|
|
99
|
+
return {
|
|
100
|
+
first: Math.max(0, row - BUCKET_REST),
|
|
101
|
+
last: row + 4 * BUCKET_REST
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
const [fastMotion, setFastMotion] = useState(false);
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* A long programmatic move lands on rows that are not mounted. The destination
|
|
108
|
+
* slice mounts first, beside the current rows; the jump happens once it exists
|
|
109
|
+
* and the slice is released by the next window update. No skeleton frames.
|
|
110
|
+
*/
|
|
111
|
+
const [jumpRange, setJumpRange] = useState(null);
|
|
112
|
+
const pendingJumpY = useRef(null);
|
|
113
|
+
const releaseJump = useRef(false);
|
|
114
|
+
const onWindowChange = useCallback((first, last) => {
|
|
115
|
+
setWindowRange(was => was.first === first && was.last === last ? was : {
|
|
116
|
+
first,
|
|
117
|
+
last
|
|
118
|
+
});
|
|
119
|
+
if (releaseJump.current) {
|
|
120
|
+
releaseJump.current = false;
|
|
121
|
+
setJumpRange(null);
|
|
122
|
+
}
|
|
123
|
+
}, []);
|
|
124
|
+
const onCommitDate = useCallback(idx => commitDate(idx, 'listDrag', MY_ORIGIN), [commitDate]);
|
|
125
|
+
const {
|
|
126
|
+
scrollY,
|
|
127
|
+
currentSection,
|
|
128
|
+
moving,
|
|
129
|
+
fast,
|
|
130
|
+
programmaticY,
|
|
131
|
+
windowFirst,
|
|
132
|
+
windowLast,
|
|
133
|
+
scrollHandler,
|
|
134
|
+
applyOffset
|
|
135
|
+
} = useAgendaScrollSync({
|
|
136
|
+
tablesSV,
|
|
137
|
+
viewportSV,
|
|
138
|
+
headerHeight: sectionHeaderHeight,
|
|
139
|
+
dayIndex: store.dayIndex,
|
|
140
|
+
listDragSeq: store.listDragSeq,
|
|
141
|
+
onWindowChange,
|
|
142
|
+
onCommitDate,
|
|
143
|
+
onFastChange: setFastMotion,
|
|
144
|
+
onDragBegin,
|
|
145
|
+
onSettle
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Publish the tables; if the content changed under a laid-out list, keep the
|
|
150
|
+
* doctor's day in place — the current section plus how far into it we were —
|
|
151
|
+
* in the same commit that resizes the content.
|
|
152
|
+
*
|
|
153
|
+
* The anchor is computed ON the UI thread, which owns `scrollY` and
|
|
154
|
+
* `currentSection`: read from JS they can predate a queued re-anchor or
|
|
155
|
+
* `onLayout`'s seeding, and a rebuild landing in that gap kept the wrong offset.
|
|
156
|
+
*/
|
|
157
|
+
const prevSectionOffset = useRef(null);
|
|
158
|
+
useLayoutEffect(() => {
|
|
159
|
+
const prev = prevSectionOffset.current;
|
|
160
|
+
const next = layout.sectionOffset;
|
|
161
|
+
prevSectionOffset.current = next;
|
|
162
|
+
tablesSV.value = {
|
|
163
|
+
offsets: layout.offsets,
|
|
164
|
+
sectionOffset: layout.sectionOffset,
|
|
165
|
+
sectionStart: layout.sectionStart,
|
|
166
|
+
monthOfSection: layout.monthOfSection
|
|
167
|
+
};
|
|
168
|
+
if (prev === null || prev.length === next.length && prev.every((v, i) => v === next[i])) return;
|
|
169
|
+
scheduleOnUI(() => {
|
|
170
|
+
'worklet';
|
|
171
|
+
|
|
172
|
+
// No viewport yet means no position to keep: `onLayout` anchors on the day.
|
|
173
|
+
if (viewportSV.value === 0) return;
|
|
174
|
+
const s = currentSection.value;
|
|
175
|
+
const from = prev[s];
|
|
176
|
+
const to = next[s];
|
|
177
|
+
if (from === undefined || to === undefined) return;
|
|
178
|
+
const y = to + (scrollY.value - from);
|
|
179
|
+
if (Math.abs(y - scrollY.value) <= 1) return;
|
|
180
|
+
scrollListTo(listRef, programmaticY, moving, y, false);
|
|
181
|
+
// Owned now: the next rebuild may be queued before this scroll's event arrives.
|
|
182
|
+
scrollY.value = y;
|
|
183
|
+
});
|
|
184
|
+
}, [currentSection, layout, listRef, moving, programmaticY, scrollY, tablesSV, viewportSV]);
|
|
185
|
+
const prepareJump = useCallback(y => {
|
|
186
|
+
const H = viewportSV.value || 800;
|
|
187
|
+
const {
|
|
188
|
+
offsets,
|
|
189
|
+
rows
|
|
190
|
+
} = layoutRef.current;
|
|
191
|
+
pendingJumpY.current = y;
|
|
192
|
+
setJumpRange({
|
|
193
|
+
first: bsearchLE(offsets, y - 0.5 * H) & -BUCKET_REST,
|
|
194
|
+
last: Math.min(rows.length - 1, bsearchLE(offsets, y + 2 * H) | BUCKET_REST - 1)
|
|
195
|
+
});
|
|
196
|
+
}, [viewportSV]);
|
|
197
|
+
|
|
198
|
+
// Moves from other surfaces. Our own are ignored: that is the echo-proofing.
|
|
199
|
+
useAnimatedReaction(() => store.move.value, (m, prev) => {
|
|
200
|
+
if (!prev || m.seq === prev.seq || m.origin === MY_ORIGIN || viewportSV.value === 0) return;
|
|
201
|
+
const {
|
|
202
|
+
offsets,
|
|
203
|
+
sectionOffset
|
|
204
|
+
} = tablesSV.value;
|
|
205
|
+
const y = sectionOffset[m.idx];
|
|
206
|
+
if (y === undefined) return;
|
|
207
|
+
const top = offsets[windowFirst.value] ?? 0;
|
|
208
|
+
const bottom = offsets[windowLast.value + 1] ?? offsets[offsets.length - 1] ?? 0;
|
|
209
|
+
if (y >= top && y + viewportSV.value <= bottom) scrollListTo(listRef, programmaticY, moving, y, m.animated);else runOnJS(prepareJump)(y);
|
|
210
|
+
}, [prepareJump]);
|
|
211
|
+
useLayoutEffect(() => {
|
|
212
|
+
const y = pendingJumpY.current;
|
|
213
|
+
if (jumpRange === null || y === null) return;
|
|
214
|
+
pendingJumpY.current = null;
|
|
215
|
+
releaseJump.current = true;
|
|
216
|
+
scheduleOnUI(() => {
|
|
217
|
+
'worklet';
|
|
218
|
+
|
|
219
|
+
scrollListTo(listRef, programmaticY, moving, y, false);
|
|
220
|
+
});
|
|
221
|
+
}, [jumpRange, listRef, moving, programmaticY]);
|
|
222
|
+
const scrollToY = useCallback((y, animated) => {
|
|
223
|
+
const anim = animated && !reduceMotion;
|
|
224
|
+
scheduleOnUI(() => {
|
|
225
|
+
'worklet';
|
|
226
|
+
|
|
227
|
+
if (viewportSV.value > 0) scrollListTo(listRef, programmaticY, moving, y, anim);
|
|
228
|
+
});
|
|
229
|
+
}, [listRef, moving, programmaticY, reduceMotion, viewportSV]);
|
|
230
|
+
useImperativeHandle(ref, () => ({
|
|
231
|
+
// Dates outside the window are dropped by design: the section list is a
|
|
232
|
+
// pure function of the window and must not grow.
|
|
233
|
+
scrollToDate: (date, animated = true) => {
|
|
234
|
+
const idx = layout.sectionByTitle.get(date);
|
|
235
|
+
if (idx === undefined) return;
|
|
236
|
+
setDate(date, 'propUpdate', MY_ORIGIN, animated);
|
|
237
|
+
scrollToY(layout.sectionOffset[idx], animated);
|
|
238
|
+
},
|
|
239
|
+
scrollToSection: (title, animated = true) => {
|
|
240
|
+
const idx = layout.sectionByTitle.get(title);
|
|
241
|
+
if (idx !== undefined) scrollToY(layout.sectionOffset[idx], animated);
|
|
242
|
+
},
|
|
243
|
+
scrollToOffset: ({
|
|
244
|
+
offset,
|
|
245
|
+
animated = true
|
|
246
|
+
}) => scrollToY(offset, animated)
|
|
247
|
+
}), [layout, scrollToY, setDate]);
|
|
248
|
+
const laidOut = useRef(false);
|
|
249
|
+
const onLayout = useCallback(e => {
|
|
250
|
+
viewportSV.value = e.nativeEvent.layout.height;
|
|
251
|
+
if (laidOut.current) return;
|
|
252
|
+
laidOut.current = true;
|
|
253
|
+
const fallback = initialOffset;
|
|
254
|
+
scheduleOnUI(() => {
|
|
255
|
+
'worklet';
|
|
256
|
+
|
|
257
|
+
// Anchor on the committed DAY in the tables as they are now, not on the
|
|
258
|
+
// first render's pixel offset: rows that change between mount and first
|
|
259
|
+
// layout (shimmer → data) move that day, and the re-anchor above cannot
|
|
260
|
+
// act without a viewport. The list opened on the right pixel of the wrong
|
|
261
|
+
// day — 238 px early on the fixture (2026-09-11). Also covers a device
|
|
262
|
+
// that ignores `contentOffset` on mount.
|
|
263
|
+
const target = tablesSV.value.sectionOffset[store.dayIndex.value] ?? fallback;
|
|
264
|
+
if (Math.abs(scrollY.value - target) > 1) scrollListTo(listRef, programmaticY, moving, target, false);
|
|
265
|
+
// No scroll event follows when the native offset already matches.
|
|
266
|
+
scrollY.value = target;
|
|
267
|
+
applyOffset(target, 0);
|
|
268
|
+
});
|
|
269
|
+
}, [applyOffset, initialOffset, listRef, moving, programmaticY, scrollY, store, tablesSV, viewportSV]);
|
|
270
|
+
const refreshControl = useMemo(() => onRefresh ? /*#__PURE__*/_jsx(RefreshControl, {
|
|
271
|
+
refreshing: refreshing,
|
|
272
|
+
onRefresh: onRefresh,
|
|
273
|
+
tintColor: colors.accent,
|
|
274
|
+
colors: [colors.accent],
|
|
275
|
+
progressBackgroundColor: colors.surface
|
|
276
|
+
}) : undefined, [colors.accent, colors.surface, onRefresh, refreshing]);
|
|
277
|
+
const contentStyle = useMemo(() => ({
|
|
278
|
+
height: layout.totalHeight
|
|
279
|
+
}), [layout.totalHeight]);
|
|
280
|
+
const sticky = useMemo(() => ({
|
|
281
|
+
scrollY,
|
|
282
|
+
currentSection,
|
|
283
|
+
fast,
|
|
284
|
+
tablesSV
|
|
285
|
+
}), [currentSection, fast, scrollY, tablesSV]);
|
|
286
|
+
const titleAt = useCallback(s => {
|
|
287
|
+
const {
|
|
288
|
+
rows,
|
|
289
|
+
sectionStart
|
|
290
|
+
} = layoutRef.current;
|
|
291
|
+
const row = rows[sectionStart[s]];
|
|
292
|
+
return row?.kind === 'header' ? row.title : undefined;
|
|
293
|
+
}, []);
|
|
294
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
295
|
+
style: styles.host,
|
|
296
|
+
children: [backdrop ? /*#__PURE__*/_jsx(AgendaBackdrop, {
|
|
297
|
+
scrollY: scrollY,
|
|
298
|
+
tileHeight: backdrop.tileHeight,
|
|
299
|
+
renderTile: backdrop.renderTile
|
|
300
|
+
}) : null, /*#__PURE__*/_jsx(Animated.ScrollView, {
|
|
301
|
+
ref: listRef,
|
|
302
|
+
onLayout: onLayout,
|
|
303
|
+
onScroll: scrollHandler,
|
|
304
|
+
scrollEventThrottle: 16,
|
|
305
|
+
contentOffset: contentOffset,
|
|
306
|
+
decelerationRate: decelerationRate,
|
|
307
|
+
refreshControl: refreshControl,
|
|
308
|
+
removeClippedSubviews: true,
|
|
309
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
310
|
+
style: contentStyle,
|
|
311
|
+
children: /*#__PURE__*/_jsx(AgendaWindow, {
|
|
312
|
+
layout: layout,
|
|
313
|
+
first: windowRange.first,
|
|
314
|
+
last: windowRange.last,
|
|
315
|
+
extraFirst: jumpRange?.first,
|
|
316
|
+
extraLast: jumpRange?.last,
|
|
317
|
+
renderItem: renderItem,
|
|
318
|
+
renderSectionHeader: renderSectionHeader,
|
|
319
|
+
sections: sections,
|
|
320
|
+
getItemType: getItemType,
|
|
321
|
+
fastMotion: fastMotion,
|
|
322
|
+
deferRows: backdrop !== undefined,
|
|
323
|
+
groundColor: rowGroundColor,
|
|
324
|
+
scrollY: scrollY,
|
|
325
|
+
viewportSV: viewportSV
|
|
326
|
+
})
|
|
327
|
+
})
|
|
328
|
+
}), stickySectionHeadersEnabled ? /*#__PURE__*/_jsx(StickyHeaderOverlay, {
|
|
329
|
+
initialSection: initialSection,
|
|
330
|
+
sectionCount: sections.length,
|
|
331
|
+
titleAt: titleAt,
|
|
332
|
+
height: sectionHeaderHeight,
|
|
333
|
+
sticky: sticky,
|
|
334
|
+
renderSectionHeader: renderSectionHeader
|
|
335
|
+
}) : null]
|
|
336
|
+
});
|
|
337
|
+
};
|
|
338
|
+
export const AgendaList = /*#__PURE__*/memo(AgendaListInner);
|
|
339
|
+
const styles = StyleSheet.create({
|
|
340
|
+
// Clips at the list's own top edge. The sticky overlay's push-up translates its
|
|
341
|
+
// host — clip and all — out of the list, and the calendar sits right above: an
|
|
342
|
+
// unclipped host drew the outgoing header over the calendar's knob at every day
|
|
343
|
+
// crossing, so the knob and its gap flickered (2026-09-11).
|
|
344
|
+
host: {
|
|
345
|
+
flex: 1,
|
|
346
|
+
overflow: 'hidden'
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
//# sourceMappingURL=AgendaList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","RefreshControl","StyleSheet","View","Animated","scrollTo","useAnimatedReaction","useAnimatedRef","useSharedValue","runOnJS","scheduleOnUI","useKitTheme","useCalendarContext","clampIndex","dayIndexOf","bsearchLE","AgendaBackdrop","AgendaWindow","buildAgendaLayout","BUCKET_REST","StickyHeaderOverlay","useAgendaScrollSync","jsx","_jsx","jsxs","_jsxs","MY_ORIGIN","EMPTY_TABLES","offsets","sectionOffset","sectionStart","monthOfSection","defaultGetItemType","item","itemCustomHeightType","defaultKeyExtractor","index","id","scrollListTo","ref","programmaticY","moving","y","animated","value","AgendaListInner","sections","renderItem","renderSectionHeader","itemHeightByType","sectionHeaderHeight","getItemType","keyExtractor","stickySectionHeadersEnabled","refreshing","onRefresh","decelerationRate","backdrop","rowGroundColor","onDragBegin","onSettle","colors","range","store","dateRef","setDate","commitDate","reduceMotion","listRef","headerIntern","Map","heightForType","type","Regular","layout","current","layoutRef","tablesSV","viewportSV","initialSection","initialOffset","contentOffset","x","windowRange","setWindowRange","row","first","Math","max","last","fastMotion","setFastMotion","jumpRange","setJumpRange","pendingJumpY","releaseJump","onWindowChange","was","onCommitDate","idx","scrollY","currentSection","fast","windowFirst","windowLast","scrollHandler","applyOffset","headerHeight","dayIndex","listDragSeq","onFastChange","prevSectionOffset","prev","next","length","every","v","i","s","from","to","undefined","abs","prepareJump","H","rows","min","move","m","seq","origin","top","bottom","scrollToY","anim","scrollToDate","date","sectionByTitle","get","scrollToSection","title","scrollToOffset","offset","laidOut","onLayout","e","nativeEvent","height","fallback","target","refreshControl","tintColor","accent","progressBackgroundColor","surface","contentStyle","totalHeight","sticky","titleAt","kind","style","styles","host","children","tileHeight","renderTile","ScrollView","onScroll","scrollEventThrottle","removeClippedSubviews","extraFirst","extraLast","deferRows","groundColor","sectionCount","AgendaList","create","flex","overflow"],"sourceRoot":"../../../src","sources":["agenda/AgendaList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* One row or header, parked at its declared offset.
|
|
5
|
+
*
|
|
6
|
+
* Slots take the row's DATA plus a stable render function, never `children`: a
|
|
7
|
+
* child element is a new object every parent render, so `memo` would never bail
|
|
8
|
+
* out and every window commit would re-render every mounted row (M1: p90 69 ms).
|
|
9
|
+
*
|
|
10
|
+
* `overflow: 'hidden'` is the safety mechanism: a row taller than its declaration
|
|
11
|
+
* is clipped in place instead of shifting every offset below it, and the DEV
|
|
12
|
+
* drift check (`heights.ts`) makes the wrong number loud.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { memo, useMemo } from 'react';
|
|
16
|
+
import { StyleSheet, View } from 'react-native';
|
|
17
|
+
import { needsMeasure, reportHeight } from "./heights.js";
|
|
18
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
+
const AgendaItemSlotInner = ({
|
|
20
|
+
top,
|
|
21
|
+
height,
|
|
22
|
+
type,
|
|
23
|
+
item,
|
|
24
|
+
index,
|
|
25
|
+
section,
|
|
26
|
+
renderItem,
|
|
27
|
+
deferred,
|
|
28
|
+
groundColor
|
|
29
|
+
}) => {
|
|
30
|
+
const style = useMemo(() => [styles.slot, {
|
|
31
|
+
top,
|
|
32
|
+
height,
|
|
33
|
+
backgroundColor: deferred ? undefined : groundColor
|
|
34
|
+
}], [deferred, groundColor, height, top]);
|
|
35
|
+
if (deferred) return null;
|
|
36
|
+
const content = renderItem({
|
|
37
|
+
item,
|
|
38
|
+
index,
|
|
39
|
+
section
|
|
40
|
+
});
|
|
41
|
+
if (__DEV__ && needsMeasure(type, height)) {
|
|
42
|
+
// Measure the CHILD: the slot is `height` by construction.
|
|
43
|
+
const onLayout = e => reportHeight(type, height, e.nativeEvent.layout.height);
|
|
44
|
+
return /*#__PURE__*/_jsx(View, {
|
|
45
|
+
style: style,
|
|
46
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
47
|
+
onLayout: onLayout,
|
|
48
|
+
children: content
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return /*#__PURE__*/_jsx(View, {
|
|
53
|
+
style: style,
|
|
54
|
+
children: content
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
export const AgendaItemSlot = /*#__PURE__*/memo(AgendaItemSlotInner);
|
|
58
|
+
export const AgendaHeaderSlot = /*#__PURE__*/memo(({
|
|
59
|
+
top,
|
|
60
|
+
height,
|
|
61
|
+
title,
|
|
62
|
+
renderSectionHeader,
|
|
63
|
+
groundColor
|
|
64
|
+
}) => {
|
|
65
|
+
const style = useMemo(() => [styles.slot, {
|
|
66
|
+
top,
|
|
67
|
+
height,
|
|
68
|
+
backgroundColor: groundColor
|
|
69
|
+
}], [groundColor, height, top]);
|
|
70
|
+
return /*#__PURE__*/_jsx(View, {
|
|
71
|
+
style: style,
|
|
72
|
+
children: renderSectionHeader(title)
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
AgendaHeaderSlot.displayName = 'AgendaHeaderSlot';
|
|
76
|
+
const styles = StyleSheet.create({
|
|
77
|
+
slot: {
|
|
78
|
+
position: 'absolute',
|
|
79
|
+
left: 0,
|
|
80
|
+
right: 0,
|
|
81
|
+
overflow: 'hidden'
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=AgendaSlot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useMemo","StyleSheet","View","needsMeasure","reportHeight","jsx","_jsx","AgendaItemSlotInner","top","height","type","item","index","section","renderItem","deferred","groundColor","style","styles","slot","backgroundColor","undefined","content","__DEV__","onLayout","e","nativeEvent","layout","children","AgendaItemSlot","AgendaHeaderSlot","title","renderSectionHeader","displayName","create","position","left","right","overflow"],"sourceRoot":"../../../src","sources":["agenda/AgendaSlot.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAA2B,OAAO;AACxD,SAASC,UAAU,EAAEC,IAAI,QAAgC,cAAc;AACvE,SAASC,YAAY,EAAEC,YAAY,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAoBvD,MAAMC,mBAAmB,GAAGA,CAAK;EAC/BC,GAAG;EACHC,MAAM;EACNC,IAAI;EACJC,IAAI;EACJC,KAAK;EACLC,OAAO;EACPC,UAAU;EACVC,QAAQ;EACRC;AACgB,CAAC,KAAK;EACtB,MAAMC,KAAK,GAAGjB,OAAO,CACnB,MAAM,CAACkB,MAAM,CAACC,IAAI,EAAE;IAAEX,GAAG;IAAEC,MAAM;IAAEW,eAAe,EAAEL,QAAQ,GAAGM,SAAS,GAAGL;EAAY,CAAC,CAAC,EACzF,CAACD,QAAQ,EAAEC,WAAW,EAAEP,MAAM,EAAED,GAAG,CACrC,CAAC;EACD,IAAIO,QAAQ,EAAE,OAAO,IAAI;EAEzB,MAAMO,OAAO,GAAGR,UAAU,CAAC;IAAEH,IAAI;IAAEC,KAAK;IAAEC;EAAQ,CAAC,CAAC;EACpD,IAAIU,OAAO,IAAIpB,YAAY,CAACO,IAAI,EAAED,MAAM,CAAC,EAAE;IACzC;IACA,MAAMe,QAAQ,GAAIC,CAAoB,IAAKrB,YAAY,CAACM,IAAI,EAAED,MAAM,EAAEgB,CAAC,CAACC,WAAW,CAACC,MAAM,CAAClB,MAAM,CAAC;IAClG,oBACEH,IAAA,CAACJ,IAAI;MAACe,KAAK,EAAEA,KAAM;MAAAW,QAAA,eACjBtB,IAAA,CAACJ,IAAI;QAACsB,QAAQ,EAAEA,QAAS;QAAAI,QAAA,EAAEN;MAAO,CAAO;IAAC,CACtC,CAAC;EAEX;EACA,oBAAOhB,IAAA,CAACJ,IAAI;IAACe,KAAK,EAAEA,KAAM;IAAAW,QAAA,EAAEN;EAAO,CAAO,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMO,cAAc,gBAAG9B,IAAI,CAACQ,mBAAmB,CAA+B;AAUrF,OAAO,MAAMuB,gBAAgB,gBAAG/B,IAAI,CAClC,CAAC;EAAES,GAAG;EAAEC,MAAM;EAAEsB,KAAK;EAAEC,mBAAmB;EAAEhB;AAA6B,CAAC,KAAK;EAC7E,MAAMC,KAAK,GAAGjB,OAAO,CACnB,MAAM,CAACkB,MAAM,CAACC,IAAI,EAAE;IAAEX,GAAG;IAAEC,MAAM;IAAEW,eAAe,EAAEJ;EAAY,CAAC,CAAC,EAClE,CAACA,WAAW,EAAEP,MAAM,EAAED,GAAG,CAC3B,CAAC;EACD,oBAAOF,IAAA,CAACJ,IAAI;IAACe,KAAK,EAAEA,KAAM;IAAAW,QAAA,EAAEI,mBAAmB,CAACD,KAAK;EAAC,CAAO,CAAC;AAChE,CACF,CAAC;AACDD,gBAAgB,CAACG,WAAW,GAAG,kBAAkB;AAEjD,MAAMf,MAAM,GAAGjB,UAAU,CAACiC,MAAM,CAAC;EAC/Bf,IAAI,EAAE;IAAEgB,QAAQ,EAAE,UAAU;IAAEC,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAS;AACtE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The mounted slice of the list, keyed by row.
|
|
5
|
+
*
|
|
6
|
+
* DO NOT RECYCLE. A slot pool was built twice and measured worse on the device
|
|
7
|
+
* (p99 300 → 1000–1550 ms): keyed by row, a row that stays in the window has
|
|
8
|
+
* identical props and `memo` makes it free; a pool hands slots new rows and forces
|
|
9
|
+
* a full prop diff across every card.
|
|
10
|
+
*
|
|
11
|
+
* DO NOT KEEP ROWS MOUNTED "to avoid recreating them". Measured in release on the
|
|
12
|
+
* SM-F415F (2026-09-11): a grow-only window doubled the mounted views and took slow
|
|
13
|
+
* draw frames from ~180 to ~900 per 12 flings (p50 27 → 37 ms); pre-mounting the
|
|
14
|
+
* whole range (5,000 views, +130 MB) put every frame above 60 ms. Every mounted row
|
|
15
|
+
* costs frame time, on screen or not — the window stays tight.
|
|
16
|
+
*
|
|
17
|
+
* Deferral (only with a backdrop): a row ENTERING the window while the list is
|
|
18
|
+
* fast renders nothing and the backdrop shows through; a row already drawn stays
|
|
19
|
+
* drawn. When fast motion ends, deferred rows are released nearest the viewport
|
|
20
|
+
* first — every visible row in one batch, then a batch per frame — as transitions,
|
|
21
|
+
* so a new drag's window commit never waits behind them.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { memo, startTransition, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
25
|
+
import { bsearchLE } from "../core/worklets.js";
|
|
26
|
+
import { AgendaHeaderSlot, AgendaItemSlot } from "./AgendaSlot.js";
|
|
27
|
+
import { UPGRADE_BATCH } from "./constants.js";
|
|
28
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
29
|
+
const NO_KEYS = new Set();
|
|
30
|
+
const AgendaWindowInner = ({
|
|
31
|
+
layout,
|
|
32
|
+
first,
|
|
33
|
+
last,
|
|
34
|
+
extraFirst,
|
|
35
|
+
extraLast,
|
|
36
|
+
renderItem,
|
|
37
|
+
renderSectionHeader,
|
|
38
|
+
sections,
|
|
39
|
+
getItemType,
|
|
40
|
+
fastMotion,
|
|
41
|
+
deferRows,
|
|
42
|
+
groundColor,
|
|
43
|
+
scrollY,
|
|
44
|
+
viewportSV
|
|
45
|
+
}) => {
|
|
46
|
+
const {
|
|
47
|
+
rows,
|
|
48
|
+
offsets,
|
|
49
|
+
heights
|
|
50
|
+
} = layout;
|
|
51
|
+
const start = Math.max(0, first);
|
|
52
|
+
const end = Math.min(last, rows.length - 1);
|
|
53
|
+
|
|
54
|
+
/** Rows deferred in the last commit, and the window that commit drew. */
|
|
55
|
+
const heldRef = useRef(NO_KEYS);
|
|
56
|
+
const drawnRef = useRef({
|
|
57
|
+
layout,
|
|
58
|
+
start: 0,
|
|
59
|
+
end: -1
|
|
60
|
+
});
|
|
61
|
+
const [released, setReleased] = useState(NO_KEYS);
|
|
62
|
+
const prev = drawnRef.current;
|
|
63
|
+
const sameLayout = prev.layout === layout;
|
|
64
|
+
const held = heldRef.current;
|
|
65
|
+
let nextHeld = null;
|
|
66
|
+
const slots = [];
|
|
67
|
+
const pushRow = i => {
|
|
68
|
+
const row = rows[i];
|
|
69
|
+
if (row.kind === 'header') {
|
|
70
|
+
slots.push(/*#__PURE__*/_jsx(AgendaHeaderSlot, {
|
|
71
|
+
top: offsets[i]
|
|
72
|
+
// The layout's pixel-snapped height, not the declared constant: with the
|
|
73
|
+
// constant, a header ending a fraction short of the next row's top left a
|
|
74
|
+
// hairline of backdrop between them.
|
|
75
|
+
,
|
|
76
|
+
height: heights[i],
|
|
77
|
+
title: row.title,
|
|
78
|
+
renderSectionHeader: renderSectionHeader,
|
|
79
|
+
groundColor: groundColor
|
|
80
|
+
}, row.key));
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
let deferred = false;
|
|
84
|
+
if (deferRows) {
|
|
85
|
+
deferred = held.has(row.key) ? fastMotion || !released.has(row.key) : fastMotion && !(sameLayout && i >= prev.start && i <= prev.end);
|
|
86
|
+
if (deferred) (nextHeld ??= new Set()).add(row.key);
|
|
87
|
+
}
|
|
88
|
+
slots.push(/*#__PURE__*/_jsx(AgendaItemSlot, {
|
|
89
|
+
top: offsets[i],
|
|
90
|
+
height: heights[i],
|
|
91
|
+
type: getItemType(row.item),
|
|
92
|
+
item: row.item,
|
|
93
|
+
index: row.indexInSection,
|
|
94
|
+
section: sections[row.section],
|
|
95
|
+
renderItem: renderItem,
|
|
96
|
+
deferred: deferred,
|
|
97
|
+
groundColor: groundColor
|
|
98
|
+
}, row.key));
|
|
99
|
+
};
|
|
100
|
+
for (let i = start; i <= end; i += 1) pushRow(i);
|
|
101
|
+
if (extraFirst !== undefined && extraLast !== undefined) {
|
|
102
|
+
const xEnd = Math.min(extraLast, rows.length - 1);
|
|
103
|
+
for (let i = Math.max(0, extraFirst); i <= xEnd; i += 1) {
|
|
104
|
+
if (i < start || i > end) pushRow(i);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const heldNow = nextHeld ?? NO_KEYS;
|
|
108
|
+
// Committed in a layout effect, so a render React discards cannot leave the
|
|
109
|
+
// refs describing rows that never mounted.
|
|
110
|
+
useLayoutEffect(() => {
|
|
111
|
+
heldRef.current = heldNow;
|
|
112
|
+
drawnRef.current = {
|
|
113
|
+
layout,
|
|
114
|
+
start,
|
|
115
|
+
end
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
const hasHeld = heldNow.size > 0;
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
if (fastMotion || !hasHeld) return;
|
|
121
|
+
const {
|
|
122
|
+
layout: l,
|
|
123
|
+
start: s,
|
|
124
|
+
end: e
|
|
125
|
+
} = drawnRef.current;
|
|
126
|
+
const y = scrollY.value;
|
|
127
|
+
const top = bsearchLE(l.offsets, y);
|
|
128
|
+
const bottom = bsearchLE(l.offsets, y + viewportSV.value);
|
|
129
|
+
const focus = top + bottom >> 1;
|
|
130
|
+
|
|
131
|
+
// Sorted ONCE; each frame then only pops a batch.
|
|
132
|
+
const queue = [];
|
|
133
|
+
const distance = [];
|
|
134
|
+
let visible = 0;
|
|
135
|
+
for (let i = s; i <= e; i += 1) {
|
|
136
|
+
const row = l.rows[i];
|
|
137
|
+
if (row.kind !== 'item' || !heldRef.current.has(row.key)) continue;
|
|
138
|
+
queue.push(row.key);
|
|
139
|
+
distance.push(Math.abs(i - focus));
|
|
140
|
+
if (i >= top && i <= bottom) visible += 1;
|
|
141
|
+
}
|
|
142
|
+
const order = queue.map((_, k) => k).sort((a, b) => distance[a] - distance[b]);
|
|
143
|
+
let cursor = 0;
|
|
144
|
+
let frame = 0;
|
|
145
|
+
const releaseNext = () => {
|
|
146
|
+
const n = cursor === 0 ? Math.max(UPGRADE_BATCH, visible) : UPGRADE_BATCH;
|
|
147
|
+
const batch = order.slice(cursor, cursor + n).map(k => queue[k]);
|
|
148
|
+
const isFirst = cursor === 0;
|
|
149
|
+
cursor += n;
|
|
150
|
+
startTransition(() => {
|
|
151
|
+
setReleased(was => {
|
|
152
|
+
const next = new Set(isFirst ? NO_KEYS : was);
|
|
153
|
+
for (const key of batch) next.add(key);
|
|
154
|
+
return next;
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
if (cursor < order.length) frame = requestAnimationFrame(releaseNext);
|
|
158
|
+
};
|
|
159
|
+
frame = requestAnimationFrame(releaseNext);
|
|
160
|
+
return () => cancelAnimationFrame(frame);
|
|
161
|
+
}, [fastMotion, hasHeld, scrollY, viewportSV]);
|
|
162
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
163
|
+
children: slots
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
export const AgendaWindow = /*#__PURE__*/memo(AgendaWindowInner);
|
|
167
|
+
//# sourceMappingURL=AgendaWindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","startTransition","useEffect","useLayoutEffect","useRef","useState","bsearchLE","AgendaHeaderSlot","AgendaItemSlot","UPGRADE_BATCH","jsx","_jsx","Fragment","_Fragment","NO_KEYS","Set","AgendaWindowInner","layout","first","last","extraFirst","extraLast","renderItem","renderSectionHeader","sections","getItemType","fastMotion","deferRows","groundColor","scrollY","viewportSV","rows","offsets","heights","start","Math","max","end","min","length","heldRef","drawnRef","released","setReleased","prev","current","sameLayout","held","nextHeld","slots","pushRow","i","row","kind","push","top","height","title","key","deferred","has","add","type","item","index","indexInSection","section","undefined","xEnd","heldNow","hasHeld","size","l","s","e","y","value","bottom","focus","queue","distance","visible","abs","order","map","_","k","sort","a","b","cursor","frame","releaseNext","n","batch","slice","isFirst","was","next","requestAnimationFrame","cancelAnimationFrame","children","AgendaWindow"],"sourceRoot":"../../../src","sources":["agenda/AgendaWindow.tsx"],"mappings":"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","ignoreList":[]}
|